Object technology can help IT organizations achieve unprecedented flexibility, speed to market, and ROI. However, managing object technology projects successfully requires new skills and techniques that many participants simply don't possess. In Mentoring Object Technology Projects, one of the world's leading object development consultants presents a complete life cycle framework for managing any object-based project. Drawing on his consulting experience in 28 countries, Richard T. Dué covers every facet of project management, including planning, estimating, staffing, organization, implementation, ongoing supervision, and more. Coverage includes:
Whether you're an "in-the-trenches" project manager, an IT executive, planner, developer, or IT client, these are the object technology best practices you need to succeed-no matter what your project, language, tools, notation, or methodology.
1. Object Engineering: A New Approach to Information Technology.
Needed: A New Approach to Information Technology. Needed: A New Approach to Business Process Reengineering. In Pursuit of a New Approach. Many Methodologies, but Only for the Analysis and Design of Code. Object-Oriented Enterprise Modeling. Silver Bullet or Organizational Process?
The Productivity Paradox. Is Object Technology the Answer? Legacy Systems, Legacy People. Legacy People.
What Went Wrong? A Disturbing Trend. Components and Patterns: Disruptive Technologies? Migrating from Data to Objects and Components. Time for a New Approach.
Project Management Strategy. Process Orientation versus Project Orientation. Project Management Tactics. Project History Manual. Monitoring Process and Progress.
Migration to a New Paradigm. New Functions and Roles. New Approaches to Evaluation and Pay. The Three-Team Organizational Approach.
The Key Criteria. Learning from Japanese Failures with Reengineering. Getting Started with Reengineering. Where Is Reengineering Headed? Getting Started with a Just-Enough Approach.
The Object Engineering Approach. Best Software Engineering Practices and Object Engineering. Selection of an Appropriate Systems Development Methodology. A Methodology Framework. Use CASE Tools Capable of Animation.
Object Engineering Techniques. Use Case Migration Problems. Major Lesson Learned. Task Scripts: An Alternative to the Use Case. Play Script Models. CRC Models. Design by Contract. Abbott Textual Analysis.
Tools for the First Iteration. Tools for Subsequent Iterations. Object Management Systems. Automated Component Assembly Factories. Patterns Are Essential Tools. Project Management Tools.
Case Study: Prescription Drug Control System. Misapplications and Bad Examples.
Initial Object Technology Projects. Object Technology Transition Process. Other Approaches. Alternative Implementation Approaches. Problems with the Transition to Object Technology.
Future Trends: Near Term. Future Trends: Midterm. Future Trends: Long Term. Summary.
In the last 18 months, I have been training and mentoring managers, users, and developers from the armed forces, major defense contractors, medical insurance companies, state governments, electrical and telephone utilities, and world-class research organizations. In every case, I was taken by surprise to learn that people from these organizations were still trying to understand the basics of object-orientation. These people from "leading, bleeding-edge" organizations seemed to be struggling with questions like What is an object? What is a use case? and How do you manage an object-oriented project? I had expected that everyone in these organizations would have passed through these basic stages of the object-oriented learning curve 10 or 12 years ago.
Intrigued, I contacted a number of my consulting colleagues, all of whom reported recent similar experiences. We were able to identify some common issues: Object technology has not been understood and applied in most parts of major organizations. Many managers, users, and developers were too involved with Y2K, client-server, relational database, and data warehousing projects over the last 5 to 10 years to have even been exposed to object-orientation. Unfortunately, this lack of understanding applies as well to large groups of contractors and consultants within major consulting firms. Just because organizations have applied or even developed object-oriented methods and tools that some of their staff have successfully used on object technology projects, it does not mean that everyone in the organization understands object technology. One interesting point is that in large international firms the European parts of the organization generally seem to have a much better understanding of object technology than do their North American colleagues.
Organizations are now embracing object technology as a surefire cure for productivity problems or as a necessary component of e-commerce projects. However, in many cases all that these organizations have done is substitute the traditional programming language they were using with C++ or Java. Object-orientation is 95 percent a way of thinking and only 5 percent a technology. Yet, these organizations have done little or nothing by way of training and education to change their ways of thinking about systems development. Instead of adopting object-oriented systems development methodologies like RUP or OPEN, these organizations persist with their traditional waterfall, process-oriented systems development life cycles. Some glaring examples of this failure to change development approaches include
Major object technology projects are in trouble in terms of schedule, budget, and productivity. Instead of rapid iterative development using small, federated teams of developers working within 3- to 6-month development time boxes, teams of a hundred or more developers are spending 9 months just to document user requirements. In most cases, merely substituting programming languages within traditional, and in many cases discredited, development approaches can only result in the perpetuation of the same tired litany of major project failures.
Organizations are now realizing that years of downsizing and job-hopping in the overheated information technology economy have resulted in the loss of the corporate knowledge base. In many cases, the users do not really understand the systems that they are supposed to be using or enhancing. Current information technology developers and maintenance personnel are finding that they are unable to even understand legacy code, let alone maintain or enhance it. Object technology is being pursued as a "silver bullet" for capturing the corporate knowledge in use cases, UML models, and classes. Object technology can be used as an important knowledge-capturing approach; however, merely changing programming languages will not automatically produce this result. Instead, what is being created are new stovepipes and silos of unintelligible, unmaintainable and, in many cases, only incidentally object-oriented code.
Most of the books on object technology are proving to be impenetrable to the typical developers. However, there is no "Object Technology for Dummies" approach that can be successfully followed. Object technology requires educated and trained people capable of working at relatively high levels of abstraction. As few as 20 percent of the traditional programmers and coders assigned to the new object technology projects will be able to successfully make the transition to the new approaches, methods, and techniques. Even for these relatively few, the learning curve can be 6 to 12 months for individuals and 3 to 4 years for organizations. Certainly, we need to use object technology; however, it is not an instant, painless, costless solution.
Organizations must understand that the central principle of object technology is reuse. We should be assembling domain models, which with the help of proven design patterns, can be reused within projects, across projects, and eventually across industries and even economies. The continued development of new code is an assured recipe for continued project failures
Organizations must understand that object technology is not suitable for every project. Using Java to build a batch billing application is a complete misapplication of object technology. There are other proven technologies suitable for batch billing projects. Using object technology, however, to assemble billing-on-demand or trickle billing could prove to be very interesting and viable approaches. Again, what is required is new ways of thinking, not just new programming languages.
The bright spot in all of these organizations is the tremendous positive interest by managers and users in the use case technique. This is because, properly applied, the use cases can be also used as the basis of training manuals, test acceptance criteria, help screens, interview questionnaires, sources of candidate classes for developers, and work plans for user interface (UI) teams. The most important advantage of the use case technique, however, is its ability to support the 100 percent direct involvement of the users and managers in the systems development process.
I believe that we are faced with the need for years of basic training, education, and mentoring if object-orientation and component-based approaches are going to be successfully applied. This training, education, and mentoring, in appropriate forms, will be have to be carried out with today's developers, users, and managers. Equally important, however, will be the need to rethink and reshape the information technology curricula of the universities, colleges, and technical schools that are educating tomorrow's developers, users, and managers.
This book is written for those managers, corporate planners, senior business systems analysts, and information modelers who are looking for a new and productive approach to planning, controlling, organizing, directing, and coordinating their information technology investments. This book should be of most interest to the managers of object technology systems development projects. However, the effective application of the concepts in this book would benefit from every member of the development team, including project sponsors and users, having an understanding of the object technology approach. The forms, models, and templates in the book can be used as practical implementation guides in actual information systems projects. This book can be used to augment any of the current object-oriented analysis and design methodologies with effective management strategies and techniques. This book can also serve as a practical companion to formal education and training courses. It is especially suited to bring an extra dimension of practical implementation experience to case study courses and seminars. This book can also be used as the basis of an intensive tutorial for those managers, project managers, developers, and users of new object technology information systems.
The best way to use this book is to first turn to the executive summary section of each chapter. This section presents a summary and lists the key learning points of each chapter. You can then go directly to the chapter that discusses the 'your immediate interests or problems.
Over the last 15 years, I have consulted with, and presented courses, tutorials, and seminars to, thousands of managers, users, vendors, analysts, and programmers in over 25 countries. Again and again, I found that while many people are interested in hearing about new technologies, techniques, or tools for processing data, the real problems that we needed to address are
In most organizations, the investment in information technology is not being effectively managed. Howard Rubin estimates, for example, that only 20 percent of organizations even know how many computer programs they have in their inventory. Capers Jones estimates that less than 5 percent of organizations have any appropriate measures of the productivity of their information technology investments. At least a third of organizations have no formal systems development methodology in place. Two-thirds of organizations never adopted structured approaches to the analysis, design, or programming of their information systems. Not surprisingly then, Dr. Ernst R. Berndt of MIT and Dr. Catherine J. Morrison of Tufts University have found that the U.S. manufacturing industry's investment in computerization from 1968 to 1986 returned less than $0.80 of each $1.00 invested.
I believe that we are overdue for a fundamentally new approach to managing our information technology resources. I find that most organizations are still trying to acquire, store, disseminate, and present yet more data. The ideas behind this new approach to planning, controlling, organizing, directing, and coordinating information technology investments are the product of many hours of teaching, consulting, participating in standards development committees, presentations at international conferences, and electronic bulletin board and email discussions. I call this collection of ideas object engineering.
Object engineering is the merger of the object technology paradigm with the approaches of enterprise modeling, information engineering, and workflow analysis. The purpose of object engineering is to assemble and implement dynamic simulation models of organizations that actually become your organization's information systems. These simulation models of reality can provide you with a powerful understanding of your organization and its information resources. Object engineering is a method that allows you to use this new understanding to increase the productivity of your organization's planning, control, and communications functions and the efficiency, economy, and effectiveness of your management information and data processing systems. Object engineering is an approach you can use to undertake the business process reengineering of your organization.
This book ends with an implementation plan of the practical management decisions that need to be made to implement object engineering in your organization. You will have to decide if your organization is technically, financially, and culturally able to make and support these decisions. You will have to decide how you personally will react to this new approach to information technology. Our challenge is to increase the productivity of the $1 trillion investment that has been made in information technology over the last 30 years.
The inspiration for this book came from the works of two other authors, Frederick Brooks and David Taylor. Frederick Brooks's' The Mythical Man-Month is a true classic in the field of information technology. Written 20 years ago, this book is still used in university management information systems and computer science courses today. The reason for this unparalleled longevity is that Brooks was able to concisely write about basic project and change management issues that are independent of technology. David Taylor's Object-Oriented Technology: A Manager's Guide is by far the largest-selling title in the field of object technology. The reason for this unparalleled popularity is that Taylor was able to concisely describe his philosophy and vision of object-orientation in terms that a management audience can easily understand.
My goal for this book is to provide a concise reference for people who must understand, participate in, and manage object technology projects. The successful introduction and management of a new technology requires sensitivity to the hopes, fears, and motivations of the people involved in the project. The tools, techniques, notations, and methodologies we will use to implement object technology are all dependent upon our understanding of the ability and readiness of people to understand and accept the new approach.
You will find that every chapter of this book starts with a quotation from William Shakespeare, selected to set the stage. Please take the time to read the quotations from a man whose 400-year-old plays and poetry are still able to convey the basic joys and sorrows of the human condition. The choice of Shakespeare underlines the basic theme of the book. Object engineering is an attempt to create the same dynamic and essential models of people and events that a playwright attempts to capture on the stage. Just as actors appear in different scenes and in different roles, or as different actors may play the same role at different times, the behavior of the objects that make up an organization and its products and services can be observed and interpreted in different contexts and from different points of view.
This book also has a technical dimension. Once we understand the philosophical basis of object technology and the important project management issues, we need to be able to select the appropriate methodologies, techniques, and tools to successfully implement object technology projects. The difficulty I faced with presenting this technical material, however, was that a book that contained listings and descriptions of these tools and techniques would quickly become out of date. Object technology is a dynamic field that can be served only by a dynamic media. I am very pleased that this book will have a dynamic component in the form of its own Web site,
http://ourworld.compuserve.com/homepages/rtdue. The field of object technology is changing almost daily, with new methodologies, techniques, languages, object management systems, and CASE tools making their debut. Most of the books, articles, and newsletters about object technology are obsolete, or at least badly dated, by the time they are published. The goals of this book's Internet presence are to
The Web site contains a number of links to help keep you up to date on the latest developments in object technology, business process reengineering, and project management. Explore these sites to obtain the latest thinking about methodologies, techniques, definitions, products, seminars, consulting and training services, and other books to read.