The New Left Side

78 views
Skip to first unread message

Doug Bradbury

unread,
Feb 10, 2009, 8:38:49 AM2/10/09
to software_cr...@googlegroups.com
Hello community,

At the summit that 8th Light hosted in December, we kicked around the
idea of creating a charter or manifesto for software craftsmanship.
Not everyone agreed that such a document was necessary or valuable. I
like having my values written down and I have continued to think about
such a document.

I decided to frame the value in terms of how they are different from
the values in the agile manifesto while not dismissing that manifesto
altogether. I've come up with four things that we value more that we
value the left side of the manifesto. Here it is:

******************************************************************

As aspiring Software Craftsmen we are raising the bar of professional
software development by practicing it and helping others learn the
craft. Through this work we have come to value:

well-crafted software over working software over comprehensive
documentation
steadily adding value over responding to change over following a
plan
a community of craftspeople over individuals and interactions over
processes and tools
impressing our customer over customer collaboration over contract
negotiation

That is, while we still value the items in the middle over the items on
the right, we value the items on the left even more.

********************************************************************

I have also divided the value statement we wrote at the summit into
these four categories and called them 'principles.'

well-crafted software
... We believe the code is also an end, not just a means.
... We follow a set of practices and disciplines that ensure quality
in our work

steady value
... We say no to prevent doing harm to our craft

community
... we live and work in a community with other craftsmen
... we will help other craftsmen in their journey
... We can point to the people who influenced us and who we influenced

impressing
... We are proud of our work and the manner of our work
... We take responsibility for the code we write
... We are proud of our portfolio of successful projects

**************************************************************************


So I'm posting to the list, not because I think we can reach any
consensus on the tricky medium of email, but because I'd like to see
these values tested a bit... pushed and prodded in the hopes of making
them stronger.

For example, I'm not thrilled with the phrase "impressing our
customer," but I haven't been able to some up with something that
captures how we create solutions that are better than our customers
could have imagined. How we take responsibility for innovation, our
code and our practices.

Have at it.,

Doug Bradbury

Brian Mavity

unread,
Feb 10, 2009, 9:18:27 AM2/10/09
to software_cr...@googlegroups.com
how about "delighting our customer"

Eric Meyer

unread,
Feb 10, 2009, 9:42:58 AM2/10/09
to software_cr...@googlegroups.com
I'm not sure if we should be comparing ourselves to Agile.  It's like we are saying that Craftsmanship is better than Agile, but I don't feel like they are mutually exclusive ideas.

Eric

Micah Martin

unread,
Feb 10, 2009, 10:05:08 AM2/10/09
to software_cr...@googlegroups.com
Doug showed me the new left side a couple months ago and I love the idea.  It reveals an evolution in software development practices and philosophy.  For instance, I don't believe the Agile Manifesto could have been conceived had the authors not experienced waterfall and other historical processes.  Having worked with the Agile Manifesto for 8 years now, it's natural that we have learned from it and now see a next step.  

In my mind Software Craftsmanship is the nest evolutional step for software development.  We could not have gotten here without first experiencing Agile.  

So I agree that Software Craftsmanship and Agile are not mutually exclusive but that Software Craftsmanship builds on Agile.

Micah

Olof Bjarnason

unread,
Feb 10, 2009, 12:23:59 PM2/10/09
to software_cr...@googlegroups.com
2009/2/10 Doug Bradbury <do...@8thlight.com>:
>
> Hello community,
>
> At the summit that 8th Light hosted in December, we kicked around the
> idea of creating a charter or manifesto for software craftsmanship.
> Not everyone agreed that such a document was necessary or valuable. I
> like having my values written down and I have continued to think about
> such a document.
>
> I decided to frame the value in terms of how they are different from
> the values in the agile manifesto while not dismissing that manifesto
> altogether. I've come up with four things that we value more that we
> value the left side of the manifesto. Here it is:
>
> ******************************************************************
>
> As aspiring Software Craftsmen we are raising the bar of professional
> software development by practicing it and helping others learn the
> craft. Through this work we have come to value:
>
> well-crafted software over working software over comprehensive documentation

"well-crafted software over working software"?

To me that means "working software is good, but well-crafted software
is better".

This in turn means

"We can live with non-working-software, but not with uncrafted software".

.. which gives me a scent of BUFD -- which is a step backwards - in
the direction of waterfall methodology.
--
Min blogg:
http://olofb.wordpress.com
[My blog, in Swedish]

Paul Pagel

unread,
Feb 10, 2009, 12:43:31 PM2/10/09
to software_cr...@googlegroups.com
Olof,

I disagree. I think this is a natural progression. With the
manifesto, we are saying that we shouldn't spec out everything up
front in static documents before we write software (Because the
requirements will change with the software). Well, working software
is more important than a document, but what if the code is a pile of
junk? What if you can't maintain/change that software? Then it is
only slightly better than a document. Well crafted, "clean code " is
not just a suggestion, it is necessary to be able to change and
improve the applications. "Well crafted" to me doesn't imply that you
are doing the crafting before the code (BDUF), just that the design/
implementation of the software is such that any competent developer
can sit down and read/improve the code without pulling their hair out.

Paul

Doug Bradbury

unread,
Feb 10, 2009, 12:44:02 PM2/10/09
to software_cr...@googlegroups.com
I don't think it's possible for software to be well-crafted if it
doesn't work.

How about a furniture example? If one of the 4 legs of a chair was
shorter than the others and the chair rocked horribly when you sat in
it, would you call it well crafted? It could be beautifully finished
and polished, but it doesn't work right so it can't be well-crafted.

Something that is well crafted is both functional and beautiful.
Something that is beautiful but not functional I would call art but
not craft.

Saying the software is well crafted is saying that it works well and
is easy to read / understand / maintain.

Doug

On Feb 10, 2009, at 11:23 AM, Olof Bjarnason wrote:

Corey Haines

unread,
Feb 10, 2009, 2:03:05 PM2/10/09
to software_cr...@googlegroups.com
Doug,

I really like it. In my travels, I've been describing the craftsmanship movement as a post-agile enhancement, rather than a replacement. The Agile Manifesto presented us with a beginning set of principles to develop quality software, now we are at the point where we would like to establish a set of principles to develop quality software developers. I really like wrapping the manifesto inside ours as a tribute to where we all came from.

I'm also a bit uncomfortable with the term 'impressing,' but it is a great starting point.

Could we post this up on the google groups site, so we can point to it as a stand-alone document?

I would also like to suggest that we include the idea of directed, focused practice in there somehow. Through the last couple months, as I've been talking to a lot of people of people and thinking about things, I've come to be convinced that it is essential, as craftsman, that we give ourselves time to practice our techniques, not just on a project-by-project basis, but through specific katas and other forms of focused practice. Thoughts?

I did both a road thoughts video (http://programmingtour.blogspot.com/2009/02/road-thoughts-practice.html), as welll as a short blog post (http://programmingtour.blogspot.com/2009/02/getting-it-done-vs-doing-it-right.html)

Thanks for doing this.
-Corey
--
http://www.coreyhaines.com
The Internet's Premiere source of information about Corey Haines

Doug Bradbury

unread,
Feb 10, 2009, 2:15:29 PM2/10/09
to software_cr...@googlegroups.com

Mark Nijhof

unread,
Feb 10, 2009, 2:17:39 PM2/10/09
to software_cr...@googlegroups.com
"Exceeding expectations" comes to mind.

Robert Martin

unread,
Feb 10, 2009, 5:48:41 PM2/10/09
to software_cr...@googlegroups.com


well-crafted software
steadily adding value
a community of professionals
exceeding expectations


----
Robert C. Martin (Uncle Bob)  | email: uncl...@objectmentor.com
Object Mentor Inc.            | blog:  blog.objectmentor.com
The Agile Transition Experts  | web:   www.objectmentor.com
800-338-6716                  | twitter: unclebobmartin





Micah Martin

unread,
Feb 10, 2009, 6:18:06 PM2/10/09
to software_cr...@googlegroups.com

On Feb 10, 2009, at 11:23 AM, Olof Bjarnason wrote:
>
> "well-crafted software over working software"?
>
> To me that means "working software is good, but well-crafted software
> is better".
>
> This in turn means
>
> "We can live with non-working-software, but not with uncrafted
> software".

I don't know. When I buy well crafted furniture, I expect that it
looks good, is functional, and will retain both attributes for
generations. Whereas when I buy furniture from Ikea, I'd expect it to
work but I know it's not going to look great and I'll need to replace
it in a few years.

Micah

Denny Abraham

unread,
Feb 10, 2009, 7:07:00 PM2/10/09
to software_craftsmanship
I think we would be well-served rewording some of these statements to
imply extension rather than replacement; we value software that's well
crafted more than we value software that merely functions. It's too
easy to point to examples of things that are well-crafted, but fail
functionally, when the value statement can be interpreted as a
delineation of different things.

And I know that well-crafted furniture, for example, sounds like it
should always work. But what about furniture in an ice hotel or made
out of balsa. They are certainly well-crafted articles, but they are
not fit-for-purpose of reasonable use.

Colin Jones

unread,
Feb 10, 2009, 9:04:53 PM2/10/09
to software_cr...@googlegroups.com
It seems like some of the questions (on my part, at least) stem from
the difference in relationships between (Agile left and right) and
(New Left and right). I read the Agile version as presenting
contrasting goals which are not necessarily mutually exclusive, but
which are pointing in fundamentally different directions. The New
Left side, on the other hand, contrasts goals that point more or less
in the same direction, but the New Left Side goes further. Yes,
well-crafted software is most valuable, but, at least from my point of
view, it has working software completely enclosed as a subset (all
well-crafted software works; otherwise I would not call it
well-crafted). Similar relations hold for the other New Left Side
principles:
- in order to steadily add value, we must respond to change when the
business calls for it
- a community of craftspeople is always made up of individuals and interactions
- if we impress our customers, we invariably will have collaborated
closely with them

It may be that the Agile Left Side is intended to be a superset of its
corresponding Right Side as well; I've just always assumed that the
idea is that a choice may be made between the two sides at some point,
and in that case, Agile would choose Left and reject Right (for that
specific point, not generally discounting the right-side ideas, of
course).

I hate to nitpick, because these are exactly the principles I want my
software career to follow, but it seems to be a slightly confusing
point. Would there be as much power of meaning if a word like
"beyond" was used in place of "over" (to separate the New Left Side
from the Agile Left Side), or am I looking at this in a different way
than most?

- Colin

--
Colin Jones

Corey Haines

unread,
Feb 10, 2009, 11:23:20 PM2/10/09
to software_cr...@googlegroups.com
Colin et al,

Great points about emphasizing the extension, rather than the replacement. While the agile manifesto made sense with 'over,' I agree that craftsmanship, being an extension of the agile manifesto, would do better to use something like 'beyond.'

These are great conversations; I'm very much enjoying following them.

Thanks.
-Corey

Heinrich Breedt

unread,
Feb 11, 2009, 12:30:27 AM2/11/09
to software_cr...@googlegroups.com
Uncle Bob said:
"a community of professionals"

a community of craftsmen perhaps?

that have a "guild" that oversee and certify craftmanship. maybe through a program of apprenticeship.

Heinrich

Olof Bjarnason

unread,
Feb 11, 2009, 2:55:52 AM2/11/09
to software_cr...@googlegroups.com
2009/2/11 Heinrich Breedt <heinric...@gmail.com>:
> Uncle Bob said:
> "a community of professionals"
>
> a community of craftsmen perhaps?
>
> that have a "guild" that oversee and certify craftmanship. maybe through a
> program of apprenticeship.

+1

That would be a great thing to have - a certificate of being a
software craftsman. Badge? Logo? T-Shirt? Tea cup?

But it also is a bit of a "air castle". Who would decide? How would
decisions be made? We are talking international arena too - I'm in
Sweden, for example.

>
> Heinrich
>
> On Wed, Feb 11, 2009 at 8:48 AM, Robert Martin <uncl...@objectmentor.com>
> wrote:
>>
>>
>> well-crafted software
>> steadily adding value
>> a community of professionals
>> exceeding expectations
>> On Feb 10, 2009, at 13:15 , Doug Bradbury wrote:
>>
>>
>> http://groups.google.com/group/software_craftsmanship/web/the-new-left-side
>>
>> On Feb 10, 2009, at 1:03 PM, Corey Haines wrote:
>>
>> Could we post this up on the google groups site, so we can point to
>>
>> it as a stand-alone document?
>>
>>
>>
>>
>>
>>
>>
>> ----
>> Robert C. Martin (Uncle Bob) | email: uncl...@objectmentor.com
>> Object Mentor Inc. | blog: blog.objectmentor.com
>> The Agile Transition Experts | web: www.objectmentor.com
>> 800-338-6716 | twitter: unclebobmartin
>>
>>
>>
>>
>>
>>
>
>
> >
>



Doug Bradbury

unread,
Feb 11, 2009, 6:32:24 AM2/11/09
to software_cr...@googlegroups.com
I too have thought about this phrase. My only problem with it is that
all we have to do in order to exceed expectations is to set them low.
(Think John McCain in the presidential debates.)

Thoughts?
Doug

On Feb 10, 2009, at 4:48 PM, Robert Martin wrote:

> exceeding expectations

Corey Haines

unread,
Feb 11, 2009, 8:06:12 AM2/11/09
to software_cr...@googlegroups.com
I like the "community of craftsmen"

However, although it is a natural next step in the thought process, I think any talk of a 'guild' is very dangerous and should be warned against, especially from the perspective of overseeing and certifying craftsmanship. There be dragons there.

Certifications needs to wait until it has been mainstreamed and diluted. Once that happens, we can move move on to the new new left side. :)

-Corey

Enrique Comba Riepenhausen

unread,
Feb 11, 2009, 10:36:51 AM2/11/09
to software_cr...@googlegroups.com
2009/2/11 Corey Haines <corey...@gmail.com>:
> I like the "community of craftsmen"
>
> However, although it is a natural next step in the thought process, I think
> any talk of a 'guild' is very dangerous and should be warned against,
> especially from the perspective of overseeing and certifying craftsmanship.
> There be dragons there.
>
> Certifications needs to wait until it has been mainstreamed and diluted.
> Once that happens, we can move move on to the new new left side. :)

+1

I agree. I like the community of craftsmen too, but I don't dislike
the guild, although as you mention it Corey, with care.

I would not advertise the guild or any guild in the manifesto, as a
guild will only be a specific place where people specialize. For
example, the original Agile Manifesto does not talk about extreme
programming, or scrum, or feature driven development or pragmatism or
any other particular methodology that could be called agile.

The agile manifesto set the stage for methodologies to flourish from
there and I guess we should do the same in our case. We believe in
Craftsmanship and each one of us, although we share a lot of things,
has some peculiar thoughts and ideas about it; that's where a guild
might happen. But I would not put that into the manifesto.

Cheers,

Enrique Comba Riepenhausen
[@]: <eco...@gmail.com>
[w]: <http://www.nexwerk.com>

Corey Haines

unread,
Feb 11, 2009, 11:47:49 AM2/11/09
to software_cr...@googlegroups.com
Enrique,

I see what you are talking about when you refer to "Guild." The group of people of similar techniques (such as Scrum, XP, etc) is what I tend to refer to as a school. In my mind, a guild starts to head towards membership / certification / etc. based on other than just using the techniques. Semantics.

The idea of a group of people who use the same techniques when applying and practicing their craft is an important one. One of my favorite parts of the craftsman manifesto is the idea of lineage; I've been really making an effort to point out where I have learned certain skills, who my mentors have been for various parts of my techniques, etc. Having a school is important from that perspective.

-Corey

Dave Hoover

unread,
Feb 11, 2009, 12:04:16 PM2/11/09
to software_cr...@googlegroups.com
Major +1

Denny Abraham

unread,
Feb 11, 2009, 1:30:47 PM2/11/09
to software_cr...@googlegroups.com
I think I agree with Corey and Dave. it becomes more difficult to
adhere to a statement of belief when it codifies some sort of
certification hierarchy. Someone who wants to practice this sort of
craftsmanship has a less solid basis to exercise the title if they
haven't been approved by the guild. So the software developer in the
wilderness who has seen that he could do much more to own his craft is
in a lurch if he wants to declare it, but isn't able to connect to the
guild.

Corey makes a good point. The web of trust is inherently useful, but
only if assembles itself from people who are known to practice
craftsmanship, when the mark of software craftsman means something to
more than just those who hold it.

Denny

Markus Gaertner

unread,
Feb 11, 2009, 2:42:14 PM2/11/09
to software_cr...@googlegroups.com
Let me try to rephrase it while trying to incorporate some aspects I liked so far:

As aspiring Software Craftsman we are raising the bar of profressional software
development by practicing it and helping others to learn the craft. Through

this work we have come to value:

1) well-crafted software


over working software
over comprehensive documentation

2) steadily adding value


over responding to change
over following a plan

3) a community of craftsmen


over individuals and interactions
over processes and tools

4) exceeding expectations


over customer collaboration
over contract negotiation

That is, while we still value the items in the middle over the items on the
right, we value the items on the left even more.

Looking on the principles:
1) We believe well-crafted code is not a destination, it is a point of origin.
2) We follow a set of practices and disciplines that ensure quality and pride
in our work.
3) We decline when we would do any harm to our craft.
4) Through well-crafted software we enable ourselves to not only deliver a
useful system today, but additionally to be able to deliver value to
tomorrow's business.
5) We live and work in a community with other craftsmen.
6) We will help other craftsmen in their journey to mastery.
7) We can point to the people who influenced us and who we influenced on our
own journey.
8) We are proud of our professional work and the manner of it.
9) We take responsibility for the code we write.
10) We are proud of our portfolio of successful projects.
11) We are continuously improving our own skills and practices to exceed
previous successes.

I found Point 5 to be a bit difficult to note. What I would like to express, is
the Cooperative Game principle from Cockburn: A successful project has two
goals: deliver a system and prepare for the next round - this might be
adapting, extending or operating the system. Personally I also tend to add a
third item on the steadily adding value part. May be some combination of adding
value to the software as well as adding value to one personal skills, but this
would be the same as point 11.

Kind regards
Markus Gärtner

Robert Martin

unread,
Feb 11, 2009, 3:29:13 PM2/11/09
to software_cr...@googlegroups.com

On Feb 10, 2009, at 13:03 , Corey Haines wrote:

I've been describing the craftsmanship movement as a post-agile enhancement, rather than a replacement.

Post Agile Craftsmanship.  Hmmmm.  

David Chelimsky

unread,
Feb 11, 2009, 3:32:34 PM2/11/09
to software_cr...@googlegroups.com
On Wed, Feb 11, 2009 at 2:29 PM, Robert Martin
<uncl...@objectmentor.com> wrote:
>
> On Feb 10, 2009, at 13:03 , Corey Haines wrote:
>
> I've been describing the craftsmanship movement as a post-agile enhancement,
> rather than a replacement.
>
> Post Agile Craftsmanship. Hmmmm.

We can have the Chicago area PAC, an east coast PAC ... hmmmm

:)

David Chelimsky

unread,
Feb 11, 2009, 3:35:00 PM2/11/09
to software_cr...@googlegroups.com
> 3) a community of craftsmen
> over individuals and interactions
> over processes and tools

Pardon the late entry into the conversation.

I agree, in principle, that craftsmanship, as I believe we are trying
to define it, evolves from agile, but I don't see it as a linear
evolution. I find this mapping to be constraining, and I can easily
see it being poorly received by admirers of the manifesto as "we're
better than agile", which I don't think is the message. I can't tell
you what I think the message *is* just yet, but I don't think we want
to set off a pissing contest.

Second, even if we take for granted that the new left side is *it*, #3
presents another challenge for me. "Individuals and interactions," as
I see it, is about teams of people including *but not limited to*
developers. "a community of craftsmen" kinda leaves out the
non-technical stakeholders. Not that they can't be craftsmen in their
own right, but I don't think we're really talking about them when we
talk about "a community of craftsmen."

Thoughts?

Robert Martin

unread,
Feb 11, 2009, 3:44:16 PM2/11/09
to software_cr...@googlegroups.com
Impressing the Customer, Exceeding Expectations, etc.

This is in the thread of "Contracts" and "Collaboration".  Collaboration is better than Contracts.  What's better than Collaboration?  Partnership?  This clause is not about the quality of our software so much as it is about the quality of our collaboration.  We want to be professionals from the point of view of our collaboration skills.  Our customers should feel like we are in the boat with them; that we take their needs as seriously as they do; that they can trust us with their problems.  Business Partnership.  


Robert Martin

unread,
Feb 11, 2009, 3:46:52 PM2/11/09
to software_cr...@googlegroups.com
I do too, but it excludes the business people.  This is in the thread of process over people.  The people in question are not just software developers.  They are the whole team.  

Eric Meyer

