Next Steps for Boutiques/Craft Shops

2 views
Skip to first unread message

mheusser

unread,
Sep 15, 2009, 11:07:32 AM9/15/09
to software_craftsmanship
I've been thinking about the craft movement lately. We've got the
first couple of books coming out, and programs like 8th Light, Obtiva
and 8th Light are becoming more well-known/codified.

What's next?

Well, one thing I see is that, for the most part, craft shops roll
their own. That is to say, they take on apprentices who become
journeymen who then stay at the company for years. From what I have
seen, this /tends/ to lead to a little bit of groupthink about
process, practices, "how we do it here", etc.

I'm not saying it's the end of the world, but there might be
opportunity to see more innovation if we the craft movement saw more
diversity.

Here's a question: What if newly-minted Journeymen were expected to go
on a journey? Oh, no, not Corey Haines-style (though I admire that),
but, instead, a journeyman exchange program.

That is to say that the career path is like: Graduate College, intern/
apprentice at company X for a year, expect to relocate and work at a
company in a different state, where you might spend your entire
career.

Or, you might create a referencable master work and then go start your
own shop.

We have a pattern for this in craft shops in Europe in the
Renaissance, and it is still done today with medical doctors. We call
it "residency."

Thoughts?


--heusser
blog: xndev.blogspot.com



Michael Norton

unread,
Sep 15, 2009, 12:21:16 PM9/15/09
to software_cr...@googlegroups.com
+1

I really admire what Corey is doing, but acknowledge it is not feasible for all. Residency is a fantastic idea.

Michael "Doc" Norton
http://docondev.blogspot.com/

Eric Schaefer

unread,
Sep 15, 2009, 12:48:25 PM9/15/09
to software_cr...@googlegroups.com
2009/9/15 mheusser <matt.h...@gmail.com>:

> We have a pattern for this in craft shops in Europe in the
> Renaissance, and it is still done today with medical doctors. We call
> it "residency."

Some carpenters in Germany still go on the journey.They wear their
traditional dress and are supposed to stay away from home for a
certain time to learn from other masters.
But they are few. It is not common anymore because it is not a
requirement. Prospective craftsmen need to learn from their master and
his journeymen for 2-4 years and they attend a school where they learn
the theory during that time. After that they are required to take a
comprehensive exam and need to prepare a journeyman's piece. Only
after all these steps they become certified journeymen. The
certification is issued by the chamber of industry and commerce. You
won't get a job as a craftsmen of any kind (carpenter, car mechanic,
electrician, whatever) if you do not have that journeyman status. This
model works very well.

I don't think you can transfer this model to the software craft
globally. You can only create islands of excellence because most
companies will not agree with the model. Most companies do not even
agree with the software craftsmanship values. The majority of
developers does not agree with this values. Anything more than "good
enough" is too expensive, too time consuming.

I am an optimist at heart but I feel pessimistic about this. You would
need to convince the whole industry and the educational systems of
most countries. Not in our lifetime.

Eric

Paul Pagel

unread,
Sep 15, 2009, 4:24:55 PM9/15/09
to software_cr...@googlegroups.com
Matt et al,

You could not have read my mind better. I have been thinking about
how to solve this problem for awhile. 8th Light does have what we
call a 'craftsman swap,' which is where an 8th Light developer goes to
another dev shop for a week in exchange for one of their developers.
I think it is only a first step. One week gives you a great
introduction to how another shop works and a new set of skills to
learn. The problem is it is such a brief introduction that it would
be hard to get into the nitty gritty details, which is very important
in learning when you are a craftsman.

Ideally, some of the boutique / craft shops would get together and
build a team of craftsmen from different companies. That would enable
people who were connected by a concerned about quality and a deep
passion for writing software. Also, it would let different craftsmen
pick up the skills from other shops and teach others their skills.
Corey Haines has done so much to open my eyes to how important the
'journey' part of journeyman actually is. A great way to continue to
learn is to be on a team of people who know different things and have
a different style. He has done it on his own dime and with individual
motivation. He is the model journeyman. I would like to figure out
how that experience can be done within a company which is delivering
software.

I understand that may not be possible, so the idea of residence is
also something I like. At 8th Light we have an open door policy. If
you are a craftsman who wants to come and work with us, we welcome
you. Corey and Nuno are examples of craftsmen who have taken that
journey to 8th Light. It is not exactly a residency yet, but I think
we are moving in the right direction.

I think it is only by learning many styles while you journey that you
can find the style that is your own. Besides, it is really fun to
pair with new people who have a totally different style. Diversity is
a great disinfectant, it forces me to defend my practices and
tendencies, which forces me to rethink their worth.


Paul
blog.8thlight.com

Derek Kastner

unread,
Sep 15, 2009, 7:51:53 PM9/15/09
to software_cr...@googlegroups.com
> I don't think you can transfer this model to the software craft
> globally. You can only create islands of excellence because most
> companies will not agree with the model. Most companies do not even
> agree with the software craftsmanship values. The majority of
> developers does not agree with this values. Anything more than "good
> enough" is too expensive, too time consuming.

Agreed. I would say that in somewhere like the US, a journeyman
programmer's journeyman's piece would vary among communities just as a
Master's thesis/exam varies between universities. At some
Universities (at least from my knowledge of my wife's experience with
Music Ed. programs) you can get your Master's just by taking a
comprehensive exam. In other places you have to conduct research.
The research may even be required to be strictly quantitative or
qualitative. So then it is up to the school system or university who
is recruiting the candidate to know what was involved in obtaining
their thesis and how the value of that work satisfies their
requirements.

In the software world, some journeymen might write a CRM and call it
good, while others are required to write their own language. It's up
to your firm to decide what's important, especially depending on the
type of day to day work you do.

-Derek Kastner

Dave Hoover

unread,
Sep 15, 2009, 10:50:39 PM9/15/09
to software_cr...@googlegroups.com
> Corey Haines has done so much to open my eyes to how important the
> 'journey' part of journeyman actually is.  A great way to continue to
> learn is to be on a team of people who know different things and have
> a different style.  He has done it on his own dime and with individual
> motivation.  He is the model journeyman.  I would like to figure out
> how that experience can be done within a company which is delivering
> software.

Corey has inspired and connected a ton of people. The evidence is
right here: http://pledgie.com/campaigns/5917 The community rallied
around him and handed him a much deserved $5000.

The one thing that's currently missing from Corey's "journey-ing"
experience is a delivered project. Corey and I talked briefly about
this and he expressed his desire to work on a project. I agree this
is important. I wouldn't call someone a model journeyman if they are
not periodically taking on a project and putting their reputation on
the line within the constraints of time, money, and quality. I'm
excited for when Corey takes on that challenge.

Enrique Comba Riepenhausen

unread,
Sep 16, 2009, 7:04:44 AM9/16/09
to software_cr...@googlegroups.com
Hey Dave!

> Corey has inspired and connected a ton of people. The evidence is
> right here: http://pledgie.com/campaigns/5917 The community rallied
> around him and handed him a much deserved $5000.

That, and much more, IMHO. Corey, with his journeys is making an
invaluable effort in two fronts.

He is improving his skills, absorbing the knowledge of other people
and sharing his insights wherever he wanders. And creating tight bonds
with the people he codes with.

He also promotes out community sharing with people our values and
believes.

Without Corey's word things would move slower in the "grand scale".

> The one thing that's currently missing from Corey's "journey-ing"
> experience is a delivered project. Corey and I talked briefly about
> this and he expressed his desire to work on a project. I agree this
> is important. I wouldn't call someone a model journeyman if they are
> not periodically taking on a project and putting their reputation on
> the line within the constraints of time, money, and quality. I'm
> excited for when Corey takes on that challenge.

It is nice that you mention that!

I was talking to Paul the other day about a similar concept. We were
discussing about the craft and which steps would be desirable in our
community to strengthen it.

Actually we thought that a very good point would be to have a project
in which different craftsmen (form different shops and backgrounds)
would band together to work on the project. I think currently (and
specially due the current economic climate) there are some very
talented people available for such an undertaking. The question that
remains open though is how to find that project...

I would love to work hand in hand with people I know from the
community where we, as a team, can provide real value to a potential
customer joining our forces!

Cheers,

–––
Enrique Comba Riepenhausen

mail: eco...@nexwerk.com
web: http://www.nexwerk.com
twitter: http://twitter.com/ecomba

Michael Norton

unread,
Sep 16, 2009, 8:05:03 AM9/16/09
to software_cr...@googlegroups.com
Why not join forces with code green labs? Journeyman projects that
improve the world!


I know several from Obtiva and 8thLight worked on Mano a Mano at
Agile2009. Corey and I were there too. I am sure Bob would welcome the
help and we could do good on many fronts.

Michael "Doc" Norton

Sent from my iPhone

On Sep 16, 2009, at 6:04, Enrique Comba Riepenhausen

mheusser

unread,
Sep 16, 2009, 8:50:14 AM9/16/09
to software_craftsmanship
Another thought, though this one is way out there:

Call a real community college with a school of workforce development,
and create a real apprenticeship program, combined with 30 hours a
week at a day job, that ends in an Associates degree after three to
four years.

The problem I see is that typical 'craftsman' 'boutique' Rails dev
needs to know a technology stack that includes Ruby, HTML, Javascript,
Apache, Cucumber ... and be able to learn new apps on the fly, and the
pace of the typical CC course wouldn't cover this. It would take
retooling a lot of CC curricula.

hmm. It was a thought.

--heusser

Dave Hoover

unread,
Sep 16, 2009, 9:24:11 AM9/16/09
to software_cr...@googlegroups.com
There is certainly an opportunity to scale the apprenticeship concept,
and it will likely come from someone interested in linking to an
existing educational institution or someone interested in building a
school as opposed to building a business. I, for one, am not
interested in doing either. Both of these endeavors would distract me
from doing what I enjoy: delivering projects. I'm super-excited to
hear Corey's idea of a software development school:
http://programmingtour.blogspot.com/2009/09/software-development-school-idea.html
I know he could pull it off. And I know that he would have a ton of
support from businesses like Obtiva who could help "teach", and would
look to intern and eventually hire the school's "graduates".

Eric Smith

unread,
Sep 16, 2009, 9:44:53 AM9/16/09
to software_cr...@googlegroups.com
+1 on the Residency idea.  I was kicking around the idea that an apprenticeship is part of a college education, like being a student teacher.  Student teachers have to spend six months shadowing another teacher and assisting in the teaching of the class, which is part of their education.  In fact during this time they cannot get paid.  Afterwards they are able to take their certifications and teach actual students alone. 

This sounds very similar to your Residency idea, only Residency doesn't appear to require school participation, although it does sound a little like a step in the guild direction ("I accept your residency at Obtiva, but not at Hashrocket").

Robert Martin

unread,
Sep 16, 2009, 11:13:00 AM9/16/09
to software_cr...@googlegroups.com, software_cr...@googlegroups.com
IMNSHO apprentices should _always_ leave. That's the start of their journey. 

Sent from my iPhone

Kaleb Pederson

unread,
Sep 16, 2009, 3:05:50 PM9/16/09
to software_cr...@googlegroups.com
For a long time I've wanted to start up a programming club at one of
the local high schools. As a student, I would have been interested.
The club could work on a game, perhaps based on a nice 2d graphics API
or framework or a 3d game based on the Quake engine, or even give the
students liberty to choose one. More importantly, it would show the
students how much fun it can be to build something. It would show
them that math is not just a useless but that the more they know, in
virtually any subject, they will benefit from it in the world of
software.

--Kaleb

IIRC, Obtiva or 8th Light have an internship program, of sorts, that
brings high school students in.

Dave Hoover

unread,
Sep 16, 2009, 3:51:00 PM9/16/09
to software_cr...@googlegroups.com
> IIRC, Obtiva or 8th Light have an internship program, of sorts, that
> brings high school students in.

We did have an intern this summer. He was a college student. We will
likely have an intern or two next summer too.

Sonya Lowry

unread,
Sep 17, 2009, 4:58:04 PM9/17/09
to software_cr...@googlegroups.com
Pardon me for being a bit tardy responding. I just returned from a
trip where my team presented our vision and implementation to the
wider organization. Basically, we are bringing to the
research/academic environment the sense of craftsmanship we have been
discussing.

I'm concerned by this whole discussion, though. Craftsmanship is a
way to differentiate ourselves and the master/apprentice model doesn't
scale in the way that would be needed to revolutionize the industry
anyway. Isn't this movement about encouraging one another to take
pride in our work and about providing the support system that shows us
that we are not alone? It isn't about changing the whole world. That
would be too much of an uphill climb as some people simply don't care
that much. I'm not interested in beating myself up over them.

Let's not dilute the message with talk of schools and forced residency
programs. Let's just create a support system for those who care
enough to join us and provide information to those who don't know
enough yet to care.

Sonya

mheusser

unread,
Sep 18, 2009, 8:13:51 AM9/18/09
to software_craftsmanship
>Let's not dilute the message with talk of schools and
>forced residency programs.

Hey, man, I'm a pluralist. I have no interest in creating a licensing
program that requires someone to have a certain degree or certificate
in order to "practice" software development. I think that's /
craaaaap/.

But I would support creating opportunities for people to seek
formalized training if they desire it.

I have an MS in CIS, an undergrad in Math/CS, teach information
systems at night, work full-time in industry, and, honestly, I think
we can do better.

That's just me talking. But I walk the talk, too, ya know.

regards,

--heusser

Paul Pagel

