In this post I will try to cover the most important aspects of the chapter 4 from the book “software project survival guide” by Steve McConnell. The most fundamental part of the project must be the planning, proper planning can save us a lot of time and it can be do with moderate to low effort in comparison with other parts of the project like codding of debugging. Planning comes in many forms for example:
- Project estimates. The foundation for other project plans.
- Revised estimates. This are created at the end of each major phase of the project for mid-course corrections.
- Quality assurance. Technical reviews and testing assured that the project will not succumb.
The books suggest a practice I have not heard before in terms of founding and is called the two-phases funding approach in which the manager first request for the exploration phase a small sum of money and afterward the project team holds a planning checkpoint review, with this information the customer or senior manager makes a go/no go decision and then the project manager request for more founding. This technique helps a lot at the moment a person asks for a monetary estimate for the project this helps to reduce the variation down form a factor of 4 times its cost to more like plus or minus 50 percent.
Control is the second part of every administrative manual and it comes down to controlling the processes of the project and not the people, the control of a software project need to be built through active project management and it consist managing small task for different activities to not overload the charge of work and to keep an steady eye on the overall action that is taking place in development. We enforce control through visibility and visibility alone is not a simple task, to achieve this we need to make “checkpoints”, milestones and driving the software product to release state periodically so we can determine the product’s true condition while not giving away the development team, the people take a big enough importance in the development of software. Software alone is not easy to make, software requires creativity steady fingers and a sharp mind the proper team will not work well if they are not given the correct circumstances and for that we have to motivate the workers, by giving the thinking spaces, quiet rooms and appreciation. By the way I believe open offices should be non-existent. As the book clearly states.
The job of the average manager requires a shift in focus every few minutes. The job of the average software developer requires that the developer not shit focus more often that every few hours. (McConnell, 1998)
Involving users throughout the project is a critical software project survival skill, since we must remember that the product is for the customer and only he knows what he wants, unless he does not, in which case we have to discover what is that that he wants in order to create it for him. And how are we creating it ? with abstraction and only taking the most vital features for the client, most software programmers like to implement features that are hard to reach or that are overly complicated code pieces to solve a small problem in the most brilliant form we can, but that is not always the answer, we make products for the client in order for him or his company to use it and we as managers have to keep the product minimalism.
McConnell, S. (1998). Software Project Survival Guide. Microsoft Press.