Code Sins: Coding Lonely, without a Map

One of the symptoms – or maybe sub-sins – of coding lonely is coding without requirements.  Let us start, as we so often do, with an analogy.

Road Trip!

We're planning a big road trip, you and I. We're going somewhere on vacation.  Here's what we've decided so far: we're taking my van, the SQLbus. We're going somewhere warm, we're taking your friend Steve, and we're splitting all the costs three ways.  Now, given this plan, how successful do you think we're going to be at achieving a decent vacation?  Nobody's even talked about specifically where we're headed – do we even agree on what "warm" means?? Nobody's talked about supplies, where or how we're sleeping and eating – campgrounds? motel? B&B? – the direction we're headed, how long we're staying, how much we're willing to spend, etc etc etc. 

With a vacation like that, you're going to head out in a random direction; drive around for four times longer than you want to in THE most boring, backwater, ugly places possible; spend TEN times what you wanted to, and get next to no value out of it; and argue with your roadmates the whole way through.

This, my friend, is how software is developed and sold in shops all over the world every day.  Make no mistake: there are shops that do it up right, with requirements, tech specs, and solid code. May their days be fruitful and their nights free of support calls.
  But we're not preaching to those shops. We're preaching to the poor lost souls who wander, nearly directionless, through the deep mists of scope creep.

Okay, okay, enough waxing poetic.

Without clear directions from the business owners, you can't create clear tech specs, without which you can't create a system that works. In a shop that works without real requirements, everyone is used to coding lonely.  A revolutionary idea like gathering and documenting business rules will most likely meet with a lot of resistance.  Even if it doesn't, getting real requirements is something of an art form. You can't just send the BA an email to say "We need your requirements".  You have to sit down in a room with the business folk and developers, talk it out, write it down, poke holes in the use cases.  As you move through the development lifecycle, you'll have to revisit and update those requirements.

This stuff isn't fun, which is why nobody does it.  But while you can just hit the road with a friend and a credit card, you can't pin the success of your business on the planning methodology of a college road trip.

Happy days,
Jen McCown
http://www.MidnightDBA.com

P.S. Yes, I know I should've photoshopped the image to read "Code Trip", but gimme a break…it's not my strong suit, and it's past midnight!