take one woman with low self esteem, but quite good hair
add one moronic illness
stir in some medication which causes hair to fall out
mix it all up and this is what you get...

Friday, July 23, 2010

Treat this place like a hotel, etc. 

Yeah, I know. Not been here for a while. Too much life, not enough time, so it would seem. How did I ever find time to do this anyway? Well, I've deigned to drop in and write something, so you may as well hear me out.

A funny thing happened to me at work the other day.

We were having a meeting about testing the project I'm running. Like most software development projects, it's based on an idea put forward by a senior "user" (as we call them). I designed the solution and have built it along with a colleague, over the past couple of months, in close consultation with my users - my customers.

The users for this project are unusual, in that they haven't been involved in projects before - they're far too busy actually transacting the business to worry about projecty things, deadlines, timescales, GANTT charts and milestones. So when the project manager asked the question:

"What if you don't finish testing when you plan to?"

The response came from the senior user:

"Well, we carry on testing until we're happy with it, don't we? It's a no brainer!"

I could have kissed him. Could have, but didn't. (That would have been strange).

In case you're sitting there thinking "but surely, what the man said was just sensible? Logical?", then I don't think you understand the world in which most software developers operate.

Twelve years, I've been in the business of delivering software and twelve years I've waited for someone to say "Let's just do this properly. Let's take the time it takes to build it right. Let's take the time it takes to test it thoroughly. Let's deliver it when it's ready." Twelve long years.

I really could have kissed him.

At that moment, I had just a flash of what my work could be like if it wasn't... well, the way it always is.

An estimate is just that - an estimate. Sometimes things take longer when you get into the detail. Sometimes you don't think of everything. Twenty-year old bespoke IT systems are rambling, complicated, illogical, riddled with holes and inconsistencies. So we estimate as best we can, we build a bit of contigency, but it's a guideline, not an excuse to carve a deadline in stone and hold everyone to it.

I basked in the glory of this man's statement for some time and contemplated its simplicity, its beauty. Only to be brought back down to earth by my manager.

"B said it's okay if we don't deliver bang on the date we pencilled in - he just wants the system to be right"

"Yeah, but we've delivered a few projects late this year, I don't want another one to explain to J (the director). So I'd appreciate if you'd pull this one in on time"

A glimmer of hope, eclipsed by the dark shadow of reality.