unread,
Sep 18, 2009, 9:16:12 AM9/18/09
to software_cr...@googlegroups.com

I'm concerned by this whole discussion, though.  Craftsmanship is a
way to differentiate ourselves and the master/apprentice model doesn't
scale in the way that would be needed to revolutionize the industry
anyway.  

Why doesn't it scale?

Isn't this movement about encouraging one another to take
pride in our work and about providing the support system that shows us
that we are not alone?  It isn't about changing the whole world.  That
would be too much of an uphill climb as some people simply don't care
that much.  I'm not interested in beating myself up over them.

+1.  Well said.



Let's not dilute the message with talk of schools and forced residency
programs.  Let's just create a support system for those who care
enough to join us and provide information to those who don't know
enough yet to care.


I think any chance to cross-pollinate and learn new skills is something I am interested on the individual level.  I love getting to pair with new craftsmen.  I don't know what you mean by a forced residency (mostly the word forced).  Who is forcing the residency?  I am thinking along the lines of Corey/Nuno who have traveled as individuals to other companies and asked to experience a new environment.

Thanks for your comments,
Paul

Sonya Lowry

unread,
Sep 18, 2009, 11:14:18 AM9/18/09
to software_cr...@googlegroups.com
"...on the individual level. I love getting to pair with new craftsmen..."

This is why it doesn't scale. There simply aren't enough craftsmen to
provide the individual level, pairing experience that would be needed
to revolutionize the industry. Schools are for teaching the masses
and I think we can all agree that varying levels of mediocrity are
what we've come to expect from them and all we really can expect.
(Think about the teaching model critically.) Excellence isn't
achieved unless the individual chooses to pursue it, finds the right
mentors, and puts forth the effort. All we can do is make the middle
part of it (finding the mentors) a bit easier.

If we succeed in building a network of craftsmen willing to spend a
little time mentoring, even if nothing formalized ever comes of it,
then we've done something great and we should be proud of it. I'm
currently looking into the possibility of opening up my team to such
experiences; both as hosts for apprentices and as apprentices to other
shops. Anyone else interested in a short-term trade?

Sonya

Dave Hoover

unread,
Sep 18, 2009, 11:26:57 AM9/18/09
to software_cr...@googlegroups.com
On Fri, Sep 18, 2009 at 10:14 AM, Sonya Lowry <sonya...@gmail.com> wrote:
>
> If we succeed in building a network of craftsmen willing to spend a
> little time mentoring, even if nothing formalized ever comes of it,
> then we've done something great and we should be proud of it.  I'm
> currently looking into the possibility of opening up my team to such
> experiences; both as hosts for apprentices and as apprentices to other
> shops.  Anyone else interested in a short-term trade?

I'd bet there are a lot of us who would be interested. I think the
next step for you is tell us where you are and point us at some of the
people who are on your team (twitter accounts, blogs, projects, etc)
so we can start getting a feel for what your team is all about.

Sonya Lowry

unread,
Sep 18, 2009, 11:35:53 AM9/18/09
to software_cr...@googlegroups.com
I suppose that would be a good start. We are just getting things
started and I'll send out a link to our new site that has much better
and more current information very soon. It is scheduled to go live
next week and we are planning to start iteration 0 on our first
development project this coming Monday as well. In the meanwhile, you
can learn a little about what we are doing at
http://iplantcollaborative.org/.

Sonya

Clive Evans

unread,
Sep 18, 2009, 11:58:19 AM9/18/09
to software_cr...@googlegroups.com

On 18 Sep 2009, at 16:14, Sonya Lowry wrote:

>
> "...on the individual level. I love getting to pair with new
> craftsmen..."
>
> This is why it doesn't scale. There simply aren't enough craftsmen to
> provide the individual level, pairing experience that would be needed
> to revolutionize the industry. Schools are for teaching the masses
> and I think we can all agree that varying levels of mediocrity are
> what we've come to expect from them and all we really can expect.
> (Think about the teaching model critically.) Excellence isn't
> achieved unless the individual chooses to pursue it, finds the right
> mentors, and puts forth the effort. All we can do is make the middle
> part of it (finding the mentors) a bit easier.

I'm not convinced the teaching model necessarily prevents this. How
much time would you expect to need to spend pairing with somebody over
the course of a year to mentor them? Obviously the numbers don't allow
the teachers to spend all the time pairing, but it shouldn't be beyond
the wit of man (let alone woman) to achieve enough mentoring to get
people started on the path.

In fact, once you add in post graduates, you could get an interesting
mentored mentoring system going, possibly.

Whether you can find the academics willing to go down this route is a
question I can't answer though.

