Reading the glossy magazines and fashionable blogs, all pretty much agree that in today’s organisations if you are not using Agile methodology in any software development project you are considered out of date and unable to adapt to new world of rapid development. Delivering via the Waterfall methodology is so last century… well at least that is the clear message that senior executives hear. So after this news these senior executives quickly speak to their colleagues and convince them that delivery can be done faster and cheaper, so the gears of change are implemented and everyone is convinced that writing user stories and grooming the backlog is the new way to do things, even thou this idea of delivery isn’t too new having been around since the 80s.
However, for those of you who have endured a large transformational project will know that deadlines are key, senior executives do not want hear about burn rates or that things will arrive when ready. The usual scenario goes something like: the exec will tell the Project Manager (PM), “I want it and I want it by X”, the developer will tell the PM, “You will get it when it is done”… and of course the PM is in the middle trying to everyone to commit to dates while trying to get the exec to not impose deadlines. Pretty tricky, especially for organisations that have external obligations (such as legal, marketing or regulatory, etc..) or where certain factors need to happen at a particular date and/or time (such as a big launch where a marketing campaign, building and the software all need to happen on the same day).
Having said all this, many senior Execs will hear that “Agile” is the way to delivery faster and cheaper and so they still continue on with it across every department and projects, even infrastructure projects, which anyone who has had to go through an infrastructure project, it can be as Waterfall as can be. However, having said this it may sound that I am anti-Agile but there are many scenarios that Agile works and works well or even better if it can morphed to pick certain elements that may fit, in particular 2 week delivery periods (i.e. sprints), minimising documentation and daily stand-ups. So Agile might not be best when you have a deadline.
Keeping Agile to when it is appropriate and adapting it to the needs of the project, in particular large projects that need a well executed launch probably shouldn’t use Agile. Development is often the area that is most appropriate and favoured to be more Agile, often resulting in a ‘Wagile’ or ‘Water-gile’ style of project where some phases or teams work differently, this of course would need some strong management to ensure that things get aligned and ultimately go to plan.
Regardless on which methodology is chosen or best, it should ideally be the team(s) that adapt to the needs of the project and not the project that should adapt. So, personally I believe if you have a strict deadline, use Waterfall over Agile. Sorry Agile, you are good for many things but it can often be best not be the best for everything.
It would be interesting to hear your views on when it is best to use Agile or Waterfall methodology on software delivery projects.