I’ve seen people using project in the broadest way, trying to define some time allocation and see where features are ready, failing due to erroneous estimates and huge interrupts. Other people tried to use resource allocation for managing feature development, failing due to miscalculations and bad effort allocation.
What are the reasons for such continuous failures? Is software development so unmanageable?
Part of it is yes, software development is harder to manage using old fashion tools like GANTT charts. The contrary is also true; using other methods software development can be managed and controlled.
What is the main problem with MS-Project? There are several, but the main problem is the idea of work day, same as man month. Programmers are not machines, and the production varies wildly between good and bad programmers. In addition the programmer needs to be in the zone and any interrupt can make havoc. MS-Project also guides the mentality of waterfall, where everything is known out front and even unknowns are “allocated”.
What other methods can be used?
• Joel on Software has a detailed method for software management
• Agile methods of short iteration.
• Many others
I believe in two basic things for correct analysis of work plans:
1. Have at least an initial design before providing any work estimate.
2. Have short development iterations, where each iteration can serve as a start for next phase in such way as effort is not wasted.
If you read this far, you should follow me on twitter here.