Something’s Wrong with the way most software is built and maintained. In a typical Waterfall environment we wait until the very end to see if the thing is going to work, and when bugs present themselves, they’re difficult, time-consuming, and therefore expensive to track down and fix.
In this chapter, we discovered…
Most people have little knowledge of how software is constructed and how software becomes legacy code—software that’s difficult and expensive to work with—and how to prevent it from happening.
Batching features into releases is inefficient.
Traditional Waterfall processes lead to the creation and propagation of legacy code.
Software engineering hasn’t yet established its core principles or a common body of knowledge every software developer must know.
The Waterfall Model of software development promotes the creation of hard-to-maintain software. The Waterfall methodology works well for constructing buildings, but it doesn’t work well for constructing software where batching up features into releases is risky and expensive. Traditional management techniques often don’t apply to software either and developers don’t yet have a common body of knowledge they can share.
I saw the negative impact these ideas had on the projects I worked on but had no idea how profoundly they affected other projects. Next, we’ll look at the software industry as a whole and how it’s doing.
Hunt, Andy, and Thomas, Dave. “Software Archaeology.” Software Construction/IEEE Software March/April 2002. http://media.pragprog.com/articles/mar_02_archeology.pdf
http://agileconsortium.pbworks.com/w/page/52184647/Royce%20Defining%20Waterfall