unread,
Feb 11, 2009, 4:00:50 PM2/11/09
to software_cr...@googlegroups.com
I personally am not comfortable saying that Craftsmanship is better than Agile, and I don't think that's the intent of this group.  However, I still fail to see a compelling argument saying we should even be comparing ourselves to Agile.  The idea of craftsmanship has been around a lot longer than Agile, so to me it's not really an evolution from Agile.  Even at the summit I remember a discussion about how a master craftsman would have his or her own set of tools/practices that he would follow, but not necessarily a specific set that would be the same across all craftsmen in the field.  To me, the idea of being a craftsman is most simply described as taking pride in my work and caring for the job I do.  There is no mention of the practices involved.

Also, this is another comment regarding "well-crafted software over working software".  I also read it the same as Olof.  My immediate thought was, "doesn't software have to be working to be considered well-crafted?"  The way it's phrased makes it seem like we don't care if it works, but only about the craft involved in making it.  I do agree that well crafted software would have to be working, but the manner this is presented obscures that.  Another question regarding this is what qualifies as working software?  Because I would argue that most working software is going to be well crafted.  Here's my reasoning: If a piece of software is not easily changeable and the customer needs it to change, is it still "working" software?  I would say no, because it no longers works for the what the customer wants.  If the customer needs to be making changes to the software, then the code must be easily maintainable/changable.

Eric

Cory Foy

unread,
Feb 11, 2009, 4:12:13 PM2/11/09
to software_cr...@googlegroups.com
I've been doing some research in Disciplines in software development. The key premise being that there are core disciplines which cross-cut methodologies, but which should be able to be held up across any professional developer.

I agree with Corey that it is good to remember the foundational roots. In fact, that's one of the moral values I've seen discussed across martial arts.

To me, that's the focus of craftsmen. I don't think master wood workers have a manifesto against Walmart. My Dad was a master stained-glass worker, and all they had to do was hold up the quality of the work.

Furthermore, as craftsmen we are saying that indeed there are cheaper, lower quality and potentially faster ways of working.

So, are we building a community to enhance our craft, or taking a stand against poor quality? One may not exclude the other, but I would like to have a clear idea of what we're working towards.

Cory

(from mobile)


From: Eric Meyer
Date: Wed, 11 Feb 2009 15:00:50 -0600
To: <software_cr...@googlegroups.com>
Subject: Re: The New Left Side

Mark Nijhof

unread,
Feb 11, 2009, 4:18:19 PM2/11/09
to software_cr...@googlegroups.com
I am a guy that stands for his believes (Post Agile Craftsmanship), I
am PACMAN, Sorry couldn't resist.

Heinrich Breedt

unread,
Feb 11, 2009, 5:06:25 PM2/11/09
to software_cr...@googlegroups.com
I agree about "there be dragons". I think the idea I want to bring across is: To become a craftsman, you cant just rely on study/uni/etc. Mentoring by an existing master is essential. How that happens I am not sure. For me it had to happen via mailing lists and blogs. I am hoping that might be a more clear way to attain craftmanship.

Heinrich

Robert Martin

unread,
Feb 11, 2009, 5:20:28 PM2/11/09
to software_cr...@googlegroups.com

On Feb 11, 2009, at 15:00 , Eric Meyer wrote:

I personally am not comfortable saying that Craftsmanship is better than Agile

Several folks have expressed this opinion.  At first I nodded in agreement.  Then I thought: "If it's not better, why are we bothering?"  Honestly, don't we think that raising the craftsmanship bar is a better way to do agile, just like agile was a better way to manage software projects?

Mark Nijhof

unread,
Feb 11, 2009, 5:35:06 PM2/11/09
to software_cr...@googlegroups.com
As I see it Craftsmanship and Agile are not the same. Agile is a set
of very important practices where Craftsmanship is more becoming a
master (crafted) at certain things. So Craftsmanship is more about
doing instead of knowing.

-Mark

David Chelimsky

unread,
Feb 11, 2009, 5:37:28 PM2/11/09
to software_cr...@googlegroups.com
On Wed, Feb 11, 2009 at 4:20 PM, Robert Martin
<uncl...@objectmentor.com> wrote:
>
> On Feb 11, 2009, at 15:00 , Eric Meyer wrote:
>
> I personally am not comfortable saying that Craftsmanship is better than
> Agile
>
> Several folks have expressed this opinion. At first I nodded in agreement.
> Then I thought: "If it's not better, why are we bothering?" Honestly,
> don't we think that raising the craftsmanship bar is a better way to do
> agile, just like agile was a better way to manage software projects?

As pointed out earlier this thread, the people and interactions part
is about a wider group than the developers. I'd say that's true of
agile in general. There are agile practices that are specific to
developers, and from those we can build on to become craftsmen, but
agile is *about* a wider team, while I believe that craftsmanship is
only about the developer.

I think building on agile developer practices, both expanding and
refining them, is worthwhile.

In terms of why we bother, perhaps its to put a stake in the ground
and say "TDD does not mean using eclipse to generate a test stub for
every method on every class." A refinement of what it means to be an
agile developer.

WDYT?

Robert Martin

unread,
Feb 11, 2009, 5:47:17 PM2/11/09
to software_cr...@googlegroups.com, software_cr...@googlegroups.com
Being better does not mean being more inclusive. This could be a
better way for _developers_ to be agile.

Sent from my iPhone

On Feb 11, 2009, at 4:37 PM, David Chelimsky <dchel...@gmail.com>
wrote:

>

Eric Meyer

unread,
Feb 11, 2009, 5:53:55 PM2/11/09
to software_cr...@googlegroups.com
It seems that Agile is the how and Craftsmanship is the what or who we are.  They are two different things.  If Agile is one of the tools you feel you need to be a better craftsman, then that's fine.  But it's also possible to be a craftsman without practicing Agile.  IMO it's comparing apples to oranges. (Sorry for the cliche, but I couldn't think of a better way to put it.)

Eric

On Wed, Feb 11, 2009 at 4:20 PM, Robert Martin <uncl...@objectmentor.com> wrote:

Heinrich Breedt

unread,
Feb 11, 2009, 5:57:34 PM2/11/09
to software_cr...@googlegroups.com
I agree, I think of "the new left side" as a refinement of developer practises.

Heinrich

Corey Haines

unread,
Feb 11, 2009, 8:02:50 PM2/11/09
to software_cr...@googlegroups.com
I think it is important to differentiate between post-agile and "better than agile."

Agile was a great encapsulation of some values that are important to building quality software. The act of focusing on the process you use to build software also improves you as a person. However, it wasn't the end. It has been around a long time, and those of us who have been practicing the techniques learned in our respective school (mine is XP) have gained a tremendous amount of benefit, both as developers and as people.

As I look forward, I realize that it is time for me to start focusing on how to be a better developer, not just develop better software. The craftsmanship movement, for me, is the logical next step. I don't think that it is better, but it is definitely a next step for me.

So, is it better than Agile? No. However, in my view, it is a logical step forward, a Post-Agile step.

Can you be a craftsman without practicing techniques for an Agile school? I guess. Can you be a part of my school of craftsmanship? Probably not. That doesn't make you not a craftsman, perhaps, but it definitely makes you not a part of my school of craftsmanship.

-Corey

Micah Martin

unread,
Feb 11, 2009, 9:36:04 PM2/11/09
to software_cr...@googlegroups.com
Camaraderie?

It think fits the bill and it starts with a 'C' to boot!

Micah Martin

unread,
Feb 11, 2009, 9:54:06 PM2/11/09
to software_cr...@googlegroups.com
On Feb 11, 2009, at 4:53 PM, Eric Meyer wrote:
> But it's also possible to be a craftsman without practicing Agile.

Let's test this statement. It is saying you may be a craftsman if you:

- use tools and process rather than interact with individuals
- prefer comprehensive documentation over working software
- hold to a contract rather than collaborate with the customer
- follow the plan rather than respond to change

I can't imagine calling such a person a craftsman, in any craft.

Micah

Scott Pfister

unread,
Feb 11, 2009, 10:34:20 PM2/11/09
to software_craftsmanship
As David said, apologies on the late entry to this fascinating thread.
On the other hand, being able to sit and read through all the messages
in one sitting really helped me clarify my understanding -- and
perspective -- on some of these topics.

On craftsmanship being "better than" agile...

Cory Foy mentioned that "there are core disciplines which cross-cut
methodologies," that I sense truly captures what many of us feel about
this thing we call Craftsmanship. Software craftsmanship addresses our
need to excel at writing code and being developers, *part* of which is
developing software, but only part. It's also why we develop software
beyond the fact that a customer asked for it. It's also how we
interact with other developers and how we grow in our craft and guide
today's Apprentices to become tomorrow's Masters.

The Agile Manifesto is about delivering software to meet a customer's
need, and while it does address how we build software, it doesn't
really talk that much about how we grow as developers. It's also about
how a team can become flexible and be "more than the sum of its
parts", but says nothing about how we do what we do as individuals.

In other words, Agile is about delivering value. It was a necessary
precursor because it *enables* craftsmanship. Software Craftsmanship
is about being a good developer. That's why Software Craftsmanship is
post-agile but isn't really "better than" agile IMHO. They're really
not about the same thing at all.

On "a community of craftsman" and The (dreaded) Guild...

Unlike many of the folks I've encountered in this group, I'm not an
independent contractor or a consultant at all -- I work for a company
whose business is not technology, but whose very existence and success
is owed to technology. Initially, I quite liked the idea of a guild --
I wanted some standards and "certification" that would help me
separate the wheat from the chaff. Help me (e.g. my company) hire true
craftsmen, and not get suckered by the candidate who knew how to "fake
it". While I understood that politics and elitism inevitably creeps
into these things, I saw it as a tradeoff that I was willing to make.

Then I saw the phrase "web of trust" used by Denny Abraham, and I
finally Got It. That's our "guild". It has no walls; it has no
membership, nor figurehead or requirements. If you want a Craftsman,
ask another Craftsman for their recommendation. If you want to be sure
someone knows the true meaning of Craftsmanship, see who else will
vouch for them. Let's face it -- in this day of LinkedIn/Plaxo/
Facebook, it shouldn't be hard to verify the substance to someone's
speech. At most, perhaps we need to be somewhat more proactive in
recommending each other, even if it's more of a "yes, Joe is a true
craftsman" rather than "Joe's the best *** you could possibly hire".
Or maybe we need the Software Craftsmanship version of http://workingwithrails.com.

I don't know for sure exactly what would work best, practically
speaking. But I now know that I'm already a part of "the guild", and
I'm pretty sure the rest of you do too.

--Scott

On Feb 11, 7:02 pm, Corey Haines <coreyhai...@gmail.com> wrote:
> I think it is important to differentiate between post-agile and "better than
> agile."
>
> Agile was a great encapsulation of some values that are important to
> building quality software. The act of focusing on the process you use to
> build software also improves you as a person. However, it wasn't the end. It
> has been around a long time, and those of us who have been practicing the
> techniques learned in our respective school (mine is XP) have gained a
> tremendous amount of benefit, both as developers and as people.
>
> As I look forward, I realize that it is time for me to start focusing on how
> to be a better developer, not just develop better software. The
> craftsmanship movement, for me, is the logical next step. I don't think that
> it is better, but it is definitely a next step for me.
>
> So, is it better than Agile? No. However, in my view, it is a logical step
> forward, a Post-Agile step.
>
> Can you be a craftsman without practicing techniques for an Agile school? I
> guess. Can you be a part of my school of craftsmanship? Probably not. That
> doesn't make you not a craftsman, perhaps, but it definitely makes you not a
> part of my school of craftsmanship.
>
> -Corey
>
> On Wed, Feb 11, 2009 at 5:57 PM, Heinrich Breedt
> <heinrichbre...@gmail.com>wrote:
>
>
>
> > I agree, I think of "the new left side" as a refinement of developer
> > practises.
>
> > Heinrich
>
> >> > Robert C. Martin (Uncle Bob)  | email: uncle...@objectmentor.com
> >> > Object Mentor Inc.            | blog:  blog.objectmentor.com
> >> > The Agile Transition Experts  | web:  www.objectmentor.com
> >> > 800-338-6716                  | twitter: unclebobmartin
>
> --http://www.coreyhaines.com

Micah Martin

unread,
Feb 12, 2009, 9:30:36 AM2/12/09
to software_cr...@googlegroups.com
On Feb 11, 2009, at 9:34 PM, Scott Pfister wrote:
> Then I saw the phrase "web of trust" used by Denny Abraham, and I
> finally Got It. That's our "guild". It has no walls; it has no
> membership, nor figurehead or requirements. If you want a Craftsman,
> ask another Craftsman for their recommendation. If you want to be sure
> someone knows the true meaning of Craftsmanship, see who else will
> vouch for them. Let's face it -- in this day of LinkedIn/Plaxo/
> Facebook, it shouldn't be hard to verify the substance to someone's
> speech. At most, perhaps we need to be somewhat more proactive in
> recommending each other, even if it's more of a "yes, Joe is a true
> craftsman" rather than "Joe's the best *** you could possibly hire".
> Or maybe we need the Software Craftsmanship version of http://workingwithrails.com
> .

Yes. This has been on my mind for quite a while. It was topic I
considered discussing at the Software Craftsmanship Summit.

What's needed is a community where craftsmen vouch for other
craftsmen. A certification will not tell you that someone is a
craftsman. But if recognized master craftsmen vouch for a particular
developer, you can be quite confident that she is a craftsmen.

The dynamics become interesting. For instance, vouching for someone
as a craftsman is not small matter. By vouching for Joe, you are
putting your reputation at stake that Joe is really a craftsmen. If
it turns out that Joe is a hacker, your vouch looses significance and
your reputation is tarnished.

Anyhow, a social networking web site seems like the best medium for
such a community. I have many ideas for how such a site should work.

Micah

Israel Antezana

unread,
Feb 12, 2009, 9:35:02 AM2/12/09
to software_cr...@googlegroups.com
There is a common phrase: "Tell me who you walk with and I will tell you who you are."

Kevin Taylor

unread,
Feb 12, 2009, 9:43:51 AM2/12/09
to software_cr...@googlegroups.com
+1 David.

I would like to believe Agile Software Development and Software Craftsmanship are different bubbles and the developer practices are the intersection:

http://skitch.com/kevintaylor/brqb9/agileandcraftsmanship


--
Kevin P. Taylor
312.380.6672

//obtiva - Agility Applied. Software Delivered.

http://obtiva.com

Scott Seely

unread,
Feb 12, 2009, 11:45:03 AM2/12/09
to software_cr...@googlegroups.com
Question: don't LinkedIn recommendations + connections help on ascertain a
lot of this? In other words, do we already have the site?

> -----Original Message-----
> From: software_cr...@googlegroups.com
> [mailto:software_cr...@googlegroups.com] On Behalf Of Micah
> Martin
> Sent: Thursday, February 12, 2009 8:31 AM
> To: software_cr...@googlegroups.com
> Subject: Re: The New Left Side
>
>

Robert Martin

unread,
Feb 12, 2009, 12:02:17 PM2/12/09
to software_cr...@googlegroups.com
I really like this idea.  SoftwareCrasftsmenGuild.org  People put their resumes out if they are looking for work, and you can follow the chain of trust back to those who vouched for them.  The legal pitfalls abound, but I think the idea is a very good one.


On Feb 12, 2009, at 8:30 , Micah Martin wrote:

Anyhow, a social networking web site seems like the best medium for  
such a community.  I have many ideas for how such a site should work.



----
Robert C. Martin (Uncle Bob)  | email: uncl...@objectmentor.com

Lance Walton

unread,
Feb 12, 2009, 1:30:41 PM2/12/09
to software_cr...@googlegroups.com
I'm replying in general to this thread, even though I've used Corey's email to reply to :-)

What I find odd about a lot of this thread is that a huge amount of the discussion about XP on the mother Wiki in 1998 / 1999 was about the craft of software development (and I learnt a huge amount from that). I think it's sad that much of that seems to have been lost in the last decade as mass adoption of 'Agile' means that it has been reduced to TDD, pair programming, often badly done standups and a weekly meeting which people call 'iteration planning', with code, as the essential artifact of software development, frequently being of poor quality.

In essence, what people seem to be getting at in this thread seems to me to be pre-Agile rather than post-Agile.

Regards,

Mark Nijhof

unread,
Feb 12, 2009, 1:32:35 PM2/12/09
to software_cr...@googlegroups.com
PreAgileBuzz

Enrique Comba Riepenhausen

unread,
Feb 12, 2009, 3:11:25 PM2/12/09
to software_cr...@googlegroups.com
Hey Corey,

2009/2/11 Corey Haines <corey...@gmail.com>:
> Enrique,
> I see what you are talking about when you refer to "Guild." The group of
> people of similar techniques (such as Scrum, XP, etc) is what I tend to
> refer to as a school. In my mind, a guild starts to head towards membership
> / certification / etc. based on other than just using the techniques.
> Semantics.

I agree. It might be an idea to call it Software Craftsman Workshop.
In the past craftsmen shared living and working in the same area. They
had their workshops where apprentices and journeyman would work during
the day hours and then retire to the living area to rest.

It might be an idea to promote the term workshop instead of guild as
it really evokes a certification group entity that decides upon the
suitability of a craftsman.

As many people mentioned in this thread already I believe it is good
that we leave this to word of mouth propaganda and what we think about
each other (actually, replying to uncle Bob here, I am thinking of
writing that little rails app and put it somewhere on NexWerk for
craftsmen around the world to rate each other... ;) ).

> The idea of a group of people who use the same techniques when applying and
> practicing their craft is an important one. One of my favorite parts of the
> craftsman manifesto is the idea of lineage; I've been really making an
> effort to point out where I have learned certain skills, who my mentors have
> been for various parts of my techniques, etc. Having a school is important
> from that perspective.

Yes, definitely, having a school, or having been in a workshop (or
many as a journeyman) is a very important thing which will help you to
one day maybe create your own approach/school/workshop to the craft.

The important thing here, IMHO, is that we don't try to
institutionalize it as it will backfire and kill the craft in
craftsman... This is where I did not like to see suddenly all this
SCRUM certifications to pop up in the world.

Enrique Comba Riepenhausen
[@]: <eco...@gmail.com>
[w]: <http://www.nexwerk.com>

> -Corey
>
> On Wed, Feb 11, 2009 at 10:36 AM, Enrique Comba Riepenhausen
> <eco...@gmail.com> wrote:
>>
>> 2009/2/11 Corey Haines <corey...@gmail.com>:
>> > I like the "community of craftsmen"
>> >
>> > However, although it is a natural next step in the thought process, I
>> > think
>> > any talk of a 'guild' is very dangerous and should be warned against,
>> > especially from the perspective of overseeing and certifying
>> > craftsmanship.
>> > There be dragons there.
>> >
>> > Certifications needs to wait until it has been mainstreamed and diluted.
>> > Once that happens, we can move move on to the new new left side. :)
>>
>> +1
>>
>> I agree. I like the community of craftsmen too, but I don't dislike
>> the guild, although as you mention it Corey, with care.
>>
>> I would not advertise the guild or any guild in the manifesto, as a
>> guild will only be a specific place where people specialize. For
>> example, the original Agile Manifesto does not talk about extreme
>> programming, or scrum, or feature driven development or pragmatism or
>> any other particular methodology that could be called agile.
>>
>> The agile manifesto set the stage for methodologies to flourish from
>> there and I guess we should do the same in our case. We believe in
>> Craftsmanship and each one of us, although we share a lot of things,
>> has some peculiar thoughts and ideas about it; that's where a guild
>> might happen. But I would not put that into the manifesto.
>>
>> Cheers,
>>
>> Enrique Comba Riepenhausen
>> [@]: <eco...@gmail.com>
>> [w]: <http://www.nexwerk.com>
>>
>> >
>> > -Corey
>> >
>> > On Wed, Feb 11, 2009 at 12:30 AM, Heinrich Breedt
>> > <heinric...@gmail.com>
>> > wrote:
>> >>
>> >> Uncle Bob said:
>> >> "a community of professionals"
>> >>
>> >> a community of craftsmen perhaps?
>> >>
>> >> that have a "guild" that oversee and certify craftmanship. maybe
>> >> through a
>> >> program of apprenticeship.
>> >>
>> >> Heinrich
>> >>
>> >> On Wed, Feb 11, 2009 at 8:48 AM, Robert Martin
>> >> <uncl...@objectmentor.com>
>> >> wrote:
>> >>>
>> >>>
>> >>> well-crafted software
>> >>> steadily adding value
>> >>> a community of professionals
>> >>> exceeding expectations
>> >>> On Feb 10, 2009, at 13:15 , Doug Bradbury wrote:
>> >>>
>> >>>
>> >>>
>> >>> http://groups.google.com/group/software_craftsmanship/web/the-new-left-side
>> >>>
>> >>> On Feb 10, 2009, at 1:03 PM, Corey Haines wrote:
>> >>>
>> >>> Could we post this up on the google groups site, so we can point to
>> >>>
>> >>> it as a stand-alone document?
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>
>> >>>

Eric Meyer

unread,
Feb 12, 2009, 3:23:18 PM2/12/09
to software_cr...@googlegroups.com
Isn't it a bit premature to be talking about some sort of guild/workshop for software craftsmen before we have even agreed upon a definition?  The intent that I took from the summit was to be able to explain to someone what I meant when I told them that I was a software craftsman.  We seem to be straying from that.

Eric

Eric Meyer

