The most discriminating characteristic of a successful software development process is the well-defined separation between "research and development" activities and "production" activities. When software projects do not succeed, the primary reason is usually a failure to crisply define and execute these two stages, with proper balance and appropriate emphasis. This is true for conventional as well as iterative processes. Most unsuccessful projects exhibit one of the following characteristics:
A The engineering stage of the life cycle evolves the plans, the requirements, and the architecture together, resolving the development risks. This stage concludes with an executable architecture baseline.
▲ The production stage of the life cycle constructs usable versions of capability within the context of the baseline plans, requirements, and architecture developed in the engineering stage.
• An overemphasis on research and development. Too many analyses or paper studies are performed, or the construction of engineering baselines is procrastinated. This emphasis is typical of and promoted in the conventional software process.
• An overemphasis on production. Rush-to-judgment designs, premature work by overeager coders, and continuous hacking are typical.
Successful modern projects—and even successful projects developed under the conventional process—tend to have a very well-defined project milestone when there is a noticeable transition from a research attitude to a production attitude. Earlier phases focus on achieving functionality. Later phases revolve around achieving a product that can be shipped to a customer, with explicit attention to robustness, performance, fit, and finish. This life-cycle balance, which is somewhat subtle and still too intangible, is one of the underpinnings of successful software project management.
A modern software development process must be defined to support the following:
• Evolution of the plans, requirements, and architecture, together with well-defined synchronization points
• Risk management and objective measures of progress and quality
• Evolution of system capabilities through demonstrations of increasing functionality
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.