Wednesday, June 14, 2006

It's only been a week, and already I've saved at least 2...

About a week ago, I inherited the maintenance of a small ASP.Net system. Some people I used to work for have had a system they are intending to market, built for them but are unhappy with the usability of some of the screens and want some changes made. Not confident with the previous developer and lacking a little faith in what they are being told I suspect, they came to me to get my opinion.

The changes are fairly superficial on the whole, but after a whirl-wind tour of the current system and the changes they require I ventured off (source code in hand) to attempt to scope out exactly what was being asked for, and how I proposed to tackle the solution...

...three revisions of a scoping document later, I think we have nailed a solution that they will be happy with, and that I am happy is technically sound - enough so at least that I will be delivering something that is maintainable down the track. More so than the current system anyway.

Now there has been a lot of back and forth between myself and my "end customer". Sometimes I suspect she has been a little frustrated that I hadn't yet jumped in and started "making the changes" she requires.

I can happily say thoug, that the time we have spent splitting hairs in this spec, (about a week) has saved us probably two or three, a month from now. I would've delivered something she didn't want the first time, and the second major review was when she highlighted a couple of points I'd missed, which I would've been doing in the end anyway, but undoubtedly not charging now it's all out in the open, expectations are set and in a day or so, we'll be off and coding - the right thing this time.

This is a scenario I've encountered many times and one that I think is common particularly in small development shops and projects. "You are working if you're not coding". I have experienced on many occassions now, the benefits - in both time saved and expectations met - of being particularly pedantic about ensuring everyone understands the ins and outs of what is being request, and repeating that constantly. Hidden "gotchas" or unspoken "must haves" almost alway come out of the woodwork at some stage.