unread,
Feb 12, 2009, 3:28:23 PM2/12/09
to software_cr...@googlegroups.com
What I meant by my original statement was that even thought a craftsman may have a certain set of tools, it's not the tools that make him a craftsman.  Agile is just another tool.  The idea of being a craftsman far predates Agile.

Eric

Heinrich Breedt

unread,
Feb 12, 2009, 3:58:47 PM2/12/09
to software_cr...@googlegroups.com
The one part that is also important is how we cater for the apprentice/journeyman. How do we establish a culture where the masters take on apprentices/journeymen so that they are able to create this chain of trust.

So the question is: Are you a master of you dont take on apprentices/journeymen?

Heinrich

Lance Walton

unread,
Feb 12, 2009, 4:18:38 PM2/12/09
to software_cr...@googlegroups.com
Sorry. I can't tell if you're disagreeing with me or just making a
WikiLink joke :-)

Regards,

Lance

Enrique Comba Riepenhausen

unread,
Feb 13, 2009, 4:05:34 AM2/13/09
to software_cr...@googlegroups.com
Hi Eric,

I am not sure if it is premature or not. But I have the feeling that
most of us in this list are already craftsmen that are trying to share
with other craftsmen their thoughts and ideas, and by doing so define
the commonalities or shared vision in a manifesto of sorts.

I think that writing a manifesto for software craftsmanship is a very
important task, although I am worried about the wording of it, as I
think, at this moment, that it leads to misunderstanding. I have not
posted any ideas or alternatives to consider as I am still thinking
about some sentences that would make sense (at least to me) without
leading to misunderstandings (like well crafted software over working
software; this one would lead more then one customer to think that we
only care about the looks of the software but not if it really works;
which I think should be avoided as we don't mean that).

The idea of having workshops/guilds or schools is still equally
important to me as I think that it is an essential part to any
craftsman (as stated in the first draft of the manifesto) that we are
part of a community of craftsmen and that community has to be built
and fleshed out too!

Cheers,

Enrique

2009/2/12 Eric Meyer <meyer....@gmail.com>:
--

Falkayn

unread,
Feb 13, 2009, 4:25:23 AM2/13/09
to software_craftsmanship
I'm not sure this needs to be overriding the Agile Manifesto's
values ... but I do have a strong opinion about the "impressing our
customer" phrasing. How about "serving our customer" instead? After
all a true craftsman is someone who understands that they are
producing value for someone. I also wonder whether there isn't some
value in the context-driven testing school's attitudes (see James Bach
et al).

On Feb 11, 12:38 am, Doug Bradbury <d...@8thlight.com> wrote:
> Hello community,
>
> At the summit that 8th Light hosted in December, we kicked around the  
> idea of creating a charter or manifesto for software craftsmanship.  
> Not everyone agreed that such a document was necessary or valuable.  I  
> like having my values written down and I have continued to think about  
> such a document.
>
> I decided to frame the value in terms of how they are different from  
> the values in the  agile manifesto while not dismissing that manifesto  
> altogether.  I've come up with four things that we value more that we  
> value the left side of the manifesto.  Here it is:
>
> ******************************************************************
>
> As aspiring Software Craftsmen we are raising the bar of professional  
> software development by practicing it and helping others learn the  
> craft.  Through this work we have come to value:
>
> well-crafted software                   over working software                   over comprehensive  
> documentation
> steadily adding value                   over responding to change               over following a  
> plan
> a community of craftspeople     over individuals and interactions       over  
> processes and tools
> impressing our customer         over customer collaboration             over contract  
> negotiation
>
> That is, while we still value the items in the middle over the items on
> the right, we value the items on the left even more.
>
> ********************************************************************
>
> I have also divided the value statement we wrote at the summit into  
> these four categories and called them 'principles.'
>
> well-crafted software
> ... We believe the code is also an end, not just a means.
> ... We follow a set of practices and disciplines that ensure quality  
> in our work
>
> steady value
> ... We say no to prevent doing harm to our craft
>
> community
> ... we live and work in a community with other craftsmen
> ... we will help other craftsmen in their journey
> ... We can point to the people who influenced us and who we influenced
>
> impressing
> ... We are proud of our work and the manner of our work
> ... We take responsibility for the code we write
> ... We are proud of our portfolio of successful projects
>
> **************************************************************************
>
> So I'm posting to the list, not because I think we can reach any  
> consensus on the tricky medium of email, but because I'd like to see  
> these values tested a bit... pushed and prodded in the hopes of making  
> them stronger.
>
> For example, I'm not thrilled with the phrase "impressing our  
> customer," but I haven't been able to some up with something that  
> captures how we create solutions that are better than our customers  
> could have imagined.  How we take responsibility for innovation, our  
> code and our practices.
>
> Have at it.,
>
> Doug Bradbury

Ilja Preuß

unread,
Feb 13, 2009, 5:16:45 AM2/13/09
to software_cr...@googlegroups.com
I think that taking a nap after lunch is a better way to do Agile. I
don't think that taking a nap is better than doing Agile.

Perhaps Craftsmanship and Agile Software Development are just complementary?

Cheers, Ilja

2009/2/11 Robert Martin <uncl...@objectmentor.com>:

Torbjörn Gyllebring

unread,
Feb 13, 2009, 5:54:19 AM2/13/09
to software_cr...@googlegroups.com
How about "serving our customers"?

That doesn't imply giving them everything they _want_ but does mean
giving them what they _need_.

sai

unread,
Feb 13, 2009, 8:24:21 AM2/13/09
to software_craftsmanship
How about Neo Agile Craftsmanship?? Sounds more evil :)

Regards,
Sai

http://code.google.com/p/chrome-watir

On Feb 1o2, 1:29 am, Robert Martin <uncle...@objectmentor.com> wrote:
> On Feb 10, 2009, at 13:03 , Corey Haines wrote:
>
> > I've been describing the craftsmanship movement as a post-agile  
> > enhancement, rather than a replacement.
>
> Post Agile Craftsmanship.  Hmmmm.
>
> ----
> Robert C. Martin (Uncle Bob)  | email: uncle...@objectmentor.com

Dave Hoover

unread,
Feb 13, 2009, 11:05:23 AM2/13/09
to software_cr...@googlegroups.com
I fell behind on this thread.  Trying to catch up...

I think saying "Craftsmanship is better than Agile" is a false dichotomy.  I believe Micah said that he sees craftsmanship as the next step for agile.  I agree.  It's not that craftsmanship is better than agile, it's just that for many of us it builds on top of agile.  That said, I don't think non-agile implies non-craftsman, I believe these are orthogonal concepts.  My answer to Uncle Bob's question below is: I think "raising the craftsmanship bar" is a better way to develop software, just like agile is a better way to develop software.  Both of these (complimentary) value systems help us develop software and grow healthy software development ecosystems.

Best,
--Dave


On Wed, Feb 11, 2009 at 4:20 PM, Robert Martin <uncl...@objectmentor.com> wrote:

On Feb 11, 2009, at 15:00 , Eric Meyer wrote:

I personally am not comfortable saying that Craftsmanship is better than Agile

Several folks have expressed this opinion.  At first I nodded in agreement.  Then I thought: "If it's not better, why are we bothering?"  Honestly, don't we think that raising the craftsmanship bar is a better way to do agile, just like agile was a better way to manage software projects?


----
Robert C. Martin (Uncle Bob)  | email: uncl...@objectmentor.com

Markus Gaertner

unread,
Feb 13, 2009, 1:45:40 PM2/13/09
to software_cr...@googlegroups.com
Some software testing zealots realized some years ago, that it would be
reasonable to come up with schools of software testing - just as there are
schools of psychology. Bret Pettichord has a very good presentation on this:
http://www.io.com/~wazmo/papers/four_schools.pdf

Personally I would like to relate that kind of thinking to Craftsmanship and
Agile. There are items, where leaders from the Software Craftsmanship school of
software development disagree with people from the Agile school, just as there
are other reasons for the people from the waterfall school. This would motivate
the point, that Agile and Craftsmanship are just some different school of
thought, but they can be applied both to some context, i.e. a project at hand.
From my point of view it is reasonable to combine two different schools of
thought together, if they complement each other.

Kind regards.
Markus Gärtner

Derek Greer

unread,
Feb 13, 2009, 8:05:23 PM2/13/09
to software_craftsmanship
Greetings all. I just joined the group and wanted to add my comments
to what others have said concerning the wording of "well-crafted
software over working software". Upon reading this, the wording did
seem to suggest to me that the quality of the work is more important
than the utility of the work, though I did gather what the intent
behind the statement was.

Additionally, I don't think that "well-crafted" necessarily implies
"working", as I see quality as being a different measurement than
completeness. Perhaps something can't be well-crafted and be buggy,
but something can be well-crafted and only 75% complete.

The attempt to juxtapose a new list of values alongside the agile
manifesto seems to be causing some friction. Trying to add a third
column to the existing manifesto seems to be at the root of both
people's objections to how these statements are worded as well as the
whole conversation over whether craftsmanship is pre-/post-/same/or
better than agile. I do like the format the agile manifesto was
written in, so perhaps a better approach would be to come up with a
new two-column list. Just some thoughts to consider.


Derek

Brian Marick

unread,
Feb 14, 2009, 12:37:07 PM2/14/09
to software_cr...@googlegroups.com

On Feb 11, 2009, at 3:00 PM, Eric Meyer wrote:

> To me, the idea of being a craftsman is most simply described as
> taking pride in my work and caring for the job I do.

That, plus the notion of "lineage" (or "heritage") would cover it for
me. I prefer "lineage" or "heritage" to "school" because it shifts the
emphasis to people and to building on history. I also hope it
suppresses a problem "schools" have, which is that people *love* to
pigeonhole other people, to assign them to a school, even if (perhaps
especially if) those other people don't care to be pigeonholed.

I think if we concentrated more on heritage, we'd get more
introductions like this:

Although this is a book about RubyCocoa, I've snuck in
bits and pieces of a philosophy and pragmatics of
application design. It's a style I've learned from
people like Kent Beck, Ward Cunningham, Carl Erickson,
Michael Feathers, Martin Fowler, Richard P. Gabriel,
Andy Hunt, Ron Jeffries, Ralph Johnson, Joshua
Kerievsky, Yukihiro Matsumoto, Richard Stallman, Guy
Steele, Pragmatic Dave Thomas, and others. Without them,
this book would have been a lot less interesting to
write and---I hope---read.

-----
Brian Marick, independent consultant
Mostly on agile methods with a testing slant
www.exampler.com, www.exampler.com/blog, www.twitter.com/marick

Brian Marick

