Skip to content

Instantly share code, notes, and snippets.

@sl4m
Created October 20, 2009 21:12
Show Gist options
  • Save sl4m/214624 to your computer and use it in GitHub Desktop.
Save sl4m/214624 to your computer and use it in GitHub Desktop.
First, I would like to start out by recommending that anyone who is
serious about software craftsmanship go out and read Pete McBreen's
book "Software Craftsmanship". I think it's a critical starting place
for these discussions, and on a more personal note, the book had a
huge impact on me. Probably the biggest reason I am a part of this
group is that I have no where else to go. :) I was a later-in-life
self-taught programmer who had a wife and child(ren) to support from
the day I wrote my first for loop, so I have no formal scientific or
engineering education, and I don't have the option of taking time off
to obtain one. And yet I want to become great at what I do. In my
first two years as a programmer I started to despair about my lack of
relevant education. It seemed that without computer science or
software engineering credentials, I was going to have a hard time
making progress. But then I read "Software Craftsmanship" and I felt
like I could fit into the world that Pete was describing. I could see
myself in the story, and I recognized that I was an "apprentice".
This gave me the "career map" I needed which allowed me to take the
steps I needed to make progress. Neither computer science nor
software engineering provided this map for someone like me. So,
unlike some people (like Pete) who argue strongly against software
engineering, I am mostly ignorant of it and choose software
craftsmanship because I didn't have any other options.
The steps I took after reading Pete's book obviously shaped the way I
look at software development. And because these 6 years since I read
Pete's book have been largely positive for me, I would like to
encourage other people to walk a similar path, to help them make
similar progress. That is one of the reasons I wrote "Apprenticeship
Patterns". I would also like to improve the apprenticeship experience
and raise the bar for what we expect from someone with 4, 5, or 6
years of experience in our industry. That is one of the reasons I
started Obtiva's apprenticeship program. I want to instill a desire
in people to become master craftsmen, which is a very
counter-cultural, yet increasingly important role to play.
So, I wonder what we as a community can do to improve these things
even more. I wonder how we can make it easier for companies and
individuals to take on apprentices. I wonder how we can make it
easier for companies and individuals to host and send journeymen to
spread great ideas between development shops. And most critically, I
wonder how we can ensure that our master craftsmen stick with the
fundamental activity of actively developing software for long-term
customers.
I'm honestly not interested in any criteria that would allow us to
distinguish an apprentice from a journeyman or a craftsman from a
non-craftsman. When it comes to a set of principles that a software
craftsman should adhere to, I think Pete's book serves as a good
enough starting point. I realize now that I'm here because I hope
that we can organize a network of people to encourage the 3 activities
that I've seen make the biggest impact on people becoming software
craftsmen. I'm here because I'd like to see us:
1) Facilitate the introduction of apprenticeships, similar to 8th
Light's and Obtiva's
2) Create a structure that encourages journeymen to journey between
development shops, similar to Corey Haines' tour
3) Seek out master craftsmen and identify their masterpieces and
contributions to the craft, to provide the rest of us with something
to aspire to.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment