Programming is fun
The read at http://stilldrinking.org/programming-sucks is cool. It says a lot that is true (and it’s an awesome name for a web site), but I think that he’s missing something!
Programming is a creative pursuit. It is used in engineering, but it is itself only engineering in the same way that writing a novel is engineering. When you’re writing a {program,novel}, you have an idea to express. You have an infinite number of ways to express it, and you have many languages to choose from. But in the end you’re trying to create an effect, and you can judge your success on how well you create the effect.
I love programming. Before I discovered it I used to do a lot of logic puzzles and crosswords, because I liked solving puzzles! And programming is an amazing puzzle, because there is no single right answer.
The reason that I think the bridge analogy doesn’t really apply, is that people have been building bridges forever. It’s a pretty well understood field. Other than the substitution of more modern materials the requirements and design for bridges probably don’t change much. Compare that to software design. Bridge requirements change over decades, as trucks get bigger and traffic gets heavier. Software design changes by the minute. You demonstrate a system and when people see it they get an idea for a way to use it that they haven’t thought of before.
I think that if software design ever gets to the point where it can be done by numbers, the types of people who want to do it will change dramatically. At the moment people who like solving puzzles and creating things do well in IT. If it gets to a point where it is so cookie-cutter that it can be done by numbers, or standards and strict methodologies, we’ll have people seriously debating whether to choose accounting or IT as a career path! No offence meant to accountants, but creative accountants tend to get into trouble. As would creative programmers in that sort of environment.
Ironically, I think that ‘Still drinking’s article is a great piece of programming. He obviously enjoyed writing it, and is rightly proud of it and the effects that it’s produced. That’s programming!
The effects of many different people having different, conflicting opinions and standards can be a real problem, but only if what I think affects how you implement something.
I think that what we need to do, is to give people the freedom to create, rejoice in their creativity, and implement things however they like. Let people be as happy with their code as ‘Still drinking’ is with his article! BUT, when it comes to talking to others (code), we need to cleanly define the borders and interfaces.
Testing anything even remotely complicated is impossible, so reduce the size of the chunks that we develop to things that can be cleanly and unambiguously specified and tested.

Recent Comments