Posts

The Dérive and mob programming

About a year ago, I went to the Agile New England conference on Mob Programming (https://2018.agilegamesnewengland.com/index.php/mob-programming-conference). For some reason, I had booked crazy flights. I headed out from home at 3:30am to get to Boston... So I arrived in a fairly wired state. I took the bus out to Burlington. Because why wouldn’t I? Of course, I then found myself walking along the edge of the freeway for half a mile. And felt even more out of place. 

The conference itself was amazing. But the highlight was Jessica Kerr’s keynote on the Camerata and the origins of Opera (https://the-composition.com/the-origins-of-opera-and-the-future-of-programming-bcdaf8fbe960). I spent a great evening in the bar that night talking to Jessica and Llewelyn Falco about teleportation, beer, symmathecy, museums, healthcare... It was a good night. 

After the conference, I went through to Boston with a couple of other folk, and spent the day walking the Freedom Trail. This was a lovely guided…

Naming things and Cunningham’s Law

Naming things is hard. Naming things is very hard. And, in software, we often want to name things when we know least about them. We create a variable that we plan to use later. What should it be called? How should it be used? We only have a vague plan at this point. And plans, of course, can change. In my mob, we sometimes struggled to name things. And we would then fall into long discussions about what to call a variable. This often felt like bike-shedding, but we wanted a good name, so we carried on talking. Then one day, we came up with a new plan. If we couldn’t name something within ten seconds, the person at the keyboard would just hit the keys at random and produce a gibberish name. We would then use this unpronounceable name in the code, and move on. And, as we moved on, we would have to talk about the unpronounceable thing. So we call it by what is was doing, by how we were using it. And, often, the name would then become apparent. By not naming things in our code, by using a…

The Lyke Wake Dirge

Image
Many years ago, my brother lent me a copy of Julian Jaynes “The Origin of Consciousness in the Breakdown of the Bicameral Mind”. This truly is an amazing book, even if the main thesis is probably completely wrong. 
One of the core ideas in the book is that consciousness is essentially constructed of metaphors. In particular, we use the metaphor of physical space, of landscape, to construct our minds. We need language to express these metaphors, so Jaynes’ hypothesis is that consciousness developed *after* language. 
But I’m more interested in this idea of internal mental landscapes. We model our minds on the external landscape and we perceive the external as a reflection of our internal landscapes. 
This idea has fascinated me ever since I first read the book. 
Robert McFarlane discusses similar ideas in his wonderful book on walking, “The Old Ways”. By walking through a landscape, our minds spread out and takes on the shape of the landscape. We allow our minds to settle in to the la…

Programming, Fast and Slow

Image
In 2012, Daniel Kahneman published “Thinking, Fast and Slow”. It’s one of those books that most Agile coaches and thinkers own, but very few have read. Because it’s not an easy read. It’s long, for a start. But it also goes into a lot of economics and psychology which, even for a popular science book, is hard. And it’s a book summarising a lifetime’s ground breaking, Nobel-prize-winning research.  I read it over several months, and it was difficult. But I was already intrigued by these ideas. My brother lent me Julian Jaynes’ amazing “The Origin of Consciousness in the Breakdown of the Bicameral Mind” many years ago, and the idea that we function in a largely non-conscious way has been rattling around my head ever since. 
The central hypothesis of “Thinking, Fast and Slow” is that our minds have distinct subsystems that work In very different ways. Our conscious mind is System 2. It can reason, plan, learn. But it is expensive. It uses up lots of energy, so our minds avoid using it. Ins…

Mob Walking

When I was at the 2018 Mob Programming conference, I went on quite a few walks. Some of these were just lunchtime walks, but I also went on a more “organised” walk. These were really interesting and enjoyable, and were a great, unstructured way to meet people. 
At my work, I’ve been doing walking 1-2-1s with the folk I line-manage for a while. It allows for a much more natural, free-flowing conversation than just sitting in a meeting room. It also allows for silent contemplation in between topics. Silence can be very awkward in a meeting room conversation. 
So today, my team tried having a mob-walk.

Mobodoro

On our mob, we have started using the “Mobodoro” technique, which I picked up from Willem Larsen at Hunter. 
The idea is based on the “Pomodoro” technique, where you do 25 minutes of solid work, then take a five minute break. And repeat. 
 But with Mobodoro, we have a couple of minutes to plan, then we do repeat mob rotations of 2 or three minutes, adding up to 25 minutes. Then we do a quick retrospective on the previous 25 minutes, have a quick break, and then repeat. 
And for the break, we have a rule that we have to leave the mobbing area. Even if we just walk a few feet and back. 
The retrospectives have been great. Often we have nothing. Because we’re only retrospecting on the previous half hour. But quite often we find something small we can change: a better way of using our whiteboard; a new chair; changing the mob rotation time; buying some Lego to keep track of our work. 
The day seems to go much more smoothly, and at a much more sustainable pace. Two or three minutes break every …

Teamwork and the Human Current podcast

I listened to a great episode of the Human Current just recently, where they interviewed Cesar Hidalgo, and it got me thinking a lot about teams, and how they are complex systems, and how teams learn. It got me thinking so much, that I've listened to the podcast several times now. The first time, I was cycling to my choir rehearsal, and couldn't stop to listen to interesting bits again, so I listened to it again while sitting down at home as soon as I could!

The first stand-out quote for me was from Warren Weaver:

Complex systems are those in which the identity of the parts involved, and their interactions, cannot be ignored.

This is a really deep idea. We have gotten so used to the reductionist approach in which you can understand something by taking it apart, and looking at the individual components. And this approach works, as long as the relationships between components is simple and obvious.

But with people, the relationships between individuals is anything but simple and …