Software Management Renaissance Walker Royce
Software Management Renaissance Walker Royce
Walker Royce
The waterfall model of conventional software management, which is still prevalent in many
mature software organizations, has served its purpose. The ever-increasing market
demands on software development performance continue. The increasing breadth of
Internet applications has further accelerated the transition to a more modern management
process known as spiral, incremental, evolutionary, or iterative development. A
comparison of conventional and modern software development models illustrates some of
the critical discriminators in this transition.
Most software engineering texts present the waterfall model as the source of the
conventional software management process. Conventional software management
techniques work well for custom-developed software where the requirements are fixed
when development begins. The life cycle typically follows a sequential transition from
requirements to design to code to testing, with ad hoc documentation that attempts to
capture complete intermediate representations at every stage. After coding and unit
testing of individual components, the components are compiled and linked together
(integrated) into a complete system.
A typical result of following the waterfall model is that integration and testing consume too
much time and effort in major software development workflows. For successful projects,
about 40% of resources go to integration and testing. The percentage is even higher for
unsuccessful projects. With such a low success rate, better risk management is
imperative.
While the software industry has been evolving the management process for many years,
the Internet has accelerated the transition from the waterfall model to iterative
development. First, the Internet offers a powerful set of mechanisms for multi-site
collaboration and electronic information exchange that support iterative processes.
Second, distributed infrastructures for common architectural patterns support executable
architectures of Internet-based applications. Web-based applications consist of many
moving parts that are constantly updated, making iterative development the process of
choice. Finally, by introducing a new set of business models, projects, and organizations,
the Internet has created a demand for incredibly rapid development of quality applications.
Iterative development processes are necessary to meet challenging project performance
goals.
A comparison of my top 10 principles with other lists, such as the Software Project
Management Network's Best Practice Initiative or the SEI Capability Maturity Model's key
process areas, reveals several notable omissions.
Planning and expenditure allocations will continue to shift as modern project management
methods, architectural infrastructures (such as Java 2 Enterprise Edition and Microsoft
Windows DNA), and software development processes and technology mature. Resource
expenditure trends will lead to more balance across the primary workflows as a result of
increased exploitation of standard architectural patterns and infrastructure components
(less human-generated stuff), more efficient processes (less scrap and rework), more
proficient people (in smaller teams), and more automation. The resource allocations in
Table 1 reflect my experience in waterfall process projects and several successful iterative
process projects. These values are deliberately imprecise; their purpose is to relate the
relative trends over time. Table 1's "future" column provides my view on major trends that
will surface in the coming years.
Table 1. Expenditure allocations.
Life-cycle
ConventionalModern Future
activity
Management 5% 10% 12%
Requirements 5% 10% 12%
Design 10% 15% 20%
Implementation 30% 25% 14%
Test and
40% 25% 18%
assessment
Deployment 5% 5% 12%
Environment 5% 10% 12%
Totals 100% 100% 100%
Ten years ago, about one in 10 software projects succeeded. Consequently, software
project managers spent too much time playing defense and worrying about risk
management. Today, that ratio has improved to about 1:4, still as challenging as batting
against a major league pitcher. As modern iterative development and supporting
environments advance, the success ratio for delivering a software project 10 years from
now could improve to 1:2. Software project managers should invest more time playing
offense through success management, and organizations should continue to accelerate
software development leverage to deliver more value and new features faster and more
profitably.
Walker Royce is the vice president and general manager of strategic services for Rational
Software Corporation. He is the author of Software Project Management, A Unified
Framework (1998, Addison-Wesley). Contact him at mailto:[email protected]