Jonathan Rentzsch has blogged that Programmers Don’t Like to Code and I couldn’t agree more with what he says. The gist of his post boils down to this:
Programmers don’t like to code, we like to solve problems. Coding is not problem solving, but software problem solving usually involves some coding.
Solving problems is far more interesting than writing code. Writing code is tedious and annoying half the time. And personally, once I’ve solved the problem I am very disinterested in the rest of the code that needs to be written to create a full application. I’m not really a finisher. Any projects I have finished took a lot of effort to push through the de-motivation of working on something I was fundamentally not interested in. When you’ve got a problem you want to solve you are generating ideas and ideas are fun to play around with. Once you’ve got a solution in mind finding how to implement it can also be fun (though not always). I enjoy writing prototypes and getting the guts of the solution in place but once it comes time to move beyond that I start to slow down. My interest wanes and my procrastination increases.
This isn’t only in relation to software projects. I enjoy the act of photographing and solving the problem of creating the picture I want but I rarely bother to print the result. The series of articles I want to write for this blog were a lot of fun to research and makes notes about but I haven’t sat down to write them yet. When I took my first course at The Workshops the founder of the school gave a presentation that resonated with me. He said it was quite alright that you not be a finisher so long as you form a relationship with a craftsman who is one. In photography this means finder yourself a master printer. I wonder if such detail oriented folks exist in the software industry? Perhaps I need to find one for my software projects.



February 10, 2007 at 9:26 am
Interesting post. I think I’m the “finisher” type of developer you’re talking about. I’m very detail oriented. I even enjoy creating (or finding somebody to create) the icon, creating the DMG or installer, worrying about usability testing, etc.
My interest in coding is also in solving a problem, but it’s the problem of human-computer interaction. I totally enjoy writing the interface, and lose interest when I get bogged down in “the guts of the solution.” I couldn’t care less about twiddling bits with code.