Don’t be a Coder, Engineer, or Developer: be a Software Artisan!
Update: Check out my followup post on whether or not software is handmade.
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.
Explore posts in the same categories: TechTags: Design By Gravity, Likes, Software Development
You can comment below, or link to this permanent URL from your own site.
October 5, 2009 at 11:33 am
Which principles did you engineer? 🙂
October 5, 2009 at 11:45 am
It was an odd title. Near as I can tell I just designed and coded software. Like every other software geek. 😉
October 5, 2009 at 11:59 am
Artisan? Your’re NOT an artisan. By your own definition an artisan is someone who makes things by hand. A sculptor, a carpenter, a weaver and a blacksmith are all examples of an artisan. You are none of these, so get over yourself and call yourself a Computer Programmer.
October 5, 2009 at 12:41 pm
If you don’t think code is written by hand … hey, it’s your opinion.
But I disagree, pretty strongly.
Maybe if you’re building the world’s millionth contacts manager, or taken the days 27th tech support call on Active Directory, maybe your job is repetitive. Got me. Maybe you just feel that way.
My career has been rife with interesting, dynamic problems requiring thoughtful, innovative solutions. Like I said — I’ve been *very* lucky. I’ve succeeded sometimes and failed sometimes, like everybody else.
The software I produce, however, is very much hand-crafted. And I am fairly certain the same is true of most of the interesting software ever produced.
May 2, 2011 at 8:36 am
I hate these narrow distinctions that are popping up these days in the name of software development, pure zealotry designed to serve personal agendas. With this simple definition all engineering activities could equally be describes as ‘hand-crafted’. Engineering (although may have aesthetic elements) applies scientific and mathematics to understand, define and develop products. Crafting such as sculpting, painting etc. do not and for example care not about accuracy or reliability. Your distinction as with this article is misrepresents the activities involved with software development, is therefore misleading and plain wrong.
October 5, 2009 at 12:24 pm
infinite money says Mankhool has a boring job.
October 5, 2009 at 12:47 pm
Even sculptors, carpenters, and weavers use a tool to create their works of art.
I think artisan is a good fit, maybe not for all conversations, but amongst nerds it works.
October 5, 2009 at 1:32 pm
That’s sort of where I was going. Nobody is going to tell their mom they are a “Software Artisan”, but among developers? It seems to capture the job, at least for me.
I’ve also had resonance with craftsman, which is a vaguer term.
October 6, 2009 at 3:56 am
Actually, I was thinking of doing precicely that; telling my mom. 🙂
October 5, 2009 at 1:18 pm
I like Software Auteur, but it sounds even more pretentious 😉
October 5, 2009 at 1:33 pm
That’s on par with Artiste.
October 5, 2009 at 1:22 pm
I like “Genius” even better.
October 5, 2009 at 1:59 pm
Why not just print “hacker” on your business card?
October 6, 2009 at 11:14 am
Um, have you ever dealt with people in security-cleared positions? Hacker is a … risky term to use.
October 5, 2009 at 2:39 pm
I have chosen an entirely different name, “codewright”,
for these reasons: http://thejfb.blogspot.com/2009/07/codewright.html
October 6, 2009 at 11:13 am
Codewright is not bad at all.
October 5, 2009 at 2:58 pm
[…] the original post: Don't be a Coder, Engineer, or Developer: be a Software Artisan … By admin | category: developer software | tags: architect, contract, designers, […]
October 5, 2009 at 3:46 pm
There’s an interesting sidebar here about our identification with our professions. We tend to answer the question “What do you do?” by saying “I am a Foo.” (My usual response is, “I write software.”)
October 5, 2009 at 10:34 pm
[…] Christopher Schanck’s Design By Gravity: Are you software artisan? Yes, I am. I burned off two 100% coverage unit tests in half an […]
October 6, 2009 at 3:34 am
Software is hand-made, couldn’t agree more…
October 6, 2009 at 10:35 am
[…] Don’t be a Coder, Engineer, or Developer: be a Software Artisan! « Design By Gr… a few seconds ago from web […]
October 6, 2009 at 12:14 pm
[…] Design By Gravity Things work that way because the universe wants them to « Don’t be a Coder, Engineer, or Developer: be a Software Artisan! […]
October 12, 2009 at 4:52 pm
[…] [3]: http://www.mcbreen.ab.ca/SoftwareCraftsmanship/ [4]: http://www.joelonsoftware.com/articles/Craftsmanship.html [5]: http://manifesto.softwarecraftsmanship.org/ [6]: https://designbygravity.wordpress.com/2009/10/03/dont-be-a-coder-engineer-or-developer-be-a-software-… […]
October 23, 2009 at 3:21 am
People tend to confuse terms artisan and artist. And for most of us artist is a person that needs freedom to break rules and actually she is slowed down by rules.
In reality most of it professionals are some sort of artisans if you only take right viewpoint. But they are probably not artists.
When people talk and think about artisans, they tend to think the artistic freedoms some artisans use. And this is the decisive point here. Why? Because most of any coders work, should follow strict existing practices. To be sure, besides those practices they will use freedom, but actually they should use freedom far more less than other it professionals. So they are not artists and we shouldn’t use any term that is so closely connected to term artist.
We know that coders have used these “artistic” freedoms and this has led to lot of problems.
October 24, 2009 at 3:11 pm
Hacker, artisan, craftsman and codewright are all terms I’ve used to describe my personal approach to software development. As you point out not every software job needs an artisan (and possibly the majority don’t); I’d also observe that not every software developer is an artisan – and possibly a majority aren’t.
October 25, 2009 at 5:21 am
[…] Don’t be a Coder, Engineer, or Developer: be a Software Artisan! « Design By Gr… a few seconds ago from Gwibber […]
June 7, 2013 at 8:14 pm
Very good info. Lucky me I recently found your site by chance
(stumbleupon). I’ve book-marked it for later!
July 21, 2022 at 4:44 pm
[…] are certainly the most common ones. However, there are more exotic titles out there, such as software artisan and even software […]