5 things agile developers can learn from the hockey greats

HockeyTeams in organized sports experience scenarios not unlike those that a software development team see on a day-to-day basis: overcoming obstacles, working together as a team, training, strategizing, keeping score, resourcing, among others.  As a highly-unskilled goaltender and defenceman, I have been able to experience both sides of this equation, and have been wondering what I can take from my recreational experiences to enhance my professional ones.  What can the great hockey players of our time teach us about how to do our job?

Hockey Skill #1: Practice

Professional hockey players don’t just show up at the rink and hope they’re ready for the game.  They don’t try to get better at their craft in the middle of a two-on-one.  Gretzky didn’t say “Take it easy, boys, I’ll see you at the next game”. This is their job, and as such, they know they need to practice, train, prepare, and then practice some more.  They need to be at the top of their game because they need to be better than the competition.  So do we!

While we can’t run passing drills and take faceoffs for 30 minutes straight to better our craft, what we can do is have time between our projects to practice our own skills.  Here are some things you can do to practice:

  1. Try to run a FedEx Day (Atlassian now calls these ShipIt days).  Get the team together and build something!
  2. Take a course to learn something new
  3. Write a blog post!
  4. Run an internal project.
  5. Fix some bugs in an open source project (or start one!)

Hockey Skill #2: Coaching

Hockey StrategyProfessional teams do not just have a bunch of players skating around on the ice, hoping they’ll win.  There is a plan.  The head coach and the rest of the coaching staff put together a high-level plan for the season, as well as a detailed plan before every game, and they don’t stop there.  They are with the team at ice-level, watching everything unfold.  The members of the coaching staff specialize in aspects of the game and take ownership of their areas of expertise.  As things change in the game, the coaching staff adapts the plan and updates the players.   The coaches run match-ups to make sure they have the right players on the ice at the right time.

Our agile teams need to work the same way.   Whatever the titles might be in your particular flavour of agile, you need leaders.  Your Scrum Master/Product Owner/Project Coordinator need to work together with the team to ensure success.  Here are a few coaching tips for the agile leaders:

  1. Come up with a high-level plan before every project.
  2. Balance your ‘coaching staff’ across different skill sets so they can bring different expertise to the table.
  3. Embed the agile leaders into the team on a day-to-day basis so that they can adjust the plan as things on the ground change.
  4. Communicate constantly with the team to ensure they know what updates have been made to the plan and know about any shifts in the project.
  5. Reward excellent performance.
  6. Identify strengths within the team and ensure these team members are matched up accurately to the tasks in the project.

Hockey Skill #3: Review the tape

Before any game, the team reviews the opponent and their tendencies.  Hours of footage are used to identify key players and strategic flaws, all of which provides input to the game plan.  Teams also review their own tape to look for weaknesses in their own play, and players and coaches will identify areas where they can improve, as well as plays that were successful.

In agile, we call this the retrospective.  If you aren’t running one already at the end of an iteration, and at the end of a project, you need to start now!  This is how we review our tapes, and find out what we can do to be better.  These are the three things to ask everybody to look for:

  1. What didn’t we do that would have helped us?  What should we Start?
  2. Is there anything we did that made it harder to do our job?  What should we Stop?
  3. What went really well?  What are things we need to Continue?

Hockey Skill #4: Short passes

Sure, it is pretty awesome when the d-man pulls off the big stretch pass to send in Ovie on a breakaway.  The crowd goes wild as the pass connects tape-to-tape!  Or, the puck gets intercepted in the neutral zone and the turnover leads to an odd-man rush the other way.  It’s a high-risk play, and high risk does sometimes have its rewards.  The game plan doesn’t get drawn up by the coaches that way.  They want the players making short crisp passes in a controlled break-out.  Make eye contact, make sure that puck goes stick to stick through the neutral zone.

Any agilist will tell you that co-location is the way to go.  Face-to-face communication, close proximity, more rapid understanding by more immediate communication.   Keeping that distance between each other short allows the team to ensure they deliver to the plan with the best possible situation.  Distributed teams are a reality, but each stretch pass we make on that team is risking another turnover: another requirement not properly understood by development, another story whose acceptance tests aren’t quite correct.

Hockey Skill #5: Crash the net

Crash the netWhen the fancy plays aren’t working, the team needs to start simplifying.  “Get pucks on goal, put bodies in front of the net, drive to the net” and a hundred other hockey clichés.  The main goal of this isn’t that it actually works better than slick passing and one-timers, the goal is that it starts building confidence in the team.  Simplifying usually results in more shots, more scoring chances generated, more positive activity around the net.  Maybe a lucky bounce gets a goal and the team’s momentum starts building in the right way.

Agile development teams need to do the same things when the project starts getting difficult.  Building complicated software systems sometimes requires extremely difficult architectures and algorithms, and this can build up frustration and stress on the team if these difficult tasks continue to pile up on the team.  Agile team leaders need to identify this when planning out a sprint and prepare a few stories that can be used to “crash the net” and give the dev team some simple tasks to build up momentum.  The iteration goal usually won’t be accomplished by this simple work, but these tasks can get developers and testers refocused and feeling good about the current iteration.

Putting the Skills into Practice

If you are a leader on an agile team, think about ways you can bring these skills into the team, if you aren’t already employing them.  As a team member, what changes can you bring forward within your own team or your own development process to start performing at an even higher level of efficiency?

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s