A development process is a model that tells us how to build software.
- Defines the stages
- Defines the relationship between stages
- Defines the activities needed at each stage
The life cycle consists of the entire life of a software as a sequence of activities. It is therefore very dependent on the development process.
Software Project Management is heavily dependent on the development process because you cannot expect to manage something if you do not know how it works.
In the early days of software project management, there was no well defined development process. Programmer were given a project and they would then head off to code and test until they were done. This was obviously not a very efficient way of doing things and so eventually the Waterfall Process was heavily adopted. The idea for the Waterfall Process came from other engineering fields where such a process was the effective way of proceeding because the desired end product was well defined right from the beginning. However, with software projects, this model did not work well because software projects usually involve using new technologies and techniques and the requirements for the final end product are always changing.
Some problems that therefore would occur when using the waterfall method were:
- Late design breakage
- Early success via paper designs and discussions in meetings but difficulty arising later during implementation and integration due to unforseen problems of complications.
- Waterfall method forces band-aid solutions to problems since cannot go back to earlier stages of design. This results in a fragile and unmaintainable product.
- Late risk resolution
- Too few tangible facts known at start when initial requirements are defined.
- Risks become apparent later, and are expensive to mitigate.
- Requirement-driven functional decomposition
- Attempting to define precise requirements and implement them exactly is not realistic.
- Depends on requirements remaining constant.
- Adversarial stakeholder relationships
- Difficulty in defining exact requirements leads to prolonged paper document exchanges at the beginning of the development process.
- Leads to contract disputes over misinterpretation of requirements.
- Focus on documents and review meetings
Due to the weaknesses of the Waterfall Process, it has been replaced by the Iterative and Incremental Process. This process combines the waterfall process with an iterative process allowing each of the steps within the waterfall process to be re-visited many times throughout the development process.
Another model is the eXtreme Programming model. More about this can be read here.
—
[1] Prof. Shervin Shirmohammadi, University of Ottawa SEG4100 Course Notes, Lecture2