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
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
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.
> 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
We did have an intern this summer. He was a college student. We will
likely have an intern or two next summer too.
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.
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.
>
> "...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
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
If I were to rate myself as having XX craftsman-experience points, Imight expect to be able to absorb knowledge from somebody that had
XX+N craftsman-experience points (for some N>0).
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.
> 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
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
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
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.
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.
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.
> 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.
Well said.
--Kaleb