It’s been a year since my project replaced IBM WebSphere Application Server with a Java SE solution embedding Jetty. Looking back on the last year, I only have one regret: That it took us so long to make the switch. The difference takes a bit of perception: Our software no longer eats away our time, killing us with a thousand pinpricks.
But WebSphere is just the most blatant example of software that gives you nothing, gets in the way of a lean process stream, yet costs a lot of dough. I recently talked to a cousin who works in the oil industry. When we talked about our jobs, he expected me to be using lots of commercial parts, like other engineering disciplines do. The discussion got me to thinking: Why do I always end up regretting it when I use commercial enterprise software?
When my cousin asked the question, I came up with the following answer: The problem is the feedback cycle. The result of a software project is invisible, but software projects last for a long time, and cost a lot of effort. The obvious management decision is to buy your way out of the huge expensive of developer hours. But when an invisible project is over budget, after schedule and waaaay below expectations, it is very hard to find a culprit.
Bad software hurts you in an insidious way: It eats up the time of every developer a little at a time. Instead of testing your changes with a one second unit test, you test your changes with a five minute deployment cycle. Instead of rolling out a new version to a controlled environment with a command in 30 seconds, you schedule a deploy task that the product expert will perform in a few hours.
The result is that developers will go slower than they feel they should be able to. And in my experience, almost all developers are humble to a fault. When they work slower than they expected, they blame themselves.
So when managers ask why a project is late, developers feel personally guilty. And it’s a poor craftsman who blames his tool, no?
And what manager would guess that the expensive software from the slick, world-renouned vendor is to blame. So if you are a developer, do your manager a favor and challenge the technical confines of your project that eat up your time. And if you are a paying for a project, do yourself a favor and listen to the complains of your developers.
(This post is dedicated to JLO, who did just that! Thanks, man)