Software Life Cycle Management: Lessons Learned from Waterfall and Spiral.

There’s more than one way to manage the life cycle of a software development project, and not all are created equal. While traditional approaches to development have been used for years, I have found that they don’t always ensure the best outcomes.

The waterfall model I was taught in college seemed fine in theory, but I found that it didn’t always stack up to the demands of the real development world, which I learned after working for some time as a developer and project manager.

Case in point: my very first software development project for a U.S. client followed the waterfall software development model. Requirements, specification, architecture, design, implementation, testing, debugging, deployment and maintenance were followed step-by-step. Yet despite our process compliance, we still ended up having to go back to apply development patches, leaving everyone frustrated and confused. This tried-and-true software development methodology had failed me and my team.  

For my next software development project, I switched to a spiral model. While waterfall software development is stacked and fixed, spiral development is iterative and agile. It was faster to use and seemed more nimble. With it, each release is built upon the previous one, based on improvements that are needed. It worked better than waterfall, but I was still dealing with a lot of changes at the end of every release.

When I became the project manager, I decided to split each release into small packages timed at two- to six-week intervals. I split features between the packages even if they did not seem to be dividable. After each package was developed, I asked business users to preview it and provide feedback that our team then implemented in the remaining packages. The result was brilliant! In real UAT (user acceptance testing) we had fewer bugs, and in each release we had one month of “idle” time!

Through this process, I learned a lot about mastering the life cycle of a software development process—and truly began to appreciate the benefits of a spiral approach in terms of reducing risk and delivering higher success rates. And it’s why I rely on spiral development and agile process for my clients.

Categories: 
up
0 users have voted.

Add new comment