Clive

Dion A. Stewart

unread,
Sep 18, 2009, 12:07:25 PM9/18/09
to software_cr...@googlegroups.com
I know of a couple academics dedicated to invigorating software development education with apprenticeship-based learning.

David West is working on getting an apprenticeship program off the ground in New Mexico. His work was previously documented on InfoQ.

<http://www.infoq.com/articles/NMHU-scrum-university-apprentice>

I recently joined this group (greetings everyone!) and I sent an e-mail to David West telling him there are interesting discussions happening here. Hopefully, he'll join in the discussion.


Dion

Steve Donie

unread,
Sep 18, 2009, 1:25:55 PM9/18/09
to software_cr...@googlegroups.com
One of my co workers (Sukant Hajra) is at this moment meeting with some folks from the University of Texas Austin CS department to discuss these sorts of issues as well. 

He started the discussion with this post to the UT ACM forums -  http://www.utacm.org/forum/viewtopic.php?f=5&t=390

Kaleb Pederson

unread,
Sep 18, 2009, 4:04:22 PM9/18/09
to software_cr...@googlegroups.com
On Fri, Sep 18, 2009 at 8:14 AM, Sonya Lowry <sonya...@gmail.com> wrote:
>
> "...on the individual level.  I love getting to pair with new craftsmen..."
>
> This is why it doesn't scale.  There simply aren't enough craftsmen to
> provide the individual level, pairing experience that would be needed
> to revolutionize the industry.

Although it would be great if we could each have our own Uncle Bob
Martin as a mentor, I don't it's necessary to have a mentor that
experienced.

If I were to rate myself as having XX craftsman-experience points, I
might expect to be able to absorb knowledge from somebody that had
XX+N craftsman-experience points (for some N>0). I'm not sure I would
benefit much more from somebody with XX+N*N craftsman-experience
points (for N>1, of course). Sure, I might learn a little faster,
enjoying slightly better descriptions and more nuanced discourse, but
overall, I probably wouldn't be ready to hear (and retain most of)
what was said by the true expert craftsman. I imagine I'd miss most
of the nuances, gleaning only some percentage of what that person is
teaching.

Uncle Bob's post on master craftsman
(http://blog.objectmentor.com/articles/2009/04/01/master-craftsman-teams)
touched on this tree structure a bit; I believe it would work

--Kaleb

Jason Catena

unread,
Sep 18, 2009, 4:27:09 PM9/18/09
to software_cr...@googlegroups.com
> Sure, I might learn a little faster, enjoying slightly better descriptions
> and more nuanced discourse, but overall, I probably wouldn't be ready
> to hear (and retain most of) what was said by the true expert craftsman.

This is probably accurate. To make an analogy, let's represent the
three stages with operating systems. When you're working with Windows
(apprentice), even if you use Cygwin, the differences in approach
between how Linux (journeyman) does something and how Plan 9 (master)
does the same thing is not something you can really appreciate, since
you're just learning what that world is all about. Once you get up to
the point that you can work with Linux comfortably, and journey
through the various distributions, then the you can appreciate how
Plan 9 takes masterful, bold steps into simplicity to solve the
various problems with old-school catchall unix variants.

There's also the matter of taste: the apprentice Windows has none, or
it defeats itself at every turn with inordinate complexity and failed
maintenance attempts. Journeyman Linux has collected all kinds of
solutions to a wide variety of problems, but has yet to synthesize
them into a coherent minimal set that is easy to maintain. Master
Plan 9 has done this, but probably at the cost of approachability for
the apprentice, since the particular abstractions chosen and the
interrelatedness of the tool set defies piecemeal learning.

Jason Catena

Olof Bjarnason

unread,
Sep 18, 2009, 4:29:20 PM9/18/09
to software_cr...@googlegroups.com
2009/9/18 Kaleb Pederson <kaleb.p...@gmail.com>:
>
> On Fri, Sep 18, 2009 at 8:14 AM, Sonya Lowry <sonya...@gmail.com> wrote:
>>
>> "...on the individual level.  I love getting to pair with new craftsmen..."
>>
>> This is why it doesn't scale.  There simply aren't enough craftsmen to
>> provide the individual level, pairing experience that would be needed
>> to revolutionize the industry.
>
> Although it would be great if we could each have our own Uncle Bob
> Martin as a mentor, I don't it's necessary to have a mentor that
> experienced.
>
> If I were to rate myself as having XX craftsman-experience points, I
> might expect to be able to absorb knowledge from somebody that had
> XX+N craftsman-experience points (for some N>0). I'm not sure I would
> benefit much more from somebody with XX+N*N craftsman-experience
> points (for N>1, of course).  Sure, I might learn a little faster,
> enjoying slightly better descriptions and more nuanced discourse, but
> overall, I probably wouldn't be ready to hear (and retain most of)
> what was said by the true expert craftsman.  I imagine I'd miss most
> of the nuances, gleaning only some percentage of what that person is
> teaching.

In my pedagogical experience (limited I confess but nonetheless), it
is better if the one sucking up things and the "teacher" are closer in
experience than further apart. For example, with too much distance the
teacher will become impatient and the pupil will be afraid to ask
things, feeling awkward in the presence of the "master".

BTW I think a linear model for the craftsmanship path is too limited.
As Terry Bozzio (one of Frank Zappas favorite super-drummers) once
said in a drum clinic I happened to be at: "I bet every one of you in
this room can teach me something" (in a room full of semi-professional
drummers, including me.)

