This post is part of a series of writings about my point of view on some chapters of the book Software Project Survival Guide by Steve McConnell.
There’s a moment, at the beginning of any project, where you start to organize how the process of making the project is going to be. It can be a little hard to think about «how to organize a software project», because there are many elements involve. But when we are in this phase of organizing the project we need to have in mind, that a project consist of three mayor phases, which are: Discovery, Invention and Implementation. McConnell says that this phases or steps, are going to cross paths during the process of the project. In my personal experience, I can assure you that it is true. But also you have to take in consideration that each phase needs its own time and consideration. In the projects that I have been, we didn’t respect very much the «time» each phase needs and we just make a combination of the three at the same time, which can lead to make a lot of work in the future.
Returning to the topic of how to organize a software project, well, there are plenty of methodologies, one can follow. There is the waterfall development, spiral development, code and fix, and many more. McConnell in his book, proposed the «stage delivery» method. This method consist of creating the project in parts, rather than in a whole. For a better explanation, here is a picture of how stage delivery works.
The picture above shows, how the stage delivery method needs to be develop. As you can see, the upstream activities are only realize one time, while some of the downstream activities are in a constant cycle, until the project is release. I have kind of work, with this method, because in the school projects every partial teachers ask you for your advance. The difference comes, when instead of release the software at the end of each phase, my team and I, we just showed what we have done.
McConnell list some of the most important benefits of stage delivery, which are:
- Critical Functionality Is Available Earlier
- Risks Are Reduced Early
- Problems Become Evident Early
- Status-Reporting Overhead Is Reduced
- Staged Delivery Makes More Options Available
- Staged Delivery Reduces the Possibility of Estimation Error
- Staged Delivery Balances Flexibility and Efficiency
All of this advantages are great, but in my opinion one of the most valuable is that risks are reduced early. I say this, because I have been in situations where the planning wasn’t good enough and almost at the end of the project, there appears dozens of bugs and problems that could have been solve in the beginning of the project.
Take in consideration, that McConnell is just proposing one way out of other ways of doing a project. He mention this one because is the one that he observed that has more advantages in some cases. According to the situation you are in maybe stage delivery won’t be the best approach to make a project. So before you start your project organize yourself and your team, and try to select the best methodology according to the project.
Stay Safe
A.C.
References
McConnell, S. (1998). Software Project Survival Guide. Redmond: Microsoft Press.