Sunday, May 03, 2009
Why CIOs don't respect competent software developers...
Programmers work very hard to say exactly what they mean. When interacting with programmers, it is easy to get the sense that they are pedantic assholes because they are frequently asking for clarification on trivial points that you haven't thought about or correcting what seem like unimportant mistakes in what you say.
What you need to understand is that all of those annoying pedantic points are things that they need to understand, and that they need to understand correctly, if they are to have any hope of giving you anything useful.
The typical computer program cannot have judgment. It cannot "understand" much of anything. It mindlessly follows a bunch of instructions, no matter how sensible or stupid those instructions are. Getting those instructions right is our job, but in order to do it we need to understand the task at hand. Programmers need to understand it completely, unambiguously, down to every last decision, without any "rules of thumb" or "do what makes sense" type of steps, not even any trivially insignificant ones.
Also, Programmers tend to complain when you change your mind about what you want after we have written it. This is because programs are delicate things. They tend to only be easy to change in ways that they were designed to be changed. Changes that were not anticipated in the initial design can be very difficult and time consuming, and are dangerous as they can introduce subtle bugs. If you think over your experiences, I'll bet that most of the time when a program took longer to deliver than you wanted, you changed your mind about something after development had started.
Now you might have thought that the change was a small one, but it probably wasn't small at all to the programmer...
Links to this post: