CodeBork | Tales from the Codeface

The coding blog of Alastair Smith, a software developer based in Cambridge, UK. Interested in DevOps, Azure, Kubernetes, .NET Core, and VueJS.


Project maintained by Hosted on GitHub Pages — Theme by mattgraham

This last weekend I attended the SoCraTes UK conference at the Farncombe Estate in the Cotswolds, near Moreton-in-Marsh. It was a fantastic weekend of mixing with, talking to, and learning from other software craftsman from around the country and across Europe.

Organised by Sandro Mancuso, Samir Talwar, Gonçalo Silva and Mashooq Badar (apologies if I missed anyone), SoCraTes took the form of an open space or “unconference” with no formal structure or agenda. Such a format requires good facilitation, and we had one of the best in the business: Rachel Davies of Unruly Media, and co-author of the first book on Agile Coaching.

SoCraTes started on Thursday evening with a series of lightning talks from attendees, followed by a fishbowl-format discussion session after dinner. The highlights of the lightning talks for me were @sleepyfox’s talk on Why Gödel’s Incompleteness Theorem Renders Estimation Meaningless (apparently delivered completely off the cuff!), whether personal responsibility should be common knowledge for all software craftsman (delivered by Erik Talboom), and Chris Whitworth’s talk titled Naming things is hard but that’s no excuse. I’m also looking forward to trying out on a couple of codebases Dmitry Kandalov’s tool for code history mining.

The fishbowl discussion was a new discussion format to me, but it turned out to be quite similar to the park bench-format discussions sometimes held at Skills Matter. It started off with a panel of four people, who were tasked with discussing, and attempting to answer, three questions about software craftsmanship. Any time someone from the audience wanted to contribute they had to take the spare seat on the panel, and someone on the panel had to vacate their seat. As the discussion began to up, I started to see how the format got its name: the people in the room were moving around the room like fish in a bowl. I thought the format worked well, although it was unfortunate that only a fraction of people in the room contributed their thoughts.

The open space itself ran over Friday and Saturday. Talking with Rachel at the end of the event on Sunday, it was interesting to learn about the origins of the format. The person who came up with it was running a lot of events and found them a lot of work to put together, particularly around the selection of sessions; additionally the feedback that he got strongly suggested that the coffee breaks between sessions were the bits the attendees found most valuable. As as a result, he devised a format that removed the work of putting together a schedule and put the focus on collaboration, conversation and communication with other attendees.

We began the open space on each day with a plenary-type session where people interested in proposing sessions wrote their idea down on a big (A5-sized!) sticky note. We had 9 rooms available over 6 time slots (three before lunch, three after lunch), so everyone who proposed a session got a chance to deliver it to at least a handful of people. The great thing about the open space format is the set of guidelines (and one law) that define it:

Earlier sessions spawned new sessions later on, some sessions spilled over into one or more later slots and moved to a new space, and everyone had invigorating discussions.

I attended three sessions on the first day: refactoring the 13 rules of TDD into a more manageable list, WTF Code (with some great examples of how not to use ints and Integers in Java!) and Dealing with Legacy People. This last was a fun discussion, if perhaps not hugely productive, of ways of dealing with people in positions of authority (e.g. team lead, architect) that haven’t kept their skills and knowledge up-to-date and aren’t willing to accept constructive criticism of their work. I took a break before that session to do a spot of hands-on coding: there’s something about being amongst that kind of people that brings out my passion for coding.

I had fuller day on the second day. I spent the first two sessions in Marcin Gryszko’s DDD Practice session, then went to a Cyber-Dojo before lunch. I took the first session after lunch off, and then joined Erik and Ian Russell’s discussion session on Personal Responsibility, which overran into the final slot of the day.

Marcin’s DDD session I found invaluable; it was like the Architectural Katas devised by Ted Neward, but for Domain-Driven Design. I learned from Sandro that the key thing is to start with your application’s services (which, in the exercise in this session, were loosely tied to use cases) and identify the entities and values from there; previously I’d been working the other way around. This makes a lot more sense to me now, particularly after someone else described it as working outside-in.

The final day of SoCraTes UK was a lovely walk around the Cotswolds, led by Rachel. It was exactly what I needed in my slightly-hungover-from-Saturday-night state!

SoCraTes UK was also my first experience of speaking at a conference, and in many respects I think I chose a good event for my first time: the audience were friendly and supportive, and interested and engaged, not least because everyone was there for the simple fact that they wanted to be! The format of my session (a prepared talk with slides and everything) didn’t really fit the format of the conference, though, so I will remember to keep that in mind when preparing sessions in future. I will blog about my session separately to keep this post down to a vaguely manageable length.

The most interesting thing for me over the course of the conference was the shared vocabulary that emerged during the weekend: “personal responsibility” and “mindfulness” being two repeating themes. The most valuable thing for me was the opportunity to reflect on our principles, values and practices with like-minded people, who invited open discussion and debate on those very things: “strong opinions, weakly held” was the line from Samir that summed it up best for me.

The most unexpected thing for me was the opportunity to chat with leaders in the Software Craftsmanship movement across Europe as equals. Occasionally it has been the case at other conferences and events (particularly the more formal and structured ones) that the speakers are set apart from the attendees, which can make it more difficult to interact with them. At SoCraTes, it was the complete opposite: it was just a bunch of people in a room.

A little surprising for me was the interest other people had in the Cambridge Software Craftsmanship Community and how it was progressing. I must have had conversations along these lines nearly 10 times over the course of the weekend, which was ace. Having stepped back from the London Software Craftsmanship Community in the last year or so, not least to focus on getting CSCC up and running, I now realise that we’d become a little bit isolated up here in Cambridge from the rest of the Software Craftsmanship community. I intend to fix that by starting to attend the LSCC meet-ups again from next month, and encouraging more inter-community collaboration, through things like Craftsman Swaps, workshops and joint code retreats; other ideas welcome, of course! I’m hugely looking forward to seeing more CSCC attendees at SoCraTes UK 2014.

I’d like to say a note of thanks to everyone that helped out with the organisation of SoCraTes UK, to everyone that delivered sessions, to Rachel for her top-notch facilitation of the event, and to the following people for the varied, wide-ranging, detailed, and down right funny discussions I had with you over the course of the weekend: Ian Russell, Teo Danciu, Nicole, Andreas, James Lewis, Raphael Ackermann, Dmitry Kandalov Erik, Sandro, Mani, Rachel, Emanuele Blanco, @sleepyfox, and Chris Whitworth. It was a pleasure meeting or catching up with you all, and I’m looking forward to seeing you again soon!