Skip to main content


Showing posts from November, 2010

The results are in: In-house software craftsmanship day

On Friday Nov 12, we hosted an in-house "software craftsmanship day".  The format was similar to many of the software conferences I have attended, with multiple tracks, some more technical than others.
The schedule and session notes are in my previous blog post.
The raw retrospective notes are on the learning group's google site.
The event was an unqualified success, based on feedback from the participants.  Some of the most valuable things we found:
Relationships: getting everyone talking to (and pairing with) people on other sub-teams is an end worth pursuing by itself.Sharing knowledge: having different people pair on hands-on exercies spread out some of the micro-patterns that people follow in their day-to-day work.The feedback was entirely positive and constructive.  In my experience, people here are not at all shy about sharing criticism, so I took that at face value.
I believe the two main keys to success were...
Preparation: most of the people who hosted sessions …

Software Craftsmanship Day at my workplace

Well, we finally pulled together a schedule and planned out all of our sessions for a Software Craftsmanship day at my workplace. 
The coolest part?  I didn't have to beg anyone to make it happen.  One of the VP's suggested that we could devote a day per month to honing our development skills.  How many organizations do that?  Very few, I think.
Since I was already leading a craftsmanship group, my boss asked me to lead the effort to put this together.  I just asked for volunteers, called a weekly meeting to work out what we wanted to do, and we did it!
I'll be sure to report what I learned once the first one is over.  I expect this to be a very useful and interesting day, but I won't know for sure until after Friday, Nov 12.
The best way to describe what we're doing is to paste the invitation I just sent to all of the agile teams here (about 120 people are invited, I expect around 100 to attend).
Craftsmanship Day (a.k.a. "Craft Day") takes place all day th…

At SCNA: Part 4

This is the last post in a multi-part series about the Software Craftsmanship North America conference in Chicago.
Combinator-based design in functional programming: Michael Feathers
I'll be honest - I didn't really pick up a central theme on this one.  It was interesting and I took some ideas from it, but I can't really summarize it well..
My take-aways: We have a settled idea of OO, but not yet one of functional programming - the "best practices" are still evolving.Haskell is a good functional language to learn with - it forces you to be functional.Duplicating objects at runtime is no longer evil.  Duplicating code still is.OO increases encapsulation and understandability.  Functional increases immutability and reduces the number of moving parts.
Panel Discussion: Bob Martin, Michael Feathers, Chad Fowler and Enrique Comba Riepenhausen
This was my favorite session of the conference.  Instead of my interpretation of what the presenter was trying to say, here are my fa…

At SCNA: Part 3

This is the third post in a multi-part series.  The conference covered two days, with many presentations, lightning talks, and conversations about software craftsmanship.

Chad Fowler: McDonalds, Six Sigma and Saxaphone
Fowler, like many other people at SCNA is a "musician/developer" - he chose software development as a career after trying to make his way as a musician.  Exactly how much that influences his craft is hard to say, but it seems to happen often enough to take note of it.
He described what we do as in the middle of a continuum with "Art" on one end and "Commodity" on the other.  A parallel is that art is about form, while commodity is about function.
My take-aways: Treating your work as "art" means that you can talk about it subjectively, which is a cop-out.Internal quality is irrelevant.  Customers don't care about "form", only "function".We can't make software better than McDonald's sells burgers.  Hav…