unread,
Feb 14, 2009, 12:39:11 PM2/14/09
to software_cr...@googlegroups.com
On Feb 12, 2009, at 8:30 AM, Micah Martin wrote:

> What's needed is a community where craftsmen vouch for other
> craftsmen. A certification will not tell you that someone is a
> craftsman. But if recognized master craftsmen vouch for a particular
> developer, you can be quite confident that she is a craftsmen.


Laurent Bossavit and I started such a site a year or so back: http://wevouchfor.org/
Laurent was the brains behind it.

Adam Williams

unread,
Feb 14, 2009, 2:36:45 PM2/14/09
to software_cr...@googlegroups.com
On Feb 14, 2009, at 12:39 PM, Brian Marick wrote:

>
> On Feb 12, 2009, at 8:30 AM, Micah Martin wrote:
>
>> What's needed is a community where craftsmen vouch for other
>> craftsmen. A certification will not tell you that someone is a
>> craftsman. But if recognized master craftsmen vouch for a particular
>> developer, you can be quite confident that she is a craftsmen.
>
>
> Laurent Bossavit and I started such a site a year or so back: http://wevouchfor.org/
> Laurent was the brains behind it.

Something like http://workingwithrails.com/ could have been.

I've enjoyed reading all these messages, folks. You're very thoughtful
and innovative people. I can vouch for Brian Marick, at least!

--
Adam Williams
http://github.com/aiwilliams

Doug Bradbury

unread,
Feb 17, 2009, 8:30:42 AM2/17/09
to software_cr...@googlegroups.com
Thank you to everyone for the great discussion in this thread!

I've made some edits to the document to incorporate some of the
feedback on the list.
http://groups.google.com/group/software_craftsmanship/web/the-new-left-side

Community of Craftspeople -> Community of Professionals
I believe that this correctly includes non-developer professionals.

impressing our customer -> Business Partnerships
The more I though about this, the more I liked it. Partnership
obviously builds on top of collaboration.

I also added four definitions to clarify the relationship between the
new left side on the old left side. Here they are

- Well crafted software works well, but also the code is easy to
read, understand and modify.
- We respond to changing requirements, but also keep the project
from spinning in circles.
- Individuals and interactions form a community of professionals
whose reputations are interdependent.
- We not only collaborate with our customers, but also partner with
them; they feel as though we are in the boat with them; we take their
needs as seriously as they do; they trust us with their problems.

Robert Martin

unread,
Feb 17, 2009, 4:36:26 PM2/17/09
to software_cr...@googlegroups.com
Productive partnerships.
Synergistic partnerships.
Catalyzing partnership.


----
Robert C. Martin (Uncle Bob)  | email: uncl...@objectmentor.com

Torbjörn Gyllebring

unread,
Feb 18, 2009, 2:43:30 AM2/18/09
to software_cr...@googlegroups.com
Symbiotic partnerships.

Enrique Comba Riepenhausen

unread,
Feb 18, 2009, 3:45:24 AM2/18/09
to software_cr...@googlegroups.com
I like that one! Sounds very biological, although by looking it up in
the dictionary (at least in the one on my machine) it makes perfect
sense:

symbiosis |ˌsimbēˈōsis; -bī-|
noun ( pl. -ses | -ˌsēz|) Biology
interaction between two different organisms living in close physical
association, typically to the advantage of both. Compare with
antibiosis .
• a mutually beneficial relationship between different people or
groups : a perfect mother and daughter symbiosis.

:)


2009/2/18 Torbjörn Gyllebring <torbjorn....@gmail.com>:

David Dossot

unread,
Feb 18, 2009, 9:37:24 AM2/18/09
to software_craftsmanship
The Roots of Agile?

On Feb 12, 10:32 am, Mark Nijhof <mark.nij...@gmail.com> wrote:
> PreAgileBuzz

Eric Smith

unread,
Feb 18, 2009, 10:22:06 AM2/18/09
to software_cr...@googlegroups.com
I like Productive partnerships personally.  Straight and to the point without any hint of being a buzzword.

Klaus Hebsgaard

unread,
Feb 18, 2009, 3:42:37 PM2/18/09
to software_cr...@googlegroups.com
Why not:

1) well-crafted software
               AND working software
                       over comprehensive documentation
2) steadily adding value
               AND responding to change
                       over following a plan
3) a community of craftsmen
               AND individuals and interactions
                       over processes and tools
4) exceeding expectations
               AND customer collaboration
                       over contract negotiation
Med Venlig hilsen

Klaus Hebsgaard

Website: http://www.hebsgaard.dk
Blog: http://www.khebbie.dk


On Wed, Feb 11, 2009 at 8:42 PM, Markus Gaertner <mgae...@googlemail.com> wrote:

Let me try to rephrase it while trying to incorporate some aspects I liked so far:

As aspiring Software Craftsman we are raising the bar of profressional software
development by practicing it and helping others to learn the craft. Through

this work we have come to value:

1) well-crafted software
               over working software
                       over comprehensive documentation
2) steadily adding value

               over responding to change
                       over following a plan
3) a community of craftsmen

               over individuals and interactions
                       over processes and tools
4) exceeding expectations

               over customer collaboration
                       over contract negotiation

That is, while we still value the items in the middle over the items on the
right, we value the items on the left even more.

Looking on the principles:
 1) We believe well-crafted code is not a destination, it is a point of origin.
 2) We follow a set of practices and disciplines that ensure quality and pride
   in our work.
 3) We decline when we would do any harm to our craft.
 4) Through well-crafted software we enable ourselves to not only deliver a
    useful system today, but additionally to be able to deliver value to
    tomorrow's business.
 5) We live and work in a community with other craftsmen.
 6) We will help other craftsmen in their journey to mastery.
 7) We can point to the people who influenced us and who we influenced on our
    own journey.
 8) We are proud of our professional work and the manner of it.
 9) We take responsibility for the code we write.
10) We are proud of our portfolio of successful projects.
11) We are continuously improving our own skills and practices to exceed
    previous successes.

I found Point 5 to be a bit difficult to note. What I would like to express, is
the Cooperative Game principle from Cockburn: A successful project has two
goals: deliver a system and prepare for the next round - this might be
adapting, extending or operating the system. Personally I also tend to add a
third item on the steadily adding value part. May be some combination of adding
value to the software as well as adding value to one personal skills, but this
would be the same as point 11.

Kind regards
Markus Gärtner



Klaus Hebsgaard

unread,
Feb 18, 2009, 3:45:08 PM2/18/09
to software_cr...@googlegroups.com
1) well-crafted
               AND working software
                       over comprehensive documentation
2) steadily adding value
               AND responding to change
                       over following a plan
3) a community of craftsmen
               ie. individuals and interactions
                       over processes and tools
4) exceeding expectations
               through customer collaboration

                       over contract negotiation
Med Venlig hilsen

Klaus Hebsgaard

Website: http://www.hebsgaard.dk
Blog: http://www.khebbie.dk


Olof Bjarnason

unread,
Feb 18, 2009, 3:48:44 PM2/18/09
to software_cr...@googlegroups.com
Klaus+

That seems more well-balanced to me.

But I'm not sure Agile and Craftsmanship are trying to solve the same
problem? Doesn't Agile talk more about the "big picture" of software
development, while Craftsmanship are more developer-centric?

2009/2/18 Klaus Hebsgaard <khe...@gmail.com>:
--
Min blogg:
http://olofb.wordpress.com
[My blog, in Swedish]

Dave Hoover

unread,
Feb 18, 2009, 4:08:43 PM2/18/09
to software_cr...@googlegroups.com
I don't think Software Craftsmanship is developer-centric. Or if it
is, than it's no more developer-centric than people considered Extreme
Programming developer-centric. Software Craftsmanship has lots to say
about how to structure teams, projects, and client collaboration.
More at http://www.mcbreen.ab.ca/SoftwareCraftsmanship/.

Best,
--Dave

Kevin Taylor

unread,
Feb 18, 2009, 5:02:07 PM2/18/09
to software_cr...@googlegroups.com
I would argue that agile is not a necessary condition for craftsmanship. <ducking> There is definitely an area of intersection where they are addressing similar concerns (and that area may be much larger than I initially considered).

To prove that agile is not a necessary condition of agile, we should consider whether craftsmanship ever exists independently of agile? I think we would all agree that, of course, it does.

If it is agreed that agile is not a necessary condition for craftsmanship, then the definition of craftsmanship does not seem logically to dependent on the definition of agile. Hence, it needs a definition independent of the agile manifesto, IMO.

--
Kevin P. Taylor
312.380.6672

//obtiva - Agility Applied. Software Delivered.

http://obtiva.com

Ben Rady

unread,
Feb 18, 2009, 5:21:00 PM2/18/09
to software_cr...@googlegroups.com
I think the idea of software craftsmanship existed independenly of agile...a decade or so ago. But then again, if you're still building software the way you did 10 years ago, you are not a craftsman. 

Raoul Duke

unread,
Feb 18, 2009, 5:25:43 PM2/18/09
to software_cr...@googlegroups.com
> But then again, if you're still building software the way
> you did 10 years ago, you are not a craftsman.

http://www.praxis-his.com/sparkada/

not particularly agile, as i expect most people think of it?

Micah Martin

unread,
Feb 18, 2009, 5:48:55 PM2/18/09
to software_cr...@googlegroups.com
I don't disagree with you Kevin.  But have you considered this...  Agile is not dependent on waterfall is it?  Yet the Agile Manifesto is essentially comparing Agile to waterfall, isn't it?

Micah 

Eric Meyer

unread,
Feb 18, 2009, 6:20:42 PM2/18/09
to software_cr...@googlegroups.com
Well, didn't Agile grow as a reaction to waterfall?  At the very least, they are both related to each other and are both about a development process.  Since Agile was a change to the waterfall process, it makes sense to define it in terms of those changes.  Craftsmanip isn't replacing Agile.

Eric

Mark Nijhof

unread,
Feb 18, 2009, 6:26:00 PM2/18/09
to software_cr...@googlegroups.com
Wouldn't you say that Agile is about methodology more or less the
'How' while craftsmanship is more about doing the thing you do 'very'
good. So I would say that craftsmanship is more or less defining the
quality of the person not so much whether or not he is Agile. Also I
am sure that these things will very often go hand in hand.

-Mark

Derek Greer

unread,
Feb 18, 2009, 8:40:43 PM2/18/09
to software_cr...@googlegroups.com

I would agree to some extent, but I think of craftsmanship in any area as being the pursuit of quality in the production process, whereas I think of various agile practices as being the techniques one uses in this pursuit.

 

Derek

Scott Pfister

unread,
Feb 19, 2009, 2:00:37 AM2/19/09
to software_craftsmanship
While Agile can exist apart from Waterfall, it came into existence as
a response to Waterfall, and presented itself as an alternative to
Waterfall. Thus, "...while there is value in the items on the right,
we value the items on the left more."

