Cambridge Software Craftsmanship Community

July 4, 2012 - 5 minute read -

Last night, a new community was formed in Cambridge. Nearly 20 software developers congregated for the inaugural meeting of the Cambridge Software Craftsmanship community, and the feedback on the event has been excellent.

I’ve been attending the London Software Craftsmanship Community (LSCC) for the better part of a year now, and have thoroughly enjoyed the events that Sandro and Samir put together there. The group has gone from strength to strength, and is now the largest Software Craftsmanship community outside of the US.

About six months ago, I toyed with the idea of starting a similar group in Cambridge. I put out a call on Twitter, but had little response so put the idea on the back-burner for a little while. Then, whilst attending a couple of LSCC events in April, a few of the practitioners there suggested I start up a more local group. I put out another, firmer, call on Twitter, and this time the response was much more favourable: the seeds had been planted. With people like Sandro, Jason Gorman and Dave Green (a former LSCC organiser) offering support and encouragement, I knew this idea had legs.

And then, for a while, it stopped. I spent most of May in the US (those blog posts are still coming…) and everything ground to a halt. The momentum was not lost, though: even whilst I was away, the group was at the back of my mind, gestating. I knew that I wanted to model the group on the LSCC, to try and replicate its success, but how much did I want it to be a cookie-cutter group? I decided to adopt two of the meeting formats that LSCC run, the round-table discussion and the hands on sessions as the initial programme. On my return to Cambridge, I signed up to Meetup as a group organiser and put a little bit of flesh on the bones of the group: we now had a place to congregate online.

A month ago, I officially launched the group, advertising it on Twitter, and taking advantage of the free promotion through Meetup to similar groups. I was blown away by the response: within two days, 15 out of the 20 places to the first meeting, a round-table discussion session, and by the end of that week we had hit 30 members! Clearly the group had struck a chord.

Next I had to arrange some sponsorship: a key ingredient of the round-table discussions is free pizza, and feeding 20 hungry developers is not cheap! I’ve been injecting the craftsmanship ethos into my team at work for a while now, so I wanted to give my employer, Granta Design, first refusal on the opportunity. I’m very happy to say that we are sponsoring the group both through providing a space for the group to meet at our offices near the station, and in providing the pizza and drinks for the evening.

The day of the meeting soon came around, and there was a lot to do: buy the necessary supplies, book the pizza, set up the space, etc. Thank you to Ceri, Adrian and Sean for their help beforehand and to them and everyone else who helped clear up afterwards too! We had a few introductions whilst waiting for the pizza to arrive, and some small talk over pizza. The round-table discussion itself kicked off a little while later, and this took the format of an open space-style discussion: topics were provided by the participants, and then the group voted on the ones they wanted to discuss. We then broke into two groups to discuss Functional Programming, and Legacy Code.

Both discussions seemed very fruitful: I participated in the Legacy Code discussion, and took away some new information on tools that can be used with C++ for static analysis, unit testing, and code coverage. The Functional Programming group came back very enthused, with one member even saying they wanted another one!

It was also interesting listening to the particular problems that developers working with C and C++ run into, especially those in embedded software. There does seem to be less available in the way of tooling for C and C++ developers than there are for managed languages like C# and Java; I guess this is just the nature of the beast when you’re writing code that runs on the metal itself rather than inside a runtime.

After the round-table discussions, everyone re-grouped in the main area and we had a little bit of a discussion on the expected programme for the group. This is a summary of my short-term plan:

  1. Continue to model the group on the LSCC. Run round-tables on a monthly basis, on the first Tuesday of each month.
  2. In a month or two’s time, introduce a monthly hands-on session. These will be a range of exercises, mostly formed around the Code Retreat model of pair programming with Test-Driven Development.
  3. Later, start to introduce more social meetups. In the meantime, I will try to include more of this in the regular meetups, such as retiring to a local pub afterwards.
  4. Also later, introduce day-long events, perhaps joining the Global Day of Code Retreat, or running a Legacy Code Retreat.

However, these are just my ideas, based on where we are now; as the group grows and evolves, we’ll adapt the programme to suit the group. The monthly hands-on sessions in particular I am keen to open to both members of the group to lead, and to bring in luminaries from the Craftsmanship movement to lead as well.

In the meantime, our next meetup will be another round-table discussion, to be held at Granta Design on Tuesday 7 August. Keep an eye on the Cambridge Software Craftsmanship website, and the #CamSWCraft hashtag on Twitter for more information!

I’m really looking forward to seeing where the group goes from here. We’ve had an auspicious start, and the feedback from last night’s event suggests we have a group of developers passionate about their craft on our hands. Exciting times!