5. Tetris Is Serious; Seriously
Developed by Alexey Pajitnov to test
arti๏ฌcial 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
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]
6
Saturday, 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
7
Saturday, 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
8
Saturday, 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
9
Saturday, 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.
10
Saturday, March 5, 2011
11. 3. Maximize the Work You Are Not
Doing
Tetris pieces can be rotated clockwise and counterclockwise.
Ef๏ฌciency is knowing the fastest direction to rotate the piece
to ๏ฌt your stack.
Rotating Left Desired Orientation Rotating Right
3x as long to rotate
13
11
Saturday, 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
sacri๏ฌcing quality) should be.
Developers need to know the strengths and weaknesses
of their technology stack.
14
12
Saturday, 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
13
Saturday, 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
14
Saturday, 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
15
Saturday, March 5, 2011
16. 6. Fail Early And Often
START OVER HERE
DIE HERE
Level map of PITFALL! 16
Saturday, 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 ๏ฌrst. This ensures that you work
directly on the feature in question and not any of the
ancillary systems.
19
17
Saturday, 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
18
Saturday, 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
19
Saturday, 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
20
Saturday, March 5, 2011