The Contemporary Software Development Landscape

Software development “ain’t what it used to be.” The early days when the waterfall model was the only act in town are gone. Structured programming has come and gone. The role of the customer has changed from passive to active to proactive. The processes and tools in use are far more sophisticated. In the place of these practices are a variety of models that arise out of the need to be fast, to be right, and to be ready to change on a moment’s notice. That doesn’t mean throwing out the old ways to make room for the new. Rather you can integrate the old into the new. Much can be gained from the legacies left by your predecessors.

Additionally, to be useful, the process models must adapt to changing conditions and the project must change on a moment’s notice as business conditions change. That’s a tall order in the face of the rigidity espoused by the traditional waterfall models you are all familiar with. In the absence of suitable alternatives, developers are constantly trying to adapt the waterfall models to problems whose characteristics simply do not fit the models. The results are far less than satisfactory and end up in outright failures in many cases. If you peel back the onion one layer and take a closer look at the software development landscape as described in the previous chapter, you can see what it is really telling you that you ought to be doing.

Figure 2-1 is the foundation that will direct all of the discussions in ...

Get Effective Software Project Management now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.