Improving Agile Development        Through Tetris®         Mark Daggett                          Copyright © 2011 Mark Dag...
Can learning Tetris improve the          quality of your software           development process?                          ...
You know Tetris                  Photo Credit: fraskedesigns.blogspot.com   3Saturday, March 5, 2011
Tetris is Crack for the OCD                                          4Saturday, March 5, 2011
Tetris Is Serious; Seriously          Developed by Alexey Pajitnov to test          artificial intelligence algorithms     ...
Agile Development Reasoning          Greater awareness of development costs          [resource management]          Tighte...
1. Don’t Get Too Clever                          Tetris rewards players for clearing                          more than on...
1. Don’t Get Too Clever                          Serial dependencies can easily turn                          into a FAIL ...
1. Don’t Get Too Clever                          Your chances of success are greatly                          increased wh...
2. Stay Low                          As your stack of uncleared rows                          increases, your time to make...
3. Maximize the Work You Are Not     Doing      Tetris pieces can be rotated clockwise and counterclockwise.      Efficienc...
3. Maximize the Work You Are Not     Doing          Many agile teams take pride in the amount of automation          they ...
4. Know Your Goal          In Tetris it is easy to focus on your score, as a          measurement for progress but that’s ...
5. Fix Mistakes NOW!                          A common problem in Tetris among                          players is to try ...
6. Fail Early And Often                          Tetris is to agile                          development as               ...
6. Fail Early And Often         START OVER HERE                           DIE HERELevel map of PITFALL!                 16...
6. Fail Early And Often     “Pitfall!” requires you to start back at the beginning of the     level each time you die. Thi...
7. Embrace Change          In Tetris the player only knows which piece is coming          next.          Agile development...
8. There’s an “I” in Tetris but not Team          Tetris is a single player unless you are competing against          anot...
THANKS!      Mark Daggett      Application Architect      Humansized Inc.      @heavysixer      mark@humansized.com      h...
Upcoming SlideShare
Loading in …5
×

Learn Agile Development Through Tetris

63,293
-1

Published on

Learn the essential concepts of agile software development though Tetris.

6 Comments
29 Likes
Statistics
Notes
No Downloads
Views
Total Views
63,293
On Slideshare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
171
Comments
6
Likes
29
Embeds 0
No embeds

No notes for slide

Learn Agile Development Through Tetris

  1. Improving Agile Development Through Tetris® Mark Daggett Copyright © 2011 Mark Daggett. Some Rights ReservedSaturday, March 5, 2011
  2. Can learning Tetris improve the quality of your software development process? 2Saturday, March 5, 2011
  3. You know Tetris Photo Credit: fraskedesigns.blogspot.com 3Saturday, March 5, 2011
  4. Tetris is Crack for the OCD 4Saturday, March 5, 2011
  5. Tetris Is Serious; Seriously Developed by Alexey Pajitnov to test artificial intelligence algorithms Can be used to measure conceptual skills of task analysis and resource management in players Can also measure a player’s visceral decision making process under pressure 5Saturday, March 5, 2011
  6. Agile Development Reasoning Greater awareness of development costs [resource management] Tighter integration between developers and stakeholders [task analysis] Ability to quickly change course on projects [response to pressure] 6Saturday, March 5, 2011
  7. 1. Don’t Get Too Clever Tetris rewards players for clearing more than one row at a time. This creates a chain of serial dependencies that need to happen in the right order to succeed. Serial dependencies cost your project time and resources as you wait for the right piece to arrive. 9 7Saturday, March 5, 2011
  8. 1. Don’t Get Too Clever Serial dependencies can easily turn into a FAIL as other resources, such as time, run out. 10 8Saturday, March 5, 2011
  9. 1. Don’t Get Too Clever Your chances of success are greatly increased when you work towards solutions that can be completed in many different ways. 11 9Saturday, March 5, 2011
  10. 2. Stay Low As your stack of uncleared rows increases, your time to make decisions decreases. This means you are more likely to make a poor decision in the future. The more time you give yourself the more likely your future steps will be well-reasoned In Tetris and in development cycles if you are forced to just react to impending deadlines you drastically reduce your ability to succeed. 10Saturday, March 5, 2011
  11. 3. Maximize the Work You Are Not Doing Tetris pieces can be rotated clockwise and counterclockwise. Efficiency is knowing the fastest direction to rotate the piece to fit your stack. Rotating Left Desired Orientation Rotating Right 3x as long to rotate 13 11Saturday, March 5, 2011
  12. 3. Maximize the Work You Are Not Doing Many agile teams take pride in the amount of automation they bring to their development process, through testing, deploying or documenting. Any process that can be done a faster way (without sacrificing quality) should be. Developers need to know the strengths and weaknesses of their technology stack. 14 12Saturday, March 5, 2011
  13. 4. Know Your Goal In Tetris it is easy to focus on your score, as a measurement for progress but that’s a red herring. Tetris by design is a game that doesn’t end so you can’t “win”. You don’t win your application by deploying it - you just clear your stack 15 13Saturday, March 5, 2011
  14. 5. Fix Mistakes NOW! A common problem in Tetris among players is to try to bury their mistakes Ignoring mistakes means players have less space remaining to work with, and therefore a higher likelihood of making similar mistakes in the future. Agile development focuses on refactoring code, getting rid of duplication, baroqueness and silos of code. A.B.R. (Always Be Refactoring) 16 14Saturday, March 5, 2011
  15. 6. Fail Early And Often Tetris is to agile development as “PITFALL!” is to the Waterfall method. Ironic Name I Know 17 15Saturday, March 5, 2011
  16. 6. Fail Early And Often START OVER HERE DIE HERELevel map of PITFALL! 16Saturday, March 5, 2011
  17. 6. Fail Early And Often “Pitfall!” requires you to start back at the beginning of the level each time you die. This is like the waterfall method, which reboots the development cycle for every requirement change. Tetris lets you fail quickly and let you restart where you left off. You can improve your technique and understanding of the game at any point of the play cycle. Agile development focuses on test driven development, and writing tests to fail first. This ensures that you work directly on the feature in question and not any of the ancillary systems. 19 17Saturday, March 5, 2011
  18. 7. Embrace Change In Tetris the player only knows which piece is coming next. Agile development says the developer should embrace change, be it shifting requirements, or deadlines. Just as the player is constantly scanning the game board the agile developer should be reevaluating previous design decisions looking for ways to refactor code and reduce complexity. 20 18Saturday, March 5, 2011
  19. 8. There’s an “I” in Tetris but not Team Tetris is a single player unless you are competing against another player. This is unlike programming, which at some fundamental level is a process of building off the work of others. The Tetris metaphor works only so far. The biggest factor in success or failure in an agile environment is how the team works together. 21 19Saturday, March 5, 2011
  20. THANKS! Mark Daggett Application Architect Humansized Inc. @heavysixer mark@humansized.com http://www.humansized.com Tetris ® is a registered trademark of The Tetris Company PITFALL! ® is a registered trademark of Activision 22 20Saturday, March 5, 2011
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×