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 w...

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 ...

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 allo...

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 ou...

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. 

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  s...

Resources

Image
I often hear people talk about “adding resources” to a software team or project, and I really don’t like it.  And there’s two reasons why I don’t like it.  Firstly, we’re talking about  people . Sentient, caring, decent people. People aren’t resources. People should be treated with dignity and respect. And calling someone “a resource” is not a nice thing to do.  I am not a number... But secondly, the underlying assumption with “adding resources to a team” is that “more resources equals more productivity”. And that’s problematic. Teams are complex systems, and adding more people to a team, disrupts the team. It sends the system off on a new trajectory. And it might never make it back to where it was. So simply adding people to a team can completely change the team dynamic, and can completely change the team’s performance.  Another problem with the assumption is the idea that new team-members just need to be “brought up to spe...