Students have a better understanding of the strategies they employ during software development and the implications of investing effort to gain an advantage or paying a price to take shortcuts.
Students will get more insight in
- technical debt and investment,
- how to assess changing conditions and impediments,
- how individual and collective strategies change as projects progress.
Task 1: Introduction
While agile methods are very appealing to practitioners, and getting a lot of attention in industry, software development organizations are facing difficulties in applying these methods in projects of increasing scale. A key issue that has been identified in large industrial settings is the lack of attention to architectural design and development. One of the tenets of agile software methods is to focus on delivering working software early and often, to demonstrate observable benefits to the end users. This is frequently achieved by focusing on the "skin" of the system, and deferring or ignoring some of the deeper architectural issues. By taking shortcuts, projects incur "technical debt" that grows; some projects may even collapse under the weight if the debt is not recognized and properly managed.
Learn more about Agile Approaches and "Technical Debt" by reading the following webpages (you can find the URL's in the Documents section)
- The Wikipedia page on "Agile Software Development"
- The webblog of Steve McConnell on "Technical Debt"
Task 2: Playing the game
Hard Choices takes about an hour to play and includes a debriefing session afterward so that players can discuss their playing experiences. The game may be played by two, three or four people. Players compete against each other and race to the finish. The player with the most points at the end of the games wins.
Make groups of four people.
The Hard Choices game board represents the activities of a software development release. In their quest to become the market leader, players are competing against each other to release their product to the market place. Players earn points for landing on a square with a tool (representing rewards for investing in technical infrastructure) or by not finishing last (representing rewards for speed to market).
The materials for play include the Hard Choices game board, a six-sided die, markers that players move around the game board, tool cards as counters for rewards, and bridge cards as counters for penalties.
Rules of play
The goal of the game is to accumulate the most points. Players accumulate points by crossing END ahead of their competitors and collecting tool cards. At the end of the game, the person with the most points wins.
- One of the positions on the board is marked START and the other is marked END. All players place their markers on the START position. Players begin with zero rewards and penalties.
- Each player rolls the die to determine who goes first; highest roll wins. Play then proceeds clockwise.
- During a turn, each player rolls the die to determine how many spaces to move:
- The player moves his/her piece the number of spaces indicated on the die minus the number of penalties incurred (i.e. the number of bridge cards that the player holds).
- A player may choose to move in any one direction, including reverse direction, within a single roll of the die. This would increase the opportunity for a player to land on a tool card, at the expense of making progress on the board.
- The first player to cross END gets 5 points, second gets 3 points, and third gets 1 point. Players also get 1 point for each tool card. To enter the END cell the player should roll anything equal or greater than the number of remaining squares. The game ends when one player remains on the board. That player stops and doesn't get to take any more turns. He or she gets points for each tool card but doesn't get points for crossing END. The player with the most points at the end of the game wins.
Hard Choices Squares
When a player crosses a "hard choices" square, he or she must decide whether to go over the shortcut bridge or to go the long way and try to collect one or more tool cards.
Hard Choices - Bridges and Tool Cards
- Bridges count as one movement, similar to squares.
- A player who chooses to go over a shortcut bridge must collect a bridge card. Each bridge card subtracts one from subsequent rolls of the die.
- If a player lands on a tool square
- If the player does not already have a tool card, the player gets a tool card.
- If the player already has a tool card, the player may play a tool card (returning it to the deck) and get a free turn or collect another tool card.
- A player may only collect one card for a given square within a given round. That is, the player may not use the ability to move backwards to re-cross a tool square and collect a second card for that square.
Task 3: Debrief Session
A debrief session should be conducted at the end of the session. Conducting a facilitation session gives the players an opportunity to discuss analogies to software development.
"Playing Hard Choices stimulated a lot of discussion and reflection on the current real-life strategies for balancing quality, budget / schedule, and features on a project." - feedback from a game session hosted at Agile Vancouver.
The following questions should be asked:
- What just happened? Gather data.
- So what? Generate insight.
- Now what? Figure out what to do differently.
What Just Happened?
Some observations might be:
- I was learning as I went along.
- I needed to reevaluate my strategy at every roll and take into account where the other players were on the board and how many cards were in play.
- When I saw the other person skipping a turn to retire bridge cards, I did the same thing since I was at a similar spot on the board.
- I took every possible shortcut.
- I kept changing direction during each role to be able to collect as many tools as possible.
- I never turned in a tool card since I thought the points were more valuable than the extra turn.
- I traveled over the earliest bridge but that didn't help. If I had taken the bridge later I would have been better off.
- The die did not help me and I kept rolling very low numbers, hence no matter what, I could not advance or collect cards.
- Shortcuts hurt more if you take them early, later on they are not so bad.
- Bridges provide short term gain but slow you down in the long term.
- It is human nature to take a shortcut.
- Finishing first doesn't mean you win.
How do your experiences in the game relate to the strategies you employ during software development in the face of uncertainty? How does this relate to the choices you make - in investing effort to gain an advantage or paying a price to take shortcuts - and their implications?
Key concepts to discuss include
- Decisions, strategies - Why did the "Short-cut Takers" and "Card Collectors" choose that strategy? Did you switch categories over the course of the game?
- Release planning - discuss modeling the employment of strategies and the flow of decision making, using the game to simulate software design from the point of view of making (or not making) decisions and the consequences over the course of a software release (or multiple releases). Are the strategies employed typical of the projects you are involved in?
- Technical debt, architecture investment - discuss strategies in terms of the categories of technical debt elaborated by Fowler and/or McConnell, in particular short-term versus long-term. Those who sat out a turn to pay back the debt could be employing strategies to maximize their long-term wins, especially in the second round. How can architecture provide options?
- Refactoring, architecture redesign - discuss what this game suggests around strategies for incurring and managing technical debt. Players have the choice to stop and refactor (skip one or more turns depending on the amount of technical debt to be repaid).
What will you take away from the experience and what you might do differently as a result?
Some takeaways might include
- A new word to describe a problem or experience, such as technical debt. The metaphor helps people understand the problem and remember the concept.
- Finishing first isn't enough.
- Karma - what you did in the past carries forward.
- A better appreciation for the way debt accumulates - not making decisions has consequences and accumulates debt. As one player noted, "I didn't think that bridge penalties would affect movement the way it did."
- A new way to communicate with project members and managers about the relationship of investment and debt.
- Strategy (anticipation) in the face of uncertainty and competition (adaptation)