I bet each one of us can teach Uncle Bob something.
--
twitter.com/olofb
olofb.wordpress.com
olofb.wordpress.com/tag/english

James Breen

unread,
Sep 21, 2009, 11:00:33 PM9/21/09
to software_cr...@googlegroups.com


On Fri, Sep 18, 2009 at 3:04 PM, Kaleb Pederson <kaleb.p...@gmail.com> wrote:
If I were to rate myself as having XX craftsman-experience points, I
might expect to be able to absorb knowledge from somebody that had
XX+N craftsman-experience points (for some N>0).


I disagree that N has to be greater than 0.  Many people seem to be assuming that you have to pair with someone who has more skill than you do to learn something.  I think we learn from pairing with pretty much anyone.  If I understood him correctly, this was also Olof's point by saying that a linear model of craftsmanship is too limiting.  The linear model is unrealistic; how do you know which of two craftsmen is "more skilled".

For these reasons, I also disagree with that "there aren't enough craftsmen" to support cross-pollination on the individual level.  If we define a craftsman as someone who takes responsibility for their own career and values the quality of the software they produce (and this is the general idea of the craftsmanship movement that I've come to understand from reading this list, attending SCNA, and working at Obtiva), then it shouldn't be hard to find someone to learn from.  Craftsman != Master Craftsman. 

Anyone who wants to improve their skill will learn a lot by pairing with anyone else who also values quality.  I'd like to see lots of encouragement for apprentice-level developers to pair with as many people as they can (including outside of work) before getting hung up on how many master craftsman are available to work with those apprentices. 

Jim

Dave Hoover

unread,
Sep 22, 2009, 12:38:20 AM9/22/09
to software_cr...@googlegroups.com
On Mon, Sep 21, 2009 at 10:00 PM, James Breen <jbreen...@gmail.com> wrote:
>
> I disagree that N has to be greater than 0.  Many people seem to be assuming
> that you have to pair with someone who has more skill than you do to learn
> something. I think we learn from pairing with pretty much anyone.

I believe skilled people can become more skilled by pairing with
people with less skill. And I believe less skilled people can learn
from pairing with each other. But without a doubt, the best way for a
less skilled person to learn is by pairing with.... Well just read p.
413 of "A Pattern Language" to see what Christopher Alexander has to
say:

The fundamental learning situation is one in which a person learns by
helping someone who really knows what he is doing.
http://downlode.org/Etext/Patterns/ptn83.html

> If I
> understood him correctly, this was also Olof's point by saying that a linear
> model of craftsmanship is too limiting.  The linear model is unrealistic;
> how do you know which of two craftsmen is "more skilled".

Furthermore, who cares which one is "more skilled"? If that were
somehow known, then what?

> For these reasons, I also disagree with that "there aren't enough craftsmen"
> to support cross-pollination on the individual level.  If we define a
> craftsman as someone who takes responsibility for their own career and
> values the quality of the software they produce (and this is the general
> idea of the craftsmanship movement that I've come to understand from reading
> this list, attending SCNA, and working at Obtiva), then it shouldn't be hard
> to find someone to learn from.  Craftsman != Master Craftsman.

That's a great point. I think what we're finding is that there are a
lot of craftsmen out there, but the we need to find ways of
encouraging ourselves to connect with each other. And this is why
activities like SCNA, Code Retreats, and Corey's journeys have been
successful. These activities help connect a latent community of
professionals. And like Jason says, and I learned from feedback at
SCNA, when we're together, we need to spend a significant part of that
time pair programming together... connecting while doing, not just
talking about doing.

We do need more master craftsmen, and even more importantly,
*practicing* master craftsmen (see
http://nuts.redsquirrel.com/post/177089066 for an example of a
practicing master craftsman). I agree with Zed Shaw that our
generation of programmers will turn out a bumper crop of masters...
http://www.zedshaw.com/essays/master_and_expert.html

> Anyone who wants to improve their skill will learn a lot by pairing with
> anyone else who also values quality.  I'd like to see lots of encouragement
> for apprentice-level developers to pair with as many people as they can
> (including outside of work) before getting hung up on how many master
> craftsman are available to work with those apprentices.

Agreed. Apprentices should be very promiscuous with their pairing...
if a dude as old as Corey ;) can travel the countryside pairing with
everyone he meets, I'm surprised we don't see some crazy advanced
apprentices copy-catting his routes and launching their careers.

Clive Evans

unread,
Sep 22, 2009, 4:34:49 AM9/22/09
to software_cr...@googlegroups.com

On 22 Sep 2009, at 05:38, Dave Hoover wrote:

> On Mon, Sep 21, 2009 at 10:00 PM, James Breen
> <jbreen...@gmail.com> wrote:
>>
>> I disagree that N has to be greater than 0. Many people seem to be
>> assuming
>> that you have to pair with someone who has more skill than you do
>> to learn
>> something. I think we learn from pairing with pretty much anyone.
>
> I believe skilled people can become more skilled by pairing with
> people with less skill. And I believe less skilled people can learn
> from pairing with each other. But without a doubt, the best way for a
> less skilled person to learn is by pairing with.... Well just read p.
> 413 of "A Pattern Language" to see what Christopher Alexander has to
> say:
>
> The fundamental learning situation is one in which a person learns by
> helping someone who really knows what he is doing.
> http://downlode.org/Etext/Patterns/ptn83.html

At school I used to informally tutor other students in Maths. I
learned _far_ more about Maths by explaining how to solve problems
than I ever did by solving problems, being taught, or reading books.

Having to put into words something which you don't think about forces
you to have a much greater understanding of what it is you are doing
and why. I'm not convinced that you learn the _most_ when you're
paired with somebody who is better than you. That you learn a lot, and
that it's different, isn't in doubt, but the amount you learn is, at
least in my mind.

One of the most important things I learned once I got out into the job
market was that different people learn better in different ways. These
days I'm very cautious about people who declare that one way of
teaching is inherently better than another. Better for _some_people_,
certainly, but that doesn't mean better for _everyone_.

Clive

Dave Hoover

unread,
Sep 22, 2009, 8:30:14 AM9/22/09
to software_cr...@googlegroups.com
On Tue, Sep 22, 2009 at 3:34 AM, Clive Evans
<clive.e...@ntlworld.com> wrote:
>
> At school I used to informally tutor other students in Maths. I
> learned _far_ more about Maths by explaining how to solve problems
> than I ever did by solving problems, being taught, or reading books.

Cool! You learned how you learn best.

> Having to put into words something which you don't think about forces
> you to have a much greater understanding of what it is you are doing
> and why. I'm not convinced that you learn the _most_ when you're
> paired with somebody who is better than you.

I'm not either. I should be more specific:

What I have found is that apprentices yearn to pair with more
experienced people. And thinking back to when I was in my "apprentice
years", I can remember learning the most myself when I was pairing
with more experienced people. I understand that's totally anecdotal
(6 apprentices + my experiences) so I shouldn't generalize that to
every software noob, because you're right, everyone has different
learning styles.

> One of the most important things I learned once I got out into the job
> market was that different people learn better in different ways. These
> days I'm very cautious about people who declare that one way of
> teaching is inherently better than another. Better for _some_people_,
> certainly, but that doesn't mean better for _everyone_.

Well, I guess you should be cautious of me... although I don't know
much about teaching, it's learning that I know best. :)

--Dave

Kaleb Pederson

unread,
Sep 22, 2009, 2:58:55 PM9/22/09
to software_cr...@googlegroups.com
On Monday 21 September 2009 08:00:33 pm James Breen wrote:
> On Fri, Sep 18, 2009 at 3:04 PM, Kaleb Pederson <kaleb.p...@gmail.com>wrote:
>
> > If I were to rate myself as having XX craftsman-experience points, I
> > might expect to be able to absorb knowledge from somebody that had
> > XX+N craftsman-experience points (for some N>0).
> >
>
> I disagree that N has to be greater than 0. Many people seem to be assuming
> that you have to pair with someone who has more skill than you do to learn
> something. I think we learn from pairing with pretty much anyone.

