Skip to main content

Coaching is a transferable skill

It's been interesting over the last year for me as I explore where coaching for software teams and  coaching for sports people overlaps. This year I got to be coach for a Roller Derby team which is the first time I've called myself a coach for more than a brief workshop. In my day job I'm involved in many activities that have nothing to do with coaching so I rarely call myself an Agile Coach. But to that sports team I am the coach. And while  I've been involved with Roller Derby for 5 years I have very little training in coaching sports teams so I started applying all the things I've learned coaching software teams.

The Empire - Roller Derby team

We built a manifest of shared goals
I can't take all the credit for this one as the team created one before I joined them as coach. But I couldn't be more happy with it as that was one of my first goals. I wanted something that helped defined who we are as a team distinct from other skaters and teams. I also wanted to spell out what our values were to make it clear what my coaching goals should be and should not be. The team wanted to be taken seriously as a competitive team. They also wanted to value the contribution of every team member equally. I've experienced similar goals with software teams that were trying to come out of obscurity or a position where they felt they were not getting respected by the larger organisation.

We frequently inspected and adapted
Often at the end of doing a drill I would bring people together to discuss what was working for them and what wasn't. Experimentation at training is actively encouraged as we try things out as individuals and as a team to see if something new is a better fit. Then after a game we will again talk about what was working and what didn't during the game. What are we doing well that we should do more of? I try to embrace what Woody Zuill calls "Turning up the good" to keep building a positive message rather than focusing too much on our weaknesses. I never called it a retrospective but in my head that's what I was facilitating.

I would embrace feedback and adjust my own actions
Sometimes during a drill an experienced skater would say something to me like "They're not doing X"or "We need to focus on Y to get this right". So I'd take than on board and sometimes use that in our very next drill. It's not a criticism of me or the people they are observing. It's an observation on what we could be doing better so let's do that now!

I would observe where the team is at to direct what to work on next
It can be very tempting to look at the plays top level teams do and ask your team to try and do that. But it's too much too quickly. Where are they at skill wise? What small steps can they make to get a little better? What strengths can they leverage to help them get there? It meant sometimes ignoring feedback from experienced people as they would want people doing the high level skills they have already mastered. But the team as a whole may not be ready for something that advanced and needs to build up towards it.

Sometimes it's valuable to just practice basics as a team
Just like you can use a programming Kata to get a team learning TDD, Pair programming or Mob programming. Going through basic drills as a team helps a group of individuals adjust to being a team. There was only a handful of people that came with the team from last year so for most it was a big adjustment. And I've seen with software teams that even changing one person can have a huge impact on the dynamics within a team. Give them a safe space to explore those new dynamics and figure out how to best make it work.

Happiness is a leading indicator
I never enforced attendance or got angry at people for being late. No one was being paid to be there so I knew it was important to keep things fun and rewarding. But for me it was also an important indicator of where people where at. If someone stopped coming to training I could ask them if anything was wrong offline and see if there was anything within the team I needed to address. If a things dropped back more generally then I could try and find out if there was something in the team or about the training that was putting people off.

I would definitely recommend any Agile coach try their hand at coaching in a different field. The differences and similarities can help inform how you approach coaching in general. I've also found it useful to talk to other sports people about where these practices overlap. Training an experienced athlete is often asking a series of questions to open their mind to ideas. Much like coaching experienced developers.

Popular posts from this blog

Setting up Fitnesse on Ubuntu in 7 steps

Some pretty basic steps but just to make sure it's here for everyone to see. Setting up fitnesse and running the jar is easy enough. Just go to and get started and do it on your desktop just to see it in action. But for me that wasn't good enough I wanted it to run as service on ubuntu.

I stole a few tricks from how ubuntu runs jenkins and setup fitnesse a similar way.

1. Create a user and group for fitnesse (optional)
I didn't do this because I wanted tomcat, jenkins and fitnesse all running as the same user. Call it laziness to avoid any permissions classing but it doesn't change the process that you need to create or choose what user you're going to make it run as. Don't make it run as your user or root!

2. Download the jar file and place it in /usr/share/fitnesse
Make the folder too of course. It can belong to root as long as the fitnesse user has read access

3. Create the folder to run in at /var/lib/fitnesse
Fitnesse user needs write…


So most of the tests I'm writing now in Fitnesse are using RestFixture. Being able to do all this black box style testing has helped me get a lot of tests up and running without having to change the existing code base. Now I've taken a step future with my own little fork so I can use scenarios and build nice BDD style scripts. But first I want to give me own quick guide to using RestFixture

Step 1: Installing
You can dive straight in by grabbing the latest jar files for RestFixture here
If you know what you're doing can get the nodep version to work nicely along side other libraries you may be including in Fitnesse. But I grabbed the 'full' version and unzipped it into a RestFixture folder alongside my FitNesseRoot folder.
Step 2: Write your first test
I took advantage of the built in Fitnesse api as a basic test and wrote a page called RestFixture with the following contents
!define TEST_SYSTEM {slim} !path RestFix…

Can Programmers Test?

I spend a lot of time working closely with programmers on the software testing process. Much of my career mission is to get more people embracing techniques like Test Driven Development. As I push more and more of the testing demands onto the developers I sometimes run into people who say they need a tester for "independent testing".

It's a concept I'm familiar with from early days in my career. A tester can look at the system and requirements with fresh eyes and find all those cases the programmer didn't consider. If the programmer does all the testing they'll be too tempted to just test the cases they know the code is handling and not discover any new areas where bugs may be hiding. The problem I have with this idea is I never was that type of programmer.

As a programmer if I didn't test something it was purely out of laziness and arrogance. I'm a big supporter of Larry Wall's three great virtues of a programmer. A lazy programmer will do their …