Why Agile? Why Plan-Driven Software Development Projects Fail?

Not so long ago, it was widely accepted that planning is a very critical part of the entire project. While proper planning is still very important and will result in better execution, the time-frame for the project plan is shrinking. In the current environment, it is very difficult to plan for the entire project life cycle at the start of the project. There is a need to make frequent visits to the drawing board.

It is quite possible that the project scope may change entirely during the various iterations of project planning; however, this project may still be classified as successful, while the project that delivers what was planned for but became obsolete during project execution may be classified as redundant or a failure.

Plan-driven software development is a more formal specific approach to creating an application. Plan-driven methodologies all incorporate: repeatability and predictability, a defined incremental process, extensive documentation, up-front system architecture, detailed plans, process monitoring, controlling and education, risk management, verification and validation.

Plans are typically generated by the following:

  • Project broken down into stages/tasks
  • Each task broken into its composite activities
  • Each individual task estimated (perhaps using metrics)
  • Estimates aggregated to give total effort
  • Task list analysed for concurrencies and dependencies to provide schedule
  • Schedule and delivery date help provide team size and team composition
  • Team assembled and project commences
  • Monitoring and control throughout development
  • Delivery!

[Source: Coleman, Gerry. Software Process Management, Dundalk IT / IT Tralee(2008)]

Is “Plan the Work and Work the Plan ” Obsolete?

In today’s environment, it may not be wrong to say that all products and services are perishable. If the time to market is too long, the product or service may be rendered useless even if it has not physically perished. In the same way, a project can very easily perish if by the time it is completed, the stakeholder demands have changed. Companies have begun to realize that people and not processes are the real lubricants for any project and hence stakeholder commitment and involvement is very necessary for the success of projects. In order for the stakeholders to be committed to the project, they must be able to see its usefulness in their current environment and lives.

As a result, in the current dynamic and uncertain world, traditional project management methods are getting less and less effective and this calls for methods that are lot more dynamic, adaptive, flexible…. in other words, agile.

References

Scrum articles for beginners