I didn't intend to state that we must pair with somebody more skilled than us. I was referring to mentors. A mentor, by definition, is somebody more experienced and trusted who acts as a guide, advisor, or counsellor. I absolutely agree that we can learn from anybody, whether more experienced or less and whether versed in our industry or not.

> If I
> understood him correctly, this was also Olof's point by saying that a linear
> model of craftsmanship is too limiting. The linear model is unrealistic;
> how do you know which of two craftsmen is "more skilled".

Agreed. It's certainly non-quantifiable. What I hoped to point out is that as an apprentice, my mentor need not be perfect and, because of that, craftsmanship does scale. I can pair with anybody and expect to learn. But, I do believe there is some skillset in my mentor that, when surpassed, benefits me less and less -- some point of diminishing returns, for me. Certainly, my mentor might be learning a lot as he contemplates new metaphors and approaches that describe important points and concepts he's trying to convey to the apprentice.

> For these reasons, I also disagree with that "there aren't enough craftsmen"
> to support cross-pollination on the individual level. If we define a
> craftsman as someone who takes responsibility for their own career and
> values the quality of the software they produce (and this is the general
> idea of the craftsmanship movement that I've come to understand from reading
> this list, attending SCNA, and working at Obtiva), then it shouldn't be hard
> to find someone to learn from. Craftsman != Master Craftsman.
>
> Anyone who wants to improve their skill will learn a lot by pairing with
> anyone else who also values quality. I'd like to see lots of encouragement
> for apprentice-level developers to pair with as many people as they can
> (including outside of work) before getting hung up on how many master
> craftsman are available to work with those apprentices.

Well said.

--Kaleb

Anthony Broad-Crawford

unread,
Sep 22, 2009, 6:08:21 PM9/22/09
to software_cr...@googlegroups.com
On Tue, Sep 22, 2009 at 2:58 PM, Kaleb Pederson <kaleb.p...@gmail.com> wrote:

On Monday 21 September 2009 08:00:33 pm James Breen wrote:
> On Fri, Sep 18, 2009 at 3:04 PM, Kaleb Pederson <kaleb.p...@gmail.com>wrote:
>
> > If I were to rate myself as having XX craftsman-experience points, I
> > might expect to be able to absorb knowledge from somebody that had
> > XX+N craftsman-experience points (for some N>0).
> >
>
> I disagree that N has to be greater than 0.  Many people seem to be assuming
> that you have to pair with someone who has more skill than you do to learn
> something.  I think we learn from pairing with pretty much anyone.

I didn't intend to state that we must pair with somebody more skilled than us. I was referring to mentors.  A mentor, by definition, is somebody more experienced and trusted who acts as a guide, advisor, or counsellor.    I absolutely agree that we can learn from anybody, whether more experienced or less and whether versed in our industry or not.

It depends on what the other person is more skilled "in".  Unless the craftsman score / measurement is based on a fixed linear progression (if we are advocating that let me know) individuals could have achieved the same score as someone else by taking a different path (just like college, I was also a senior like everyone else but I chose to focus on linguistic theory and compilers where others chose databases).  

 

> If I
> understood him correctly, this was also Olof's point by saying that a linear
> model of craftsmanship is too limiting.  The linear model is unrealistic;
> how do you know which of two craftsmen is "more skilled".

Agreed.  It's certainly non-quantifiable.  What I hoped to point out is that as an apprentice, my mentor need not be perfect and, because of that, craftsmanship does scale.  I can pair with anybody and expect to learn. But, I do believe there is some skillset in my mentor that, when surpassed, benefits me less and less -- some point of diminishing returns, for me. Certainly, my mentor might be learning a lot as he contemplates new metaphors and approaches that describe important points and concepts he's trying to convey to the apprentice.

> For these reasons, I also disagree with that "there aren't enough craftsmen"
> to support cross-pollination on the individual level.  If we define a
> craftsman as someone who takes responsibility for their own career and
> values the quality of the software they produce (and this is the general
> idea of the craftsmanship movement that I've come to understand from reading
> this list, attending SCNA, and working at Obtiva), then it shouldn't be hard
> to find someone to learn from.  Craftsman != Master Craftsman.
>
> Anyone who wants to improve their skill will learn a lot by pairing with
> anyone else who also values quality.  I'd like to see lots of encouragement
> for apprentice-level developers to pair with as many people as they can
> (including outside of work) before getting hung up on how many master
> craftsman are available to work with those apprentices.


+1 as well
 
Well said.

--Kaleb





--
Anthony Broad-Crawford
www.anthonybroadcrawford.com
www.twitter.com/broadcrawford

This email is:   [ ] bloggable    [ x ] ask first   [  ] private
Reply all
Reply to author
Forward
0 new messages