Posts Tagged ‘software engineeing’

Software Practices: Agile vs. Waterfall

July 21st, 2009 No comments

For the past couple of years, I’ve been mostly working with agile practices. It makes absolute sense considering that in most of the project I work on, we don’t even know if a solution exists for the problem that we are tackling. It makes complete sense to identify the final goal, and work via iterations to satisfy the acceptance criteria that we’ve set.

If anyone asks me when to choose an agile development practice, and when to work with a more traditional waterfall method, I’ll ask them one question that should help resolve this quadrancy. the question is

Do you know enough about what you’re implementing to create an end-to-end design, and identify every step you need to take towards this goal.

If the answer is yes, the best option is the waterfall method. You, my friend, have a clear, crisp engineering project that can be predictably tackled and without any risk of scope-creep. Why not enjoy the next year with a bit of up-front planning. By this point in your career, you’ve probably earned the right to sleep at night knowing that things are on track!

If the answer is no, I’d nudge you more towards agile practices. Put into place weekly/bi-weekly meetings to set the goals, and remain cognizant of the deadlines, and have liberty to chop quality of functionality as you run out of time. It’s all about ‘dead reckoning’ baby! You’ve probably lost sight of shore a long time ago. []. Your project is staffed by a passionate team that works well together, has open and clear communication, and is focussed on gitterdone.

After all, you only have a fuzzy idea of where you and your teams wants to get to, and have to use frequent meetings with clients and the team to ensure that you’re on course (and moving in the right direction).

I can only promise you that you’re in for one hell of a ride, and would not want it any other way. After all, Niel Young said it best.. ‘it’s better to burn out than fade away!’

You can learn a bit more about the difference between incremental and iterative development in the aptly titled post:  The waterfall trap for “agile” projects

If you liked this post, why not subscribe via email, to be notified of other similar posts in the future?