Remembering that...
...we're defining Craftsmanship, not craftsmanship,
...we're not positioning Craftsmanship as an alternative to Agile, but
...(I think) we are saying that Craftsmanship is an enhancement to, or
improvement upon, Agile as we see it.

There shouldn't be anything wrong with that. It's not blindly
judgemental, nor is it saying Agile isn't good anymore, or there's
something "better than" Agile that we want to push as an alternative.
It's simply that there's more to building software than merely being
Agile, and -- as it was said earlier -- if we didn't think it was
better, then why do we bother?

--Scott
> > On Wed, Feb 18, 2009 at 2:45 PM, Klaus Hebsgaard <kheb...@gmail.com>wrote:
>
> >> 1) well-crafted
> >>                 AND working software
> >>                        over comprehensive documentation
> >> 2) steadily adding value
> >>                 AND responding to change
> >>                        over following a plan
> >> 3) a community of craftsmen
> >>                 ie. individuals and interactions
> >>                        over processes and tools
> >> 4) exceeding expectations
> >>                through customer collaboration
> >>                        over contract negotiation
> >> Med Venlig hilsen
>
> >> Klaus Hebsgaard
>
> >> Website:http://www.hebsgaard.dk
> >> Blog:http://www.khebbie.dk
>

Kevin Taylor

unread,
Feb 19, 2009, 11:11:26 AM2/19/09
to software_cr...@googlegroups.com
Hi Micah,


Agile is not dependent on waterfall is it?

I think agile addresses the same sphere of concern as waterfall and so the agile manifesto is a legitimate comparison.

I don't think craftsmanship (again IMO) addresses the same sphere of concern as waterfall. If that is the case, it cannot also adress the same sphere of concern as agile.


--
Kevin P. Taylor
312.380.6672

//obtiva - Agility Applied. Software Delivered.

http://obtiva.com


On Wed, Feb 18, 2009 at 4:48 PM, Micah Martin <mi...@8thlight.com> wrote:

Kevin Taylor

unread,
Feb 19, 2009, 11:21:13 AM2/19/09
to software_cr...@googlegroups.com
Sorry, Micah, sent that last post before I was done.

I do think there is plenty of overlap between agile and craftsmanship and they are very symbiotic, as one person described it. But (C)raftsmanship has a lot to offer in areas where agile is not concerned and vice versa. See:

http://skitch.com/kevintaylor/brqb9/agileandcraftsmanship

Other than that dissonance that I am feeling, I think the New Left Side is an eloquent idea.


--
Kevin P. Taylor
312.380.6672

//obtiva - Agility Applied. Software Delivered.

http://obtiva.com


Paul Pagel

unread,
Feb 19, 2009, 11:48:15 AM2/19/09
to software_cr...@googlegroups.com
Kevin,

I agree the relationship between agile and craftsmanship is complimentary and they overlap, but for a different reason.

Watching the Uncle Bob talk at alt.net shed some light on this subject for me.  He said that eXtreme programming was what we are now calling software craftsmanship (my words, watch the video posted below for the non-out-of-context-explanation from UB).  Software craftsmanship seems to be an extension/progression of the original XP values.

Where as agile contains many of those principles, but builds onto it with good ideas (project management/ teams/etc.).  If you follow this argument then, we are not moving away from or beyond agile, but agile built upon XP/craftsmanship the whole time.  We are evolving what craftsmanship itself means, moving beyond XP.

Uncle Bob laid out his argument at Chicago alt.net group recorded here:  

Paul

Olof Bjarnason

unread,
Feb 19, 2009, 12:28:39 PM2/19/09
to software_cr...@googlegroups.com
2009/2/19 Paul Pagel <pa...@8thlight.com>:
> Kevin,
> I agree the relationship between agile and craftsmanship is complimentary
> and they overlap, but for a different reason.
> Watching the Uncle Bob talk at alt.net shed some light on this subject for
> me. He said that eXtreme programming was what we are now calling software
> craftsmanship (my words, watch the video posted below for the
> non-out-of-context-explanation from UB). Software craftsmanship seems to be
> an extension/progression of the original XP values.
> Where as agile contains many of those principles, but builds onto it with
> good ideas (project management/ teams/etc.). If you follow this argument
> then, we are not moving away from or beyond agile, but agile built upon
> XP/craftsmanship the whole time. We are evolving what craftsmanship itself
> means, moving beyond XP.

On the topic of looking at software craftsmanship as a prequel to XP -
one big selling point for me in that is getting away from the name
"Extreme Programming".

That name is lousy! IMHO it feels immature and ridiculus. Like some
teenager made it up.

If you ever tried to tell any engineering/maths friend about "extreme
programming" you know what I mean. They mostly think it is some kind
of joke or maybe a "real life show" from Silicon Valley, with some hip
skaters which also code or something like that.

Kerry Buckley

unread,
Feb 19, 2009, 12:49:30 PM2/19/09
to software_cr...@googlegroups.com
On 19 Feb 2009, at 17:28, Olof Bjarnason wrote:
>
> On the topic of looking at software craftsmanship as a prequel to XP -
> one big selling point for me in that is getting away from the name
> "Extreme Programming".
>
> That name is lousy! IMHO it feels immature and ridiculus. Like some
> teenager made it up.
>
> If you ever tried to tell any engineering/maths friend about "extreme
> programming" you know what I mean. They mostly think it is some kind
> of joke or maybe a "real life show" from Silicon Valley, with some hip
> skaters which also code or something like that.

I'm fairly sure that was deliberate, to prevent it being picked up by
management types and turned into a meaningless buzzword (as "agile"
has in many places).

Kerry

Dave Hoover

unread,
Feb 19, 2009, 2:10:31 PM2/19/09
to software_cr...@googlegroups.com
On Thu, Feb 19, 2009 at 10:48 AM, Paul Pagel <pa...@8thlight.com> wrote:
> Watching the Uncle Bob talk at alt.net shed some light on this subject for
> me. He said that eXtreme programming was what we are now calling software
> craftsmanship (my words, watch the video posted below for the
> non-out-of-context-explanation from UB).

Bob said, "I think Craftsmanship is the name that Extreme Programming
should have had all along."

Then Bob said, "The stuff [of XP] that got stripped away as Scrum made
its way into the business community was the essence of writing code
well. It was this notion of Craftsmanship."

My only issue with these statements is that Software Craftsmanship is
more than writing code well. Writing code well is necessary to be a
Software Craftsman, but not sufficient.

> Software craftsmanship seems to be
> an extension/progression of the original XP values.
> Where as agile contains many of those principles, but builds onto it with
> good ideas (project management/ teams/etc.). If you follow this argument
> then, we are not moving away from or beyond agile, but agile built upon
> XP/craftsmanship the whole time. We are evolving what craftsmanship itself
> means, moving beyond XP.

I do not believe that Software Craftsmanship is an extension of the
original XP values, so I don't follow that argument. I agree that we
have been evolving what Software Craftsmanship itself means (by tying
it into XP and Agile) and this concerns me.

Software Craftsmanship (the book) was written in 2001. It references
the then newly formed Agile Alliance:

"The Agile Alliance offers a strong alternative to the traditional
software engineering way of doing software development. By rejecting
the process-driven approach, the Agile Methodologies focus attention
on the individuals in the software development team and the quality of
their interactions with their customers and users. In doing so, they
provide a good fit with software craftsmanship and another voice
warning about the hazards of the software engineering approach."

The book also references eXtreme Programming (remember when we
capitalized it like that?):

"eXtreme Programming works by paying attention to the craft of
software development, to what developers and customers do on a
minute-by-minute basis. Although initially this approach was seen as
controversial, a key factor in the acceptance of eXtreme Programming
by developers is that it fits the way that humans like to work. More
than anything else, it supports software development as a social
process. It takes what has been seen as a purely intellectual
challenge and transforms it into a conversation. Rather than reading
documents, developers talk to the users and one another, and they pair
up for producing all production code. eXtreme Programming is
interesting because it has practices in place for ensuring that the
people on the project work together as a team. By forcing developers
to communicate about the system they are building, eXtreme Programming
is re-creating a craft studio where everyone learns from each other."

That last sentence is enlightening to me. What I take away from these
connections from the book is that 1) both Agile and Software
Craftsmanship distinguish themselves from the Software Engineering
tradition, and 2) by following the XP practices you will eventually
find yourself with something resembling a "craft studio".

A lot of the wisdom represented by the XP practices is based on
recognizing that most software development is a craft, so it's not
surprising to me that both Software Craftsmanship and XP often end up
with overlapping ideals and practices. Yet that doesn't mean that
either of them built on each other. Furthermore, Software
Craftsmanship has many tenets that XP does not pay attention to (and
vice-versa). To take some examples from the book:

* Craftsmanship is the opposite of licensing
* Craftsmen sign their work
* Craftsmen prefer non-proprietary, open source tools
* Customers have long-term relationships with Craftsmen
* Master Craftsmen are responsible for passing on the craft
* Apprenticeship is more effective than training

Rather than trying to situate Software Craftsmanship in the context of
Agile or XP, I would prefer us to mine this book for it's core
concepts and discuss our experiences in trying to apply them.

Best,

Dave Hoover
//obtiva: Agility applied. Software delivered.

Dave Hoover

unread,
Feb 19, 2009, 2:14:22 PM2/19/09
to software_cr...@googlegroups.com
On Thu, Feb 19, 2009 at 10:48 AM, Paul Pagel <pa...@8thlight.com> wrote:
> Watching the Uncle Bob talk at alt.net shed some light on this subject for
> me. He said that eXtreme programming was what we are now calling software
> craftsmanship (my words, watch the video posted below for the
> non-out-of-context-explanation from UB).

Bob said, "I think Craftsmanship is the name that Extreme Programming


should have had all along."

Then Bob said, "The stuff [of XP] that got stripped away as Scrum made
its way into the business community was the essence of writing code
well. It was this notion of Craftsmanship."

My only issue with these statements is that Software Craftsmanship is
more than writing code well. Writing code well is necessary to be a
Software Craftsman, but not sufficient.

> Software craftsmanship seems to be


> an extension/progression of the original XP values.
> Where as agile contains many of those principles, but builds onto it with
> good ideas (project management/ teams/etc.). If you follow this argument
> then, we are not moving away from or beyond agile, but agile built upon
> XP/craftsmanship the whole time. We are evolving what craftsmanship itself
> means, moving beyond XP.

I do not believe that Software Craftsmanship is an extension of the

Torbjörn Gyllebring

unread,
Feb 20, 2009, 1:56:37 AM2/20/09
to software_cr...@googlegroups.com

