Target objective: improved ROI
- Waterfall model
- Functional design
- Diseconomy of scale
1980s-1990s Process impovement
■ Diseconomy of scale
• Iterative development
■ Return on investment
Corresponding environment, size, and process technologies
30% component-based 70% custom
Typical project performance Predictably bad
Always: Over budget Over schedule
Infrequently: On budget On schedule
Modern Practices Environment/tools:
Off-the-shelf, integrated Size:
70% component-based 30% custom
Usually: On budget On schedule
Figure 2-1. Three generations of software economics leading to the target objective
The abscissa represents the life cycle of the software business engaged in by the organization. The three generations of software development are defined as follows:
1. Conventional: 1960s and 1970s, craftsmanship. Organizations used custom tools, custom processes, and virtually all custom components built in primitive languages. Project performance was highly predictable in that cost, schedule, and quality objectives were almost always underachieved.
2. Transition: 1980s and 1990s, software engineering. Organizations used more-repeatable processes and off-the-shelf tools, and mostly (>70%) custom components built in higher level languages. Some of the components (<30%) were available as commercial products, including the operating system, database management system, networking, and graphical user interface. During the 1980s, some organizations began achieving economies of scale, but with the growth in applications complexity (primarily in the move to distributed systems), the existing languages, techniques, and technologies were just not enough to substain the desired business performance.
3. Modern practices: 2000 and later, software production. This book's philosophy is rooted in the use of managed and measured processes, integrated automation environments, and mostly (70%) off-the-shelf components. Perhaps as few as 30% of the components need to be custom built. With advances in software technology and integrated production environments, these component-based systems can be produced very rapidly.
Technologies for environment automation, size reduction, and process improvement are not independent of one another. In each new era, the key is complementary growth in all technologies. For example, the process advances could not be used successfully without new component technologies and increased tool automation.
The transition to modern practices and the promise of improved software economics are by no means guaranteed. We must be realistic in comparing the promises of a well-executed, next-generation process using modern technologies against the ugly realities of history. It is a sure bet .that many organizations attempting to carry out modern projects with modern techniques and technologies will end up with the same old snafu.
Organizations are achieving better economies of scale in successive technology eras—with very large projects (systems of systems), long-lived products, and lines of business comprising multiple similar projects. Figure 2-2 provides an overview of how a return on investment (ROI) profile can be achieved in subsequent efforts across life cycles of various domains.
Achieving ROI across a line of business
Investment in common architecture, process, and environment for all line-of-business systems
Achieving ROI across a project with multiple iterations
Investment in robust architecture, mature
iterative process, and process automation
Achieving ROI across a life cycle of product releases
Investment in product architecture, life-cycle release process, and process automation
Product Life Cycle: Successive Releases Figure 2-2. Return on investment in different domains
Was this article helpful?
What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.