The Five Phases of Software Development
Whether using agile, waterfall, spiral, or any other methodology, the fundamental phases of software development prior to GA release have been the same for 40 years. Some thoughts on how to change that to follow.
1. This time is different
2. I swear it’s almost done
3. They are gonna fire me, my boss or the consultants
4. They fired the consultants
5. Release it, ready or not
This time is different: “I can’t believe what a difference {agile / DevOps / using cloud infrastructure / changing the way we do use cases / that video I watched on how to use a debugger / really doing agile RIGHT / not coding in assembler} has on our productivity.”
I swear it’s almost done: “The only thing left is {nailing a few showstopper bugs / security / one more BIG sprint / trying it with production data / getting some user feedback / adding some machine learning stuff}. I still think we’ll be done early.”
They are gonna fire me, my boss or the consultants: “I can’t believe {there was another blocking issue behind the blocking issue I fixed last week / the new release date is during my family vacation / the latest schedule assumes no bugs after the next sprint / the users insist they need that functionality on first release / with all the issues we fixed the issue count still went up this week}, and we are going to have to work another weekend.”
They fired the consultants: “Well, at least with new leadership and a new release date we’ll get to {complete all the features / really test it before release / get operations prepared / address the technical debt / keep our jobs until then}, but I can’t believe I rescheduled my vacation and now they’ve moved release to THAT week.”
Release it, ready or not: “I always said {this isn’t REALLY agile / we should have picked a language that handles memory allocation automatically / who needs a mobile version / we can performance test in production / only working with IE was enough for release 1.0} and I’m sure glad my spouse talked me into not moving the vacation again – lol it would have been this week.”
Estimate graph is from Barry Boehm’s “Seven Principles of Software Engineering”, The Journal of Systems and Software 3.3-24(1983) Elsevier Science Publishing Co., “Figure 9, Sample software module development estimate”. Phase overlay is my own.
Chris, thanks for sharing!