So in order to look cool to our cross disciplinary friends we should
rebrand XP to something that doesn't summarize it succintly?
I don't don't personally own the XP book but if memory serves me right
the rationale for calling it extreme is put forth at the very
begining, in effect saying "we call this extreme programming, it is
taking practices that have proven their worth and turning the dail to
11" it's fitting and if the biggest roadblock we have is the name
something is odd. People can't even learn to capitalize Scrum properly
and keep refering to it as SCRUM as if it's some sort of acronym, also
the secondary non-rugby meaning of Scrum is:
"2. British. a place or situation of confusion and racket; hubbub."

None of theese issues seems to inhibit Scrum adaption.

Corey Haines

unread,
Feb 20, 2009, 10:47:23 AM2/20/09
to software_craftsmanship
(some thoughts while on the train between Jacksonville and Orlando. Offline GMail rocks!)

+1 for Scott's email. I would like to repeat the essence of what he said:

"We are not defining craftsmanship, we are defining Craftsmanship"

Since we are just at the beginning, and this mailing list really is about defining fundamental concepts, I'd like to put down what Software Craftsmanship means to me. This isn't an attempt to provide a global explanation for everyone, since, not only do I question whether that is possible, I am not really interested in trying.

My simplistic explanation to people about how I interpret Craftsmanship is that Agile was about building better software, Craftsmanship is about building between software developers. Over-simplification a bit, but a great soundbite, and people seem to get a basic understanding of what I mean.

I've met and worked with people who want, and perhaps deserve, the characterization of 'craftsman.' However, I would not include them in the same school of Craftsmanship that I am in. It isn't an insult to them, it isn't saying that I'm better, it is just saying that I hold certain things to be self-evident and necessary for people like me. This is what I call a 'school:' a set of implementations for an idea. Just like XP is a 'school' of Agile, so is the 'school' of Craftsmanship that I could see forming around the common ideas I hear from some people. I haven't heard a name, so I'm going to just refer to it as my school (of SC). My school is an outgrowth from Agile, specifically XP and its associated techniques.

Here's an example: Belonging to the school means that you practice TDD of some sort (BDD, etc). You don't? That's okay, but you are, at best, an apprentice in the school, working hard to gain the experience necessary to be able to say that you are a TDD practitioner. What does it mean to be an experienced TDD practitioner? I'm sure that could be debated, but I feel the following two thing should be true: your default position, when things need to get done, is to write a test/spec first. If that isn't the case, then you cannot say that you have TDD as one of your fundamental development technique. Period. Does this mean that you have 100% test coverage, or that every single line of your code was written with a failling test? No. However, those lines of code should be few and far between, as a result of serious thought as to why you can't. Your default response to 'this is hard to test' should be 'hmmm... where's the flaw in my design' not dropping back to writing code without a test.

Can you be a craftsman without TDD? Sure, I guess. Just like you can be agile without doing XP. However, you aren't a member of the particular school of Software Craftsmanship that I'm a member of. Are there other schools that you can be a member of? I'm sure there are/will be. That's not really the point.

-Corey
--
http://www.coreyhaines.com
The Internet's Premiere source of information about Corey Haines

Kevin Taylor

unread,
Feb 20, 2009, 11:59:06 AM2/20/09
to software_cr...@googlegroups.com
Hi Paul,

Thanks for pointing me to that video. As always, good stuff from UB. I can especially relate to his portrayal of Scrum as a train wreck through corporate America (paraphrased). :-)

I personally identify myself very closely with the original XP values and practices. Frankly, the trend toward Agile in the Large, Scrum certification, etc has led to a downplaying, maybe even disregarding, of the technical skills that are the bedrock of Agile and are a necessary condition for teams to plan and develop iteratively. Without the technical foundation, iterative planning and development fail because the code base is not malleable. (See James Shore, http://jamesshore.com/Blog/The-Decline-and-Fall-of-Agile.html)

So, yes, I agree Craftsmanship as much more closely related to XP than it is to the larger, generic Agile. If that is the case, it seems we should be riffing off of XP and not the agile manifesto.

It seems we should reclaim XP's technical roots and weave in the other Craftsmanship and Apprenticeship concepts written about by Pete McBreen, Bob Martin, Dave Hoover, that take Software Craftsmanship beyond the original XP. And, which provide a clearly distinct offshoot of Agile for those who are NOT interested in going further down the Agile in the Large road.


--
Kevin P. Taylor
312.380.6672

//obtiva - Agility Applied. Software Delivered.

http://obtiva.com


On Thu, Feb 19, 2009 at 10:48 AM, Paul Pagel <pa...@8thlight.com> wrote:

Robert Martin

unread,
Feb 21, 2009, 12:01:10 PM2/21/09
to software_cr...@googlegroups.com

Jason Gorman

unread,
Feb 21, 2009, 2:34:14 PM2/21/09
to software_craftsmanship
Interestingly, my first freelance job involved secretly appraising a
traffic management systems that had been developed bespoke for a
logistics company to allow them to generate accurate invoices for
their major client. This was a VB/Access application (they were all
the rage in 1997) that had been put together in 8 weeks for a fixed
pricfe of £80,000 by a code shop that usually specialised in Delphi
and Oracle apps, but who learned VB and Access specially for this job.

They had made a total pig's ear of it - some of the nastiest code I've
ever seen. I drove up in the freezing Nov/Dec cold to Wrexham in North
Wales, checked into a hotel and spent about a month working in a
portacabin on their client's premises going through this code module
by module and use case by use case, assessing its reliability,
complexity, "testedness", readability, modularity and so on. (There
were no automated tools for analysing VB code like this at the time,
alas). Like a structural engineer, I methodically went through it
constructing a detailed report based on the design and quality
principles I had learned and that I believed were pretty solid and
widely accepted in the industry.

The report concluded that it was a steaming pile of horse manure in
pretty much every single respect - which was added further weight by
the fact that their end client had secretly built their own system to
reconcile those huge multmillion pound invoices (wel, you would,
wouldn't you?) The first 3 months' invoices were more than £1 million
out each time. The application also froze regularly - usually because
of database locking conflicts. There were just two users.

So, armed with my encyclopedic knowledge of all those wonderful
"industry standards" and "best practices", I wrote a fairly damming
report, and my client decided on the basis of that to withhold payment
to the developers and started working on a case for damages.

The developers begged to differ. And, as it turned out, so did the
"software industry". When it came to possible legal proceedings and
the prospect of standing up in court and making any claims about what
is good software and what is bad software (or even what is bettrer
software or worse software) we suddenly found that we were standing
alone. Nobody would go on record to back up the report's findings.
And, lujckily for my indemnity insurance premiums, nobody would go on
record to challange the report either.

The fact is, if I'm asked to give a professional assessment of someone
else's work today - let's say, for example, that they have written
lots of "long methods" - I suspect if push came to shove I'd still be
standing alone.

You have to have enough of a consensus, and enough people willing to
risk thier own positions to back that consensus, in order to have a
profession in the sense that I think we're alluding to here.

Right now we don't seem to have an industry-wide consensus on anything
of any import!

Jason Gorman
http://www.parlezuml.com



On Feb 21, 5:01 pm, Robert Martin <uncle...@objectmentor.com> wrote:
> Keith Braithwaite ponders:http://peripateticaxiom.blogspot.com/2009/02/consulting-engineers.html
>
> ----
> Robert C. Martin (Uncle Bob)  | email: uncle...@objectmentor.com

Mark Nijhof

unread,
Feb 21, 2009, 4:18:37 PM2/21/09
to software_cr...@googlegroups.com
I think only our clients can get us to truly change our behavior.
There are of course some good guys, but overall it will take the
business to demand from us that we deliver quality. I blogged about it
a little bit: http://blog.fohjin.com/blog/2009/2/21/Craftsmanship

-Mark

jmbeas

unread,
Feb 22, 2009, 10:47:54 AM2/22/09
to software_craftsmanship
Sorry, Mr Martin, just being pedantic but the site you mention I think
is http://www.potomaccraftsmenguild.org/, is it?

I also liked to ask you which legal pitfalls are those you mention.
I'm interested because I may introduce this idea in Spain, where IMO
there's an important lack of software craftsmen (in the sense we use
in this forum).

Best regards,
Jose Manuel Beas

http://www.agile-spain.com
http://jmbeas.blogspot.com


On Feb 12, 6:02 pm, Robert Martin <uncle...@objectmentor.com> wrote:
> I really like this idea.  SoftwareCrasftsmenGuild.org  People put  
> their resumes out if they are looking for work, and you can follow the  
> chain of trust back to those who vouched for them.  The legal pitfalls  
> abound, but I think the idea is a very good one.
>
> On Feb 12, 2009, at 8:30 , Micah Martin wrote:
>
> > Anyhow, a social networking web site seems like the best medium for
> > such a community.  I have many ideas for how such a site should work.

Kevin Taylor

unread,
Feb 22, 2009, 11:22:48 AM2/22/09
to software_cr...@googlegroups.com
Brian Marick (I believe) deployed a site along similar lines in the last year or two. IIRC there are no resumes but it basically allows developers to recommend each other based on personal observation of skills--in effect building virtual street cred or reputation.

Anyone remember the site URL?

I had lunch with Dave Hoover, Paul Pagel, and Corey Haines Saturday and the topic of how to identify and recognize master craftmen in our industry came up. Traditionally it would have been via reputation based on works they had delivered (masterpieces) and journeymen/apprentices coming out of their studios.

Today, there isn't yet an effective way to raise the visibility of masters outside of them taking on writing or speaking or potentially open source--something some masters may not be interested in pursuing. Something along the lines of what you suggest or what Brian deployed might be a start.


--
Kevin P. Taylor
312.380.6672

//obtiva - Agility Applied. Software Delivered.

http://obtiva.com


On Thu, Feb 12, 2009 at 11:02 AM, Robert Martin <uncl...@objectmentor.com> wrote:
I really like this idea.  SoftwareCrasftsmenGuild.org  People put their resumes out if they are looking for work, and you can follow the chain of trust back to those who vouched for them.  The legal pitfalls abound, but I think the idea is a very good one.

On Feb 12, 2009, at 8:30 , Micah Martin wrote:

Anyhow, a social networking web site seems like the best medium for  
such a community.  I have many ideas for how such a site should work.



----
Robert C. Martin (Uncle Bob)  | email: uncl...@objectmentor.com

Denny Abraham

unread,
Feb 22, 2009, 2:41:20 PM2/22/09
to software_cr...@googlegroups.com
I believe it is wevouchfor.org. I think Brian Marick linked it in this
discussion group a short time ago.
Reply all
Reply to author
Forward
0 new messages