Thursday, August 06, 2009

So you've just been hired by an IT department...

Remember I said that nobody knows what they want. Now say they've hired a consulting firm to design their inventory control and the consultants sit in on dozens of meetings, take notes, nod their heads, tour the building, look at the products, produce endless specs and proposals, then sit down and pound out code. Suddenly a zillion gotchas and change requests wriggle out of the carpet like slugs and maggots. The changes are made, but each one compromises the design in some way. Normally you'd iron-out those wrinkles with a good bout of refactoring, but these consultants are on the clock, and when the first bill arrives the CEO is going to want to know what features he's just paid for.

Imagine the conversation between the consultant and the CEO. "What's this line item for?" Techno mumble-jumble in reply. "What do I get for it?" Abstract and immeasurable concepts of goodness. "Take it off! I'm not paying for that!"

So consultants and freelance programmers don't do much refactoring. Once the contract is over they move on to the next job and forget about what they wrote. When something breaks, they start the clock again, hack and hack and hack until it works, submit their invoice and bugger off.

The person behind the role may be highly intelligent and competent (rare, but it happens), but the role makes them a moron. Sometimes they were morons to begin with, and the role makes them even worse.

Now you've inherited all that code and you get to fix it and extend it, and maybe--because you're salaried--spend time refactoring it.

Lesson for CIO. Hire full time developers and stop using contractors.

Walken on the Moon

Walken on the Moon
I want to ...