In this experience report I hope you’ll learn what an unconference is, and why this amazing event might be of interest to you as a developer, tester or manager. Read on if you’d like to know more about TCR, how Lego can help with security awareness and… BaconSnake!
In contrast to a conference, where curated, and usually sponsored speakers give their presentation based on a fixed schedule, at an UNconference everyone can host a session and the schedule is built together.
You might think that the quality of the sessions might not be very high. But because they last as long as they need to, there’s way more asking questions and insightful discussions, so you end up learning more.
SocratesUK in particular is a good mix of the OpenSpace concept which we also use in SocratesBE MeetUps, and retrospectives so we can all improve the next day or next Socrates.
I didn’t go to all of the sessions, because I was sometimes hosting my own and I didn’t have to use The Law of Two Feet (if you’re not learning or contributing in a session: you have your two feet, use them). But here are the market places of friday and saturday.
My travel buddy Vincent Verhoeven wanted to kick off the first day of the conference with a coding session. And what better to start with a CodeKata using Test && Commit || Revert.
If you haven’t heard about TCR yet, Kent Beck wrote an article about what it is, I suggest you go read it :)
I did a kata with TCR before on last year’s socrates belgium, and wasn’t really convinced. This time I think it was an even worse experience. It really feels too awkward not to be able to write a failing test, so I really need to do this even more.
I got to pair with Dmitry Kandalov, who happened to have written the TCR IntelliJ plugin, which is already a big step up of a shell script. You don’t lose your test results for example, and you don’t have to wait for IntelliJ to pick up the external file changes.
Here’s a recording of Jess Pumphrey and Dmitry Kandalov trying out TCR at SocratesUK:
In this session Dmitry showcased the possibilities of Kotlin Native in a mindblowing livecoding presentation.
Mindblowing both because of the ease at which Dmitry coded, and because of what you can achieve with Kotlin Native and how easy it is to integrate with other C libraries.
Did code ever make you cry?
If you answered yes to this question, it might be good to read Jess’ blogpost. You’ll discover a bunch of problems or issues you might not have thought about, and the ways to fix them.
The premise of this session was that we learn a lot of good practices at conferences, but how do we get our teams to pick these up, and have these practices stick. And with all participants present we were going to collaboratively find methods or tricks to make that happen.
After getting to know each other a little bit better, Billie talked about some existing models like Patrick Lencioni’s 5 Dysfunctions of a team, Westrum’s Organizational Culture typology (Pathological, Bureaucratic, Generative), and four (of 24) key capability metrics. These allow us to actually measure and guide improvements within our team and/or organization.
You can check out her well-groomed and really impressive wiki page on this session, with all the resources you’ll need to get started for your own team.
In this session hosted by Sharath & Danny, we produced a Value Stream Map of software development within an organization (from ideation to usage in production), and had to come up with corporate bullshit items from our own experiences. Ironically, we put those post-its on the line of printed wallpaper that read Put heart and soul into everything you do.
Eventually this was more of a venting session for everyone present, and a good reminder of why I’m happy I left my old job to come work at Kunlabora.
Yvan facilitated a Decisions & Disruptions workshop, giving us more insight into the world of security. More specifically how different attackers have different mitigation strategies, and how to prioritize these.
Most of all, this session was a lot of fun, and after the hype it got from day one, a lot of people were present the next day to participate.
The game/simulation is CC-BY-NC licensed, so you can run it in your own team/company. Much love for the people behind this effort, Dr. Ben Shreeve & Prof. Awais Rashid! <3
This was a pretty exhaustive workshop where participants got to dive into Consumer Driven Contracts and using Pact. I only joined this one halfway, and had some issues installing the correct versions to participate properly so I ended up pairing a little bit with Callum Rogers.
Another workshop, again using Snake as a problem for learning about Functional Reactive Programming.
Using Sliding Window to expand the snake when it eats a
apple bacon was particularly interesting.
Again, the workshop is opensourced on github, so feel free to play around with it yourself!
In this last session of the unconference, Maarett facilitated exploratory testing Sharath’s Rock-Paper-Scissors game by playing against 3 different bots (computer opponents).
And we did this in Mob Programming fashion: having one Driver who followed instructions from one Navigator that listened to what the rest of the participants had to say. We rotated every 5 minutes I believe.
We ended up discovering all three strategies for the bots! Yay!
Main insight for me was that we were reusing test strategies (use one input, repeat x times, change fixed input, repeat x times again and note difference), and we were reusing behavior of a previous bot we tested. This can be both good and bad for exploratory testing.
And a more important thing I learned was that we tend to use a high number of tries where we could have tested the same using much less tries. For example, we started off by testing the first bot (which ended up being a random algorithm) with 20 tries, and we kept those 20 tries for all our next attempts, where 3 or 4 would have sufficed.
Some of the sessions I missed out on and wish me or my clone could’ve gone to.
Good thing there’s the SocratesUK Wiki on GitHub which has community-driven summaries about most of the sessions.
My friend Vincent and myself travelled to Wotton House in Dorking by car. Which was very interesting because at some point we had to drive our car on to a train, which would then travel to the UK, underneath the North Sea… Which might sounds like a science-fiction novel, but it’s real.
After driving on the left side of the road for a while, we ended up at the venue.
I was among peers, both as a developer and an aeropress lover.
In the evenings people organized boardgames, outside games like frisbee, giant jenga, walks in the beautiful countryside, or discussion groups inspired by sessions.
By checking out this photo album by Esko Luontola, you’ll get an even better idea of the atmosphere.
If this post got you hyped for participating in the next Socrates event, you might want to go to the event that spawned the others: Socrates Germany.
Or register for Socrates Belgium that’s happening from the 14th to the 17th of November this year. Hope to see you there! The Global Day of CodeRetreat’s 10th anniversary happens within those same days, so I’m sure someone will host at least one session.
If that’s still too far away for you, you might be interesting in joining the SocratesBE OpenSpace MeetUps that get organized every now and then.
In the meanwhile, check out this YouTube playlist of videos recorded at SocratesUK.
As I mentioned, I gave some sessions of my own.
In which I roleplay three different characters with different toxic traits, and the participants can discover how they react to (and deal with) those characters.
A session where I explained a personal model of what motivates me and which things have an impact on the cycles.