Don’t be a Coder, Engineer, or Developer: be a Software Artisan!
What is your job description? What do call yourself, or tell people you do?
There’s nothing . . . absolutely nothing . . . half so much worth doing as simply messing around with computers.
My apologies to Kenneth Grahame.
When you were fifteen, you called yourself a hacker. The term, in its original meaning, is probably still more accurate than you know.
If you are … older (ahem), with young children, a wife, a house, a yen for a pool someday, etc., you are less comfortable telling people you are a hacker; all those unfortunate connotations. People look at you funny if they think you will break into their bank account.
So you struggle a bit.
I’ve been a Software Engineer, a Software Architect, a Software Developer, a Software Development Manager, a Principle Engineer, on and on. For a long time, it bugged me, because I really wanted to say that I was a hacker; because that was what I felt I was.
What I did was what I was. I’ve loved designing and coding software since I got my first access to a UNIX machine with a Ratfor compiler; loved it on my TRS-80 Color Computer in BASIC, learning thewonders of arrays; loved in through the Shareware Years of DOS; and continue to love it today in Java plus whatever else falls to hand.
But recently I’ve come to use a better term for what I do: Software Artisan.
An artisan is a craftsman who makes things by hand.
Think about that for a second. It describes the central tenet of what I do, and the primary reason software project management is so intractable.
Every line of code, every transform of idea to code, every leap of intuition is essentially a manual process. There’s no way to automate it all, no way to predict it all. Every day, I do a completely new thing in my job. No matter how many meetings, how much business development, tech support, and swearing I do during the day, I will still at some point try to do something that I have never attempted before, something new and exciting. Odds are even I may attempt something no one has ever tried to quite they way I am trying.
Odds are good I’ll fail many times a day.
And whatever code I write, whatever software I develop, it’ll be hand-made; unique to me. My colleagues could look at a piece of code and tell you which team member wrote it; I bet they’d be right better than 90% of the time.
Because software is, in the end, a by-hand, manual process. It has a lot more to do with turning a bowl on a lathe, or painting a landscape in watercolor than it does building a house.
Note that I did not say designing a house. Different kettle of fish.
Not all computer-related jobs require an Artisan; I’ve been fortunate to do some really neat stuff; satellite comms systems, telemetry systems, digital logic compilers, deductive databases.
Not all software jobs are relentlessly creative. But the good ones are.
So ask yourself — are you a Developer, a Coder, an Engineer, a Programmer? Or are you an all-growed-up Hacker: a Software Artisan?
Updated: Please don’t go to a party and tell people you are a Software Artisan. As someone said, you’ll look like a pretentious idiot. But if you get into a discussion with people about how software development works, I’ve had good success describing it in those terms.