Is Software Development Just a Game?

Agile Software Development: The Cooperative GameI am reading Alistair Cockburn’s book Agile Software Development: The Cooperative Game 2nd Edition.

I definitely buy into the game analogy – it provides an opportunity for deeper insight than the more traditional analogies to engineering processes, house building and the like. Alistair settles on rock climbing as his choice of good analogy. But for me, a team sport like soccer, hockey or basketball hits closer to home.

One thing I have to say right off the bat is that the word “game” as an analogy bugs me. The name suggests a lack of seriousness. It reminds me of how the writers of the agile manifesto selected “agile” rather than “light weight” (See pp 382-383). I think we need to play the name game and come up with a more serious name than game.

Alistair suggests that software development is a goal seeking, finite, cooperative game. Let’s deconstruct this with a team sport analogy:

Goal seeking:  A team sport always has the ultimate goal – to win. But the analogy is stronger. Teams can have other objectives like improving our rebounding, winning the next quarter, making the playoffs and so on. Good software teams should similar objectives like improving our test coverage, completing all the stories in the next iteration, and getting out a functional release by the end of the quarter. Notice how all these objectives can be SMART.  

Finite:  Almost all team sports have well defined limits including playing conditions, duration, team size and so on. Except possibly for cricket which still baffles me.

Cooperative:  Winning teams require personal inter-dependence. You need to trust your teammates and be able to count on them. When I think of really great team players like Sidney Crosby or Steve Nash what amazes me is their total awareness of where everyone is and where they are going.

But the main reason I like a sports team analogy is that you can quickly use it to point out the futility of detailed plan-driven software projects.

Stanley CupImagine you are a coach setting out to win game 7 of the Stanley Cup finals and planning each line change, each play, every face-off, fight and so on in advance. I think you would be having some lonely summer rounds of golf. As a winning coach you would make sure every player embraces the strategy that you feel can win. You count on the training, experience, skill and judgment of your team to adapt to whatever the other team throws at you.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • del.icio.us
  • StumbleUpon
  • Reddit
  • Facebook
  • Google Bookmarks
  • Slashdot
  • Technorati

2 Comments

  1. dwhelan:

    I think there is plenty of insight to be drawn from this analogy.

    For instance, really good team players seem to always know where everyone is and counts on them being there.

    Scott Ambler talks about “specializing generalists” and I have really come to belive that this is key since technology moves so quickly. I remember watching Steve Nash get a 3 point play, an assist, a steal, a rebound and draw a charge in less than one minute. We need our teams to drop the functional silos that constrain us and just focus on delivering stuff.

    One downside is that it does not impact people powerfully if they have not participated a lot in team sports. I am a very competitive person so the analogy resonates with me. Oh well, an analogy is just an analogy – nothing more.

  2. Chris Jones:

    very interesting, i find myself comparing software development to other professions all the time. for some reason sports and programming have a lot in common in terms of process (at least the way i see it). great post!

Leave a comment

*