IT strategist, Startup positioner, Cargo cult programmer. chaosfactorythebook.com
I am an over-eager programmer. I always have been.
When a friend or colleague comes to me in distress and asks me if I can help by writing a “quick” program, in spite of myself I always say yes.
What happens next follows three very predictable stages:
At first I am a hero. So unlike all those other stick-in-the mud prgrammers that hem and haw, the hedge and dodge and evade. So what if there are rough edges? I had warned them there would be, and speed trumps perfection.
After the initial delight has worn off, we quickly move to a phase of rapid-fire change requests. Can you do this? Can you do that? Can you make this a little different. Can you make that completely different?
Forgotten are my warnings that each change brings us closer to the day when the only way to get a stable bug-free application will be to re-write it. Of course each change request is more urgent than the last, so “just do it” is the order of the day. No time and no money to take a step back and learn from what was essentially a working prototype.
In the last stage, the rough edges, that were there from the beginning now become unbearable, unacceptable bugs. I am a loser, a hack. All this time, all this money, and what we have to show for it is a Big. Pile. Of. Crap.
I have been doing this a long time. I have been through this with programming I have done myself, and with programming done by teams working for me. I know how the story plays out, and yet I can never bring myself to play the game that so many of my colleagues do: “oh, that’s very complicated, I am not even sure it’s possible, it could take a lot of time. Give me two weeks to estimate it.”
So ultimately I am to blame. I should know better.
Most of my colleagues are hyper-defensive, refusing to give estimates (that will automatically become deadlines), refusing to commit to anything. So Business owners and project managers, and enterprise architects all dream up arbitrary estimates for them, and these become budgets and deadline that are almost never, ever, met.
This is how the salt mines of IT work these days. Driven by the worst of human behaviour on all sides. I guess I am a dreamer, I just refuse to accept it.