Home > agile > Play Games, Create Software

Play Games, Create Software

Agile software development is a cooperative game. At least Alistair Cockburn thinks so. I share his opinion and want to dig deeper. There are two words in the definition: game and cooperative. Let’s open the dictionary (isn’t it a silly trick to start a post?):

Game

game

Ha! Now it is clear why luck is important in software development at least. There are 2 more serious and interesting words in this definition: play and skills.

Let’s skip the details and go right down to the real meat. I have a theory. It is very simple, but my short experience proofs it. Here it is:

Developers who play games better are better in software development as well.

Why is that? Well, because software development IS a game. There is no elegant formal proof for this theory (so far, I am drafting it), but I have some in-vivo observations and some ideas behind.

Let’s take a non-cooperative game like table tennis. What do you need to do to play table tennis really well? Just 3 things:

1. Like table tennis.
2. Like to win.
3. Train to sharpen your skills.

If you are a decent player, you already have 2 very important skills for software development:

1. Know how to set goals and how to reach the goals (and what does it mean). In table tennis the goal is to win. In software development the main goal is to create a working software. You can directly apply your passion and feelings toward this goal. You are good at table tennis, why not be good at programming? It sets a goal-oriented mentality and helps a lot.

2. Know how to improve and maintain your skills and why it is important. I bet you knew nothing about top spin and dirty tricks as you stood by the table first time. I bet you knew nothing about OOP looking at first lines of code in your life. But you mastered the top spin. And you got OOP eventually. It is all about learning. Games help to set a learn-oriented mentality and that is huge.

I know a person who is equally great at various games: from Quake 3 and chess to table tennis. I believe he will become a great software developer. And I know people who don’t play games (almost), and I don’t think they will really rock sometime.

Now let’s dissect another word.

Cooperative

cooperative

Mutual assistance and common goal are nice phrases. Cooperative brings team into the game and it makes huge (really HUGE) difference. You may play games and be a real star, but you may just suck at team games. There are people who are great software developers, but poor team members. They can hack alone and create nice staff, but can’t maintain communication with the other team members, don’t like to assist and pursue their own goals only.

Now imagine that you like to play software development game. You know how to win. You like to help others if it leads to a win. You are sure that your teammates will help you when needed. You share the common vision with the team. How cool is that? Do you want to work in such a place?

Now it is obvious that

Developers who play cooperative games better are best in software development.

It means you can (should?) play basketball, or football, or water polo, or whatever as a team to improve your cooperation as a team. It helps team to jell. It helps people to know each other. It helps leaders to emerge and lead the people. It helps to find people who don’t care. I understand that it is hard to find a game you all can play, but it is worth trying.

Disclaimer. Every rule has exceptions and sometimes you come across great software developers who don’t like games (and sport) at all, but I am curious enough to know what are they good at apart from software development? Maybe they write poems? Or maybe they paint like Monet? Are there parallels between art and software development? It is an interesting topic indeed.

Categories: agile Tags:
  • Howdy

    I have noticed that people that play video games have improved focus.

  • indigo777

    You can draw a whole array of parallels between art and software development and sports games. Art is about creating on your own. You rarely hear about a cooperative art, if at all. I believe there can be loners – artists and developers, and team guys. It depends on a personality. Being cooperative or not cooperative for any given team member does not exactly mean a final decisive contribution to the success of the whole team. Next, on winning: A win can be obtained in a various ways – this brings along a huge topic of HOW you create a working software. Is your code UGLY but working? Or is your code working and nice? Same with sports games: what do you care about more – to win gracefully, playing actively, creating your game, approaching the net as in tennis (vs ping-pong) – or sitting at the baseline just hitting back defensive shots counting on your opponent's errors? If you like to win that way, you can play with an opponent who is even more defensive – what a game of errors that would be? Hardly possible to watch. I'd say that people who master some sport for their lifetime, or practice some other activity in their life like music, dancing, photography, painting etc. with on-going aspiration – they're just more prone to consistent results in any other activity they might want to engage themselves in. And – watch out if they like to win ugly or gracefully (on winning ugly in tennis, check out the book by Brad Gilbert. This could be a subject for another discussion :)

  • Steve Smith

    In your article most of your examples are sports, not merely games. There are plenty of competitive and cooperative strategy, computer, board, role-playing, card, etc games that I think also make your point, not to mention being extremely popular among many software developers. At the company I founded, agile consulting firm NimblePros.com, the team regularly (one day/week at lunch) play boardgames together, and games are even used as part of the interview process. So, I definitely agree with your premise.

  • http://twitter.com/mdubakov Michael Dubakov

    I mentioned chess somewhere, and in fact I believe it is does not matter whether it is sport game or any other game, so I agree with you definitely.

    And could MMORPG be cooperative game? Maybe :)

  • indigo777

    ‎”You can discover more about a person in an hour of play than in a year of conversation.”~ Plato