Craft Vs. Engineer

168 views
Skip to first unread message

Matt Heusser

unread,
Dec 29, 2008, 8:28:28 AM12/29/08
to software_craftsmanship digest subscribers
>If I start calling myself a software craftsman/craftswoman as opposed
>to a software engineer or a software developer :
>
>1) What am I trying to say about myself?
>2) What does this say to others about me (employers, colleagues etc)?
>

First off, that you have no relation to the Professional Engineer title.  This is mostly important in the state of Texas, where claiming to be an engineer of any type without a PE rating can get you in trouble. ( http://www.tbpe.state.tx.us/eng_req.htm )

Second, that instead of creating a work product that meets a specification, you instead take vague and ambiguous problems and solve them.

Instead of expecting a spec, a craftsmen asks a bunch of questions, produces a prototype, asks "is this what you want?", gets feedback, and keeps doing it until he's done. 

A software developer would be more toward the middle of the spectrum and tend to be more specialized to just developing software, vs. craftsmen who tend to work soup-to-nuts.


regards,

--
Matthew Heusser,
Blog: http://xndev.blogspot.com
Twitter: http://www.twitter.com/mheusser
Skype: mattheusser

Heraclitus

unread,
Dec 29, 2008, 9:58:45 AM12/29/08
to software_craftsmanship
Agreed on the engineer title. Its just not correct. Even if the person
did have a engineering degree.

As for the distinction between the 'developer' and 'craftsman' titles;
well I would expect a 'developer' would be doing all those things you
describe the 'craftsman' doing if he were to succeed in developing
software. I'm not sure that the label matters that much of course,
more important that people take up the 'craft' and seek to constantly
improve at their craft.. thats the goal to raise the bar.

Does anyone here have the title of 'software craftsman' as their day
to day job title?

Dave Hoover

unread,
Dec 29, 2008, 10:11:35 AM12/29/08
to software_cr...@googlegroups.com
On Mon, Dec 29, 2008 at 8:58 AM, Heraclitus
<heraclitus...@gmail.com> wrote:
> Does anyone here have the title of 'software craftsman' as their day
> to day job title?

Yep, my title is "Chief Craftsman" at Obtiva.

Jason Gorman

unread,
Dec 29, 2008, 10:50:02 AM12/29/08
to software_craftsmanship

>
> Second, that instead of creating a work product that meets a specification,
> you instead take vague and ambiguous problems and solve them.
>
> Instead of expecting a spec, a craftsmen asks a bunch of questions, produces
> a prototype, asks "is this what you want?", gets feedback, and keeps doing
> it until he's done.
>

Where is it defined that this is what "craftsmen" do?

Jason

Eric Smith

unread,
Dec 29, 2008, 11:31:41 AM12/29/08
to software_cr...@googlegroups.com
Everyone at 8th Light has the Software Craftsman title.

Heraclitus

unread,
Dec 29, 2008, 9:35:40 PM12/29/08
to software_craftsmanship
Ok, I was waiting for that answer :) so my next question is this:

Eric:
What does having the role/title of a 'software craftsman' mean to all
the developers in 8th light? Whats the purpose behind choosing this
over choosing 'developer'? Has this impacted the way they work in any
way?

What does this man about '8th light' the organization that they call
the people who develop their software 'software craftsman'?

Dave:
What does the role 'Chief Craftsman' at Obtiva entail? Do you call
all the people who develop software in the company 'craftsmen'?

Raoul Duke

unread,
Dec 30, 2008, 1:11:34 AM12/30/08
to software_cr...@googlegroups.com
> all the people who develop software in the company 'craftsmen'?

the sad-funny thing is that given the type of work i see from
Developers, if i ever came across a person who really was a Software
Craftsman i would feel like i'd found an oasis in the desert? the
image in my head of somebody actually paying attention to the details
of the code, and working to smooth it out and get it all Just So
sounds so much better and different than the regular "just poop it
out, already!!" attitude i think underlies so much code.

Heraclitus

unread,
Dec 30, 2008, 2:37:02 AM12/30/08
to software_craftsmanship
> the sad-funny thing is that given the type of work i see from
> Developers, if i ever came across a person who really was a Software
> Craftsman i would feel like i'd found an oasis in the desert?

