I recently read “Peopleware” by DeMarco and Lister, a book I highly recommend to anyone wanting to understand how to manage people who write software for a living.
They mention several times that most software writers don’t work in “HighTech” jobs. The ones who really do the “HighTech” stuff are the people who write the compilers and development frameworks or come up with other new technologies. I tend to agree.
I’ve long joked to my manager about giving up writing software and asking if he knows anyone who will take me on as a “carpenter’s apprentice”. This happens especially when I get stuck on hard-to-solve problems or when I find more bugs than I care to report in Microsoft’s platforms. And of course when the people who contract for us on software turn in one more drop in which old bugs re-surface.
But I realize more and more how what I do is actually more software “carpentry” than it is “HighTech” work. Seriously. I mean, it takes effort to learn about the latest technologies, such as WPF/Avalon, sure. You have to wrap your mind around how some other people want you to write programs. And you have to do it quickly, so your project can get done on time. But in the end it really comes down to being able to handle a set of tools that someone else makes. Handle them expertly, yes, but they’re someone else’s tools.
So that’s what I’m going to consider myself from now on. A software craftsman. Perhaps even an expert or master craftsman (depending on who I compare myself to or how I’m feeling when I consider it). But just a craftsman.
And IÂ take a certain pride in the work I do. Like all real craftsmen do.