Skip to main content
Improving Agile Development
        Through Tetris®
         Mark Daggett




                          Copyright © 2011 Mark Daggett. Some Rights Reserved

Saturday, March 5, 2011
Can learning Tetris improve the
          quality of your software
           development process?




                                         2

Saturday, March 5, 2011
You know Tetris




                  Photo Credit: fraskedesigns.blogspot.com   3

Saturday, March 5, 2011
Tetris is Crack for the OCD




                                          4

Saturday, March 5, 2011
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


                                                     5

Saturday, March 5, 2011
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]




                                                   6

Saturday, March 5, 2011
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
                                                                7

Saturday, March 5, 2011
1. Don’t Get Too Clever

                          Serial dependencies can easily turn
                          into a FAIL as other resources, such
                          as time, run out.




                                                            10
                                                             8

Saturday, March 5, 2011
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
                                                            9

Saturday, March 5, 2011
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.


                                                            10

Saturday, March 5, 2011
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
                                                                           11

Saturday, March 5, 2011
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
                                                                12

Saturday, March 5, 2011
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
                                                                     13

Saturday, March 5, 2011
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
                                                           14

Saturday, March 5, 2011
6. Fail Early And Often
                          Tetris is to agile
                          development as
                          “PITFALL!” is to the
                          Waterfall method.




                          Ironic Name I Know
                                           17
                                           15

Saturday, March 5, 2011
6. Fail Early And Often




         START OVER HERE




                           DIE HERE
Level map of PITFALL!                 16

Saturday, March 5, 2011
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
                                                                   17

Saturday, March 5, 2011
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
                                                                  18

Saturday, March 5, 2011
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
                                                                   19

Saturday, March 5, 2011
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
                                                             20

Saturday, March 5, 2011