That unfortunate. But I can't help but feel that a statement like that
is unfair. I going to assume that you too are also a 'developer' or in
the very least were one (otherwise how would you know to judge other
developers work).

Craftsmanship is described as the basic human impulse to do a job well
for its own sake. I generally believe that most 'developers' fall into
category. They all try to do the best that they can. So if the work
itself it not up to scratch then it is for any of the following
reasons:

1) The developer doesn't really care about their craft. No real
interest in the job, no interest in improving themselves.
2) The developer doesn't like their job. They like their craft but
don't but want to but the effort in on their current job for various
reasons
3) The developer doesn't know any better. They are doing the job as
well as they can and for its own sake.

if 3, then it may not be the developers fault, something needs to be
done to enable him to learn better skills, techniques etc
if 1, well maybe the developer needs to find a new type of job, they
cant be happy with themselves.
if 2, the reason for the lack of effort/discipline needs to be found
out etc etc.

I suppose what I am trying to get at is that I don't think its as
simple as developers 'pooping out code' knowingly, if they are doing
that then there is most likely some external influences on the
developer(s) causing them to do this.

Jason Gorman

unread,
Dec 30, 2008, 3:11:33 AM12/30/08
to software_craftsmanship
>
> Craftsmanship is described as the basic human impulse to do a job well
> for its own sake.

I hate to be a real pain the beehive about this, but I've witnessed
what happened with the whole "agile" movement, and how a simple,
widely understood term got distorted and overloaded to the point where
it's become meaningless (okay, the point where it usually means
"Scrum").

Again, I have to ask where is it described thus? I keep finding pretty
consistent definitions/descriptions of "craftsmanship", and I can't
help wondering if - as we did with "agile" (which also use to be
pretty well defined) - we're now trying to redefine the word to tailor
it to our own outlooks and agendas. Just as "agile" does necessarily
mean "Scrum", "craftsmanship" doesn't necessarily mean "apprenticed to
a master" or "isn't doing it for the money". I've been reading a lot
on this lately and the components of "craftsmanship" seem to be the
application of skill to the creation of some high quality work
product. That could be the skill of a luthier applied to the creatoin
of a high quality instrument, or the skill of an actor to the creation
of a high quality stage performance, or the skill of a programmer to
the creation of high quality software.

If software quality is high, and the people who wrote it are highly
skilled, then what matter that they weren't apprenticed to a master,
or that they only did it for commercial reasons?

Okay, so there are implications - it's unlikely that someone would
dedicate years to mastering software development if they didn't really
care, for example - and we can all find our own roads to mastery, but
these issues exist outside of the end goal and are choices we can make
along the way. I worry deeply that they might somehow become
requirements and an end in themselves. (Again.)

Jason Gorman
http://www.parlezuml.com

Jason Gorman

unread,
Dec 30, 2008, 3:14:27 AM12/30/08
to software_craftsmanship
Correction: "agile" does NOT necessarily mean "Scrum" !

Heraclitus

unread,
Dec 30, 2008, 3:49:05 AM12/30/08
to software_craftsmanship
> Again, I have to ask where is it described thus?

Richard Sennet, The Craftsman: http://www.richardsennett.com/site/SENN/Templates/Home.aspx?pageid=1

The Craftsman names a basic human impulse: the desire to do a job well
for its own sake....

Craftsmanship

Maybe I should of said 'We have a basic human impulse; to do a job
well for its own sake....' in my argument instead of describing
craftsmanship as having this property?

Jason Gorman

unread,
Dec 30, 2008, 4:27:28 AM12/30/08
to software_craftsmanship
Sennet hasn't redefined the term, as far as I'm aware. He may discuss
its origins and implications.

Every time we try to add an AND or a BUT (e.g., a craftsman follows an
impulse to do good work for its own sake, or a craftsman has to be
apprenticed to a master craftsman), we restrict the number of open
roads towards craftsmanship and reduce the opportunities for achieving
it - every bit as much as if we stipulate that programmers must have
computer science degrees (and what a truly awful world that would be!)
> > Jason Gormanhttp://www.parlezuml.com- Hide quoted text -
>
> - Show quoted text -

Heraclitus

unread,
Dec 30, 2008, 5:21:48 AM12/30/08
to software_craftsmanship
agreed. wasn't my intention to try and redefine what craftsmanship
means and we certainly don't want to restrict the ways of getting
there.
> > > Jason Gormanhttp://www.parlezuml.com-Hide quoted text -

Paul Pagel

unread,
Dec 30, 2008, 6:54:29 AM12/30/08
to software_cr...@googlegroups.com
I don't think a definition of a craftsman can be done in a few
sentences or a few words. I think Richard Sennett's book is a good
exploration of the things that a craftsman historically does: from
ability to concentration to different kinds of obsession. I think our
task of defining what a software craftsman is can start with that
exploration rather than a specific definition or wikipedia page about
the topic.

I have the term Software Craftsman as my title and on my business card
for 2 reasons.

1 - A non-development minded person looks at it and says, "What is a
software craftsman?" I get the chance to explain a little bit about
how I develop software with quality techniques (and most likely
subsequent results).
2 - The developer/software craftsman/ project manager sees it and
hopefully either asks question in #1 or has had experience working
with a craftsman.

From the result in the first paragraph, I don't have a clear
definition of what a craftsman or software craftsman is, but I have
enough understanding of this style of developing software that I
follow that I am satisfied in calling myself a craftsman.

Paul Pagel

Dave Hoover

unread,
Dec 30, 2008, 8:25:32 AM12/30/08
to software_cr...@googlegroups.com
> Dave:
> What does the role 'Chief Craftsman' at Obtiva entail?

Hm, good question.

First I'll describe how the role came about. I became a minority
owner of Obtiva in 2007 but chose to stay in the trenches and not move
up to management. I knew moving up would only cause pain for me
(because I would miss developing software) and pain for our teams
(because I'm not yet a very good project manager), so we needed a
title for someone at my level in the company who is remaining
technical. Typically that role is titled Chief Scientist (Martin
Fowler at ThoughtWorks, Aslak Hellesoy at BEKK, Jim Weirich at Edge
Case). First, I'm not in the same league as those guys, they've all
been developing software for at least 10 years longer than me and each
of them have accomplished some awesome feats in our industry. I hope
to emulate them, but I'm not even close yet. Second, I cannot ever
have the word scientist associated with me (for the same reason I
can't have engineer), because I am just a simple craftsman. It's not
fair to science or engineering to have a self-taught,
muddling-stumbling-through, touchy-feely person like me call himself a
scientist or engineer. So I chose Chief Craftsman.

This role entails leading our apprenticeship program. Leading key
projects as the senior developer. Speaking at conferences.
Organizing user groups. Writing books, articles, and blogs.
Spreading knowledge through the company. Pioneering new aspects of
the business. Helping with sales.

> Do you call
> all the people who develop software in the company 'craftsmen'?

No, we currently have 3 developer titles: Software Apprentice,
Consultant, and Senior Consultant.

Raoul Duke

unread,
Dec 30, 2008, 2:17:20 PM12/30/08
to software_cr...@googlegroups.com
hi,

> That unfortunate. But I can't help but feel that a statement like that
> is unfair. I going to assume that you too are also a 'developer' or in

> 1) 2) 3) ...


> simple as developers 'pooping out code' knowingly, if they are doing
> that then there is most likely some external influences on the
> developer(s) causing them to do this.

well said, i think i quite agree. (partially when i say 'pooping' i am
referring to the pressure that comes from bad project management
practices, which leads devs into e.g. technical debt.)

sincerely.

Micah Martin

unread,
Jan 2, 2009, 9:22:44 AM1/2/09
to software_cr...@googlegroups.com
On Dec 29, 2008, at 8:35 PM, Heraclitus wrote:
> Ok, I was waiting for that answer :) so my next question is this:
>
> Eric:
> What does having the role/title of a 'software craftsman' mean to all
> the developers in 8th light? Whats the purpose behind choosing this
> over choosing 'developer'? Has this impacted the way they work in any
> way?


Heraclitus,

I'd like to hear Eric's answer but I'll give my opinion as the person
who put the term "Software Craftsman" on all our business cards.

> What does this man about '8th light' the organization that they call
> the people who develop their software 'software craftsman'?

8th Light is a Software Craftsmanship company. The company, at all
levels, care about the quality of software. We believe it's not
enough that code simply works. Our code not only works well, it is
also well tested, easily maintainable, and easily extendable. This
means a lot to our clients as many of them have been burned by
"software developers" and the poor quality they deliver.

As a Software Craftsman at 8th Light, it is my responsibility to meet
the standards of a Software Craftsmanship. I must write code that I
am proud of and that my colleagues can be proud of. Having the title
"Software Craftsman" on my business card binds me. If my code did not
meet the standards that my title implies, I could not pass out my
business card and maintain my integrity.

Micah

Eric Smith

unread,
Jan 4, 2009, 8:31:44 PM1/4/09
to software_cr...@googlegroups.com
Oh crap Micah answered first.   Pressure......

What I think of as a Craftsman is somebody who treats their work as more than just getting things done.  I can build a car, or I can lovingly detail a custom-made Corvette.  In the realm of business software, I can get the first hack in that works, or I can do the best damn job I can to get the best possible code I can write into the system.  

Maybe I'm going to too many Cub Scout meetings with my kids, but I feel like it can really be boiled down to "Do Your Best."  Personally I'm not smart enough to do a job at 50% of my best and have it be worthwhile.

Eric

Adewale Oshineye

unread,
Jan 6, 2009, 4:52:53 AM1/6/09
to software_cr...@googlegroups.com
Jason,
One of the places that the Agile movement went wrong was in our
unwillingness to draw boundaries. We kept giving people weak answers
to the question: where shouldn't I use Agile? We failed to engage
with: people who wanted to talk about the cost of feedback; situations
where feedback is expensive; cultures that value stability over
adaptation; teams that were succeeding despite a rejection of many of
the tenets of Agile. This wasn't helped by a manifesto which divided
the world into dichotomies. I too would like to avoid repeating those
mistakes.

Anyway a definition of software craftsmanship has to be more than just
taking an existing definition of craftsmanship and applying it to
software development. This is where the software engineering folks
went wrong. They started out with a poor understanding of engineering
and then tried to apply it to software even though software is
qualitatively different to existing engineering disciplines.

Software Craftsmanship needs to be articulated in a way that: explains
how we're modifying the ideas at the heart of craftsmanship to suit
our discipline; what we're trying to achieve with this
articulation;who it includes and why; who it excludes and why; how
we're different to highly skilled developers in the mainstream.

I share the desire to be as inclusive as possible but it tends to
create a situation where we avoid the hard questions. A 5 minute
conversation with someone like Keith Braithwaite or Ravi Mohan quickly
leads to difficult issues being raised. For instance is every highly
skilled software developer a software craftsman? If so is software
craftsmanship just a label we're going to attach to anyone who is
highly skilled? If being highly skilled doesn't automatically make you
a software craftsman (a position that John Daniels has raised here:
http://jd-syntropy.blogspot.com/2008/12/inside-mind-of-craftsman.html
and which I strongly agree with) then we have to be very clear about
the additional attributes that takes you from merely being highly
skilled to being a software craftsman.

I think these additional attributes are also important for another
reason. They make it possible for someone to meaningfully say "I'm
working in the software craftsmanship tradition but I'm not yet highly
skilled." They also make it possible for someone else to meaningfully
say "I'm highly skilled but I reject the label of software craftsman
because I reject that model and it's additional attributes."

P.S.
There's a fascinating discussion to be had about the importance of
computer science versus the importance of computer scientists and the
impact of self-taught programmers. In fact I started drafting a
session proposal for the upcoming Software Craftsmanship conference
about abstractions from computer science that are breaking into
mainstream software development but decided at the last minute not to
submit it.

2008/12/30 Jason Gorman <goo...@parlezuml.com>:
Reply all
Reply to author
Forward
0 new messages