This article is part of a series of blog posts on ways to structure high-performing software teams.
In Awesome Team Learning we discussed premises that enable a shift in team culture towards successful continuous improvement.
In Supercharge Your Retrospectives With TRIPE we looked at often-ignored aspects of teamwork context that either constrain or enable our high-performance.
In the Continuous Improvement Canvas we looked at an information radiator for managing the enormous increase in small learnings that come from a team that has successfully reached the space of continuous improvement.
Once we’ve made a new team working agreement and put it on our canvas, we’re now stuck with the burden of needing to “remember” the agreement. Every team at some point has had a team member say “whoops we made an agreement to do X but haven’t done it all week” at their weekly retrospective.
The answer to this is automation. We automate builds, we automate tests, we automate deployment, there’s no reason why we can’t automate working agreements. Let’s look at one way of doing this - but first some context building around mob programming.
Automating Your Work With Timers
Mob programming is the most efficient way for a team to maintain continuous improvement. Matthew Inman Cochrane has a wonderful presentation on how, if you stick with your retrospectives and truly eliminate all waste in your development process, you’ll naturally end up mob programming. So for today, I’m going to presume your team is mobbing.
Even if you’re not - if you’re pairing or solo coding - you can still easily use the process I’ll be describing.
In mobbing, you may have already found that using a timer is indispensable. Habits and norms break down as you get deeper into solving problems in the code. The timer keeps you honest. The best mob programming desktop timers automate rotations by blacking out the screen. The original Hunter Mob timer and Dillon Kearns’ Mobster are both great in this respect.
“Mobodoro” is a term coined by San Diego agilist Chris Stead. He blogged an excellent and thorough description of the approach here.
In brief, a “mobodoro” is the “pomodoro” timed work session (a rhythm of 25 minutes working, 5 minutes break, then repeat) applied to the context of mobbing.
Now that we have a timer automating our work and recurring disciplined breaks (the benefits of which Tim Ottinger has eloquently blogged on here), we can begin drawing more value from it.
What Else Can The Timer Do?
Let’s say your team has decided that your retrospectives are too big and intermittent, and you want to have smaller learnings more often. So you decide that you are going to do “micro-retros”, 1-5 minute check-ins at the end of every pomodoro. Great!
Forgotten Working Agreement #1: We Keep Forgetting to Do Micro-retros
But you keep forgetting to have them - team members tend to just jump up and hit the restroom, refill their coffees and teas, etc. If as we discussed in Awesome Team Learning, we go with the premise of Nobody Needs to Be a Better Person - i.e., be smarter or more patient or have a better memory - then perhaps we can make something else remember for us. How about the computer, which is basically a remembering machine!
Let’s use Dillon Kearns’ Mobster timer as an example. Normally, you enter the names of the mobbers below.
But now let’s put in the micro-retro habit too.
What this means in the timer, is that “retro” will be listed as the “navigator” at some point before they become the driver. We can just ignore that when that happens. Navigation is often shared by the whole mob anyway. When the retro switches to the driver, it’s time to chat for a minute or two. If we finish our micro-retro early, great, we can skip to the break.
You must adjust the number of mob rotations to include the “retro” member so that your work sessions still approximate ~25 minutes, and that the last rotation will end on the retro. You can do this by entering mobbers in multiple times like so.
You’ll notice the rotation time (4 minutes) times the amount of names (7) equals the work session length (28 minutes).
Is this a bit awkward and janky? Yes! Is this good enough for now? Yes! Now at last the computer will do the remembering for you.
Forgotten Working Agreement #2: We Keep Forgetting to Ask Our Clever Context-Resetting Questions
Let’s say it’s come up in your team’s retros that you tend to “drift” while working on a story, or unconsciously find yourself prey to unexamined assumptions, and end up solving a different problem than is asked for in your user story.
Out of a retro you came up with a strategy for adapting to this challenge - you made a set of index cards with a series of questions on them.
“What is the larger goal? What problem are we trying to solve?”
When we start a new mobodoro and remember to ask them, these questions are so useful that our team decides to piggyback another fix on top of them - coming back from mobodoro breaks, it can be difficult to reset the context of our work. Some mobbers still are thinking about it, some have completely forgotten, and maybe there are even conflicting recollections of what we were working on anyway. So we add, “What were we just working on last? What is next?” so we all are on the same page.
Of course, the real issue is now we don’t always remember to ask these excellent questions for kicking off our work sessions - maybe we only remember to ask them for a third of the mobodoros (if this sounds like I’m speaking from experience - well, I am.)
So what tool do we have that is an expert at remembering things? The computer! Let’s stick them in the timer.
We’ve put all four questions in one rotation slot - that seems smarter than giving each question it’s own 4 minutes. But who knows, we might change our minds as we collect data in our recurring micro-retros. Notice we’ve correspondingly expanded the work session by one rotation. We’re still pretty close to 25 minutes - close enough is good enough.
Elevating the Good-Enough-For-Now Habit Automation
Later on, perhaps we’ll decide to do automation “for real”. In a learning session or for hackathon project, we might want to create our own timer that more elegantly incorporates functionality like this. Or we can fork the Mobster project itself - but there are many timers out there. For remote mobbing, I’m also a big fan of tools like this mobbing timer that creates a shareable timer link for each member’s browser.
Wait - Why Does This Feel a Lot Like Paper-prototyping and the MVP Mindset
Because good process design is good process design! And successful solutions in complex adaptive systems - like the complex sociotechnic space of software teams - can often apply up and down levels of scale and across different contexts.
That’s something to think about right there.
Through this habit automation mindset, we are, piece by piece, creating a flow-enabling cognitive environment for our team - our own “training room in the Matrix” - that will catch and nullify all our individual foibles and allow us to be excellent together.