Review: Software Craftsmanship by Pete McBreen

4 views
Skip to first unread message

dcpatton

unread,
Nov 20, 2008, 10:20:19 PM11/20/08
to software_craftsmanship
I just posted a review and would love to hear others impressions of
the book:

http://softcraft.blogspot.com/2008/09/book-review-software-craftsmanship.html

Adewale Oshineye

unread,
Nov 21, 2008, 5:46:19 AM11/21/08
to software_cr...@googlegroups.com
You should take a look at this review:
http://ravimohan.blogspot.com/2005/09/nostalgia-for-guilds-and-other.html
by Ravi Mohan
I don't agree with Ravi's criticisms but I found it enlightening to go
through the process of having my beliefs challenged and then
articulating why I was inspired by McBreen's work

2008/11/21 dcpatton <dcpa...@gmail.com>:

Robert Martin

unread,
Nov 21, 2008, 12:56:20 PM11/21/08
to software_cr...@googlegroups.com
I stopped reading the post when he made the comparison with Linus.  Linus would still be the master, because Linus _does_ have a clue, even if he isn't familiar with j2ee.  Frameworks don't take a long time to learn.  I imagine Linus could learn j2ee very quickly indeed.  And I also imagine that the _first_ decision he made using J2ee would be well informed by his vast software experience.



----
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





Adewale Oshineye

unread,
Nov 22, 2008, 12:24:51 PM11/22/08
to software_cr...@googlegroups.com
I'm going to have to disagree with you here Robert. Sometimes people
have useful insights if we can get past their inflammatory way of
communicating. When Ravi wrote his blog post in 2005 Linus had
precisely one significant achievement to his name. We didn't actually
have any evidence that he could do anything else besides maintain the
kernel he's been working on for his entire professional life. As far
as we all knew his skills were narrow but deep.

In response to Ravi's post I remember thinking that the only way
someone like Linus could be validated would be if he were to try
something else and show that the kernel wasn't just a fluke. I think
we can all agree that Git qualifies.

Personally I'd probably be happier with Git if he'd chosen a more
appropriate tool than C. The approach the Mercurial team have taken
(implement everything in a high level language that lets you reason
easily about sophisticated algorithms then replace the bottlenecks
with C) seems like a more maintainable one in the long term.

Despite this Ravi raises some challenging points:
- which parts of the medieval craft system, documented by people like
Richard Sennet in his book The Craftsman, are not appropriate for
software practitioners in the 21st century?
- what are the downsides of the craft model?
- how much of the esteem we give to the leading lights of the software
industry is because of their fame rather than their demonstrated
skill?
- is our goal to raise the average quality of programmers or to
improve the skills of those who aspire to be the best?


2008/11/21 Robert Martin <uncl...@objectmentor.com>:

Adam Williams

unread,
Nov 22, 2008, 5:05:56 PM11/22/08
to software_cr...@googlegroups.com
Adewale,

This is well said.

I've always thought that the alpha programmers were not the ones
writing the books. Those are the ones who are diligent and focused,
able to write to some degree or another, and possibly more useful to a
business than the terribly inconsistent genius. 'Master' in my eyes
goes well beyond 'expert C hacker' or 'kernel god'. That may be
'mastery'. I know I've worked on code that an exceptional prototyping
programmer built in a few days where I had to spend a few more getting
it into a form that was flexible enough for us to use/change. I would
not necessarily call that person a 'master', though I suppose the same
would be offended should I call him anything otherwise ;) For that
matter, I hesitate to call the 27 year old chemist-turned-rails-
programmer-two-years-ago an 'apprentice' - primarily because I have a
hard time calling myself a 'master', only programming 8 years myself.

Talking with a friend about that article, he had some thoughts along
the lines of maybe apprentice, journeyman, master are great and
relevant divisions in limited skill professions (like sword making?)
and not so great in such a diverse field as software development...

adam

David Patton

unread,
Nov 23, 2008, 10:35:14 AM11/23/08
to software_cr...@googlegroups.com
I too do not agree with Ravi's criticisms. I agree that it is an interesting article to read, but for me I think the focus on quality and valuing people over process that Pete explores in his book is crucial to software development.

David

payto...@gmail.com

unread,
Nov 29, 2008, 9:45:19 PM11/29/08
to software_craftsmanship
I've meaning to post this for a while - but I have to call B.S. on
your basic premise, that Linus Torvalds wasn't a master because he has
"precisely one significant achievement to his name." By that standard
nobody on this group, indeed nobody I've ever met, has a single
achievement, with the possible exception of Uncle Bob. I'll give him
one.

The standard you've set for an achievement is impossibly high. The
work done by Linus consists of dozens, if not hundreds, of
achievements and Ravi's argument about J2EE is pretty darn silly, and
makes the rest of the review seem silly by extension. An important
part of being a software craftsman, or aspiring to it, is that you
need to be able to jump from one technology to another. I doubt very
much that Linus couldn't do that. Furthermore there is a lot more to
being a successful craftsman than syntax.
> 2008/11/21 Robert Martin <uncle...@objectmentor.com>:
>
> > I stopped reading the post when he made the comparison with Linus.  Linus
> > would still be the master, because Linus _does_ have a clue, even if he
> > isn't familiar with j2ee.  Frameworks don't take a long time to learn.  I
> > imagine Linus could learn j2ee very quickly indeed.  And I also imagine that
> > the _first_ decision he made using J2ee would be well informed by his vast
> > software experience.
>
> > On Nov 21, 2008, at 4:46 , Adewale Oshineye wrote:
>
> > You should take a look at this review:
> >http://ravimohan.blogspot.com/2005/09/nostalgia-for-guilds-and-other....
> > by Ravi Mohan
> > I don't agree with Ravi's criticisms but I found it enlightening to go
> > through the process of having my beliefs challenged and then
> > articulating why I was inspired by McBreen's work
>
> > 2008/11/21 dcpatton <dcpat...@gmail.com>:
>
> > I just posted a review and would love to hear others impressions of
>
> > the book:
>
> >http://softcraft.blogspot.com/2008/09/book-review-software-craftsmans...
>
> > ----
> > Robert C. Martin (Uncle Bob)  | email: uncle...@objectmentor.com

Adewale Oshineye

unread,
Nov 29, 2008, 10:37:01 PM11/29/08
to software_cr...@googlegroups.com
2008/11/30 esm...@8thlight.com <payto...@gmail.com>:
>
> I've meaning to post this for a while - but I have to call B.S. on
> your basic premise, that Linus Torvalds wasn't a master because he has
> "precisely one significant achievement to his name." By that standard
> nobody on this group, indeed nobody I've ever met, has a single
> achievement, with the possible exception of Uncle Bob. I'll give him
> one.
That's an interesting point. You seem to be arguing that one
significant achievement is enough to qualify one as a master. This
raises some intriguing questions.
What counts as a significant achievement? I assume mere fame isn't
enough but I wonder what the necessary and sufficient qualities are
for this achievement? Is this something we can define in advance or is
it something we can only recognise when it turns up?
If we were to sort all the developers in the world from worst to best
where would the people on this mailing list fit and in which
percentile would we place Linus? Where would we place people like Rob
Pike/Ken Thomspon who have created an operating system _and_ a major
part of Unicode like UTF8? If we can answer those questions it
suggests that we can answer the more fundamental question about the
metric we're using to compare developers. This would then lead us to
be able to start thinking about how we get better according to that
metric.

>
> The standard you've set for an achievement is impossibly high. The
> work done by Linus consists of dozens, if not hundreds, of
> achievements and Ravi's argument about J2EE is pretty darn silly, and
> makes the rest of the review seem silly by extension. An important
> part of being a software craftsman, or aspiring to it, is that you
> need to be able to jump from one technology to another. I doubt very
> much that Linus couldn't do that. Furthermore there is a lot more to
> being a successful craftsman than syntax.
I believe high standards give us all something to aspire to. I accept
that I won't be able to persuade you to adopt a standard that requires
that people who claim mastery have multiple significant pieces of work
to their name in order to control for factors like luck and path
dependency. I will however point out that people used to think the 4
minute mile was impossible too. But once Roger Bannister broke through
that barrier it opened the floodgates:
http://en.wikipedia.org/wiki/World_record_progression_for_the_mile_run

My original point was that at the time when Ravi wrote that article we
didn't _know_ if Linus could do anything besides kernel hacking. We
had a pretty good idea but we didn't have any data. Instead we had
worrying discussions like this:
http://lwn.net/2000/0824/a/esr-sharing.php3 where Linus is arguing
against reuse and source control. It took the sheer sophistication of
Git (especially when compared to the state of the art:
http://lkml.indiana.edu/hypermail/linux/kernel/0303.1/0130.html ) to
confirm what we suspected about his skill-level.

Getting back to my earlier post. What do you think of the questions
that I felt Ravi's post raised?

payto...@gmail.com

unread,
Nov 30, 2008, 2:08:58 PM11/30/08
to software_craftsmanship
I think I poorly articulated my point. I wasn't arguing one
significant achievement qualifies you as a master. I was arguing that
the work on the Linux Kernel would necessitate dozens of achievements
along the way. A quick browse of wikipedia shows:

* Masters Degree from the University of Helsinki
* Wrote a text editor for the QL, including a Pac-Man clone.
* Extensive work with the Linux foundation

All this before Git. My point was he'd already demonstrated a
technical grasp of multiple subjects, not just kernel hacking.
Frankly at this point debating it is silly, since the credentials of
Linus Torvalds are hardly the point.

As to setting high expectations for yourself and others - good for
you. I have no problem with that and don't know who would.

If you don't mind, I'd like to mull over the questions you've raised
for a bit, they're not simple.

On 29 Nov, 21:37, "Adewale Oshineye" <adew...@gmail.com> wrote:
> 2008/11/30 esm...@8thlight.com <paytonru...@gmail.com>:
> worrying discussions like this:http://lwn.net/2000/0824/a/esr-sharing.php3where Linus is arguing
> against reuse and source control. It took the sheer sophistication of
> Git (especially when compared to the state of the art:http://lkml.indiana.edu/hypermail/linux/kernel/0303.1/0130.html) to
Reply all
Reply to author
Forward
0 new messages