Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/raedan/public_html/textpattern/lib/txplib_db.php on line 14
State of Flow: Stop planning, type!::journal

Stop planning, type!

Channing Walton - Saturday September 10, 2005

Plans are useless but planning is essential …

Boss Why are you all wasting time talking?
Developer We’re planning
Boss All of you?
Developer Yes …
Boss I’m not happy about this, we have to meet deadline X and you’re not working!
Developer Um …. we are working, we’re planning …
Boss We’ve already planned what you need to do, this meeting is unneccessary!
Developer Your plans aren’t detailed enough for what we need to do, further analysis is required
Boss Then we’ll get the business analysts to do it.
Developer They can’t, there are complex technical decisions to be made around all the edge cases the Business is unaware of. We have to work with them to resolve the issues.
Boss Then we’ll get the architect to do it.
Developer He can’t, there are complex technical decisions to be made around all the edge cases he is unaware of. He’s in the meeting too.
Boss What! You mean the entire business, architecture and development team are talking!! We don’t have time for this, get back to your terminals and start typing.

Well you get the idea. I had a (much longer) conversation like this a few years ago – the guilty will remain anonymous.

Suffice it to say I have heard many developers repeat the same tale in various guises, shaking their heads in despair wondering why the world is against them. Sadly, I’m still hearing this today from teams that have adopted Agile methods like XP that mandate frequent discussions with end-users.

Preachers of the tried and trusted (to fail) Waterfall methods hope that the highly detailed analysis and planning each developer is doing will fall naturally out of The Spec. Those detailed plans are of course in each developers head, safely locked away, never to see the light of day until reverse engineered by his poor, terrified successor.

The intricate analysis developers have to engage in would terrify most right-thinking people – it certainly frightens the developers (have you noticed the petrified look on their faces when approached). The systems being built today are vast, complex beasts that need careful attention to detail that cannot be achieved by upfront analysis by architects or business. And so it is a vital part of a developer’s job to engage in continuous analysis and planning activities with the rest of the team.

Modern methods of software development engage in discussions every day to help manage the complexity of software projects: formal planning games every few weeks, iteration planning and daily stand ups. There are very important side effects to these discussions: shared knowledge, understanding and trust between business, management and development (the Team), coherence across the design and codebase.

Not allowing developers to drive analysis and planning will result in chaos and pain in the system and everything that comes in contact with it, like the precious deadline, your budget and your bonus.