AGILE GAMES

Logo Maze (Why We Test First)

AGILE GAMES

Logo Maze (Why We Test First)

Timing

20-30 minutes

Materials

  • 1-pack of sticky notes
  • pens for each group of 3-5 people
  • dry erase board, table, window, or wall to set up the maze

Instructions

Explain to the audience that we’re going to play a game that allows them to program a robotic turtle to navigate through a maze, as pictured below. There are four simple commands in our programming language: forward, forward until it hits a wall, right 90 degrees, and left 90 degrees. You will use the arrows as pictured as symbols in writing your program. We’ll need at least two groups of 3 – 5 people, so please pick your group.

Group Instructions

  • The picture is to-scale, with a turtle being one post-it note tall. I’m also creating the same maze out of Post-it notes here (you’ll do this as they write their code).
  • Each team must pick some programmers and an artist.
  • Artist: please draw a turtle on a Post-it note. Put your team’s name on the turtle.
  • Programmers: select and write down each of the symbols required to get the turtle pictured here to the exit at the top left of the maze. We also need someone from each group to draw a turtle on a post-it note.

Facilitator says

  • What questions do you have?
  • OK, go!
  • Once you’re finished making the maze out of post-its, ask who’s ready. Groups often need a few more minutes–announce that they can have up to five more minutes and set a timer.

Running the simulation

  • For any team that is ready, collect their turtle.
  • Once you have ALL the turtles, ask the programmers to write their team name on their program, and pass their code to another team.
  • Meanwhile, line up the turtles at the front of the maze.
  • SPOILER ALERT–Now explain the algorithm by which you’ll test the teams. Every team is responsible for giving you, the CPU, one symbol at a time from the code they have in front of them. You’ll point to a turtle and the team with the corresponding code must give you the next symbol.  Since most (or all) teams wrote with the assumption they’d be the only turtle in the environment, the turtles would crash into one another. Turtles cannot pass through one another, so if a turtle hits another turtle, the command is aborted. Execute the directions as well as any three-dimensional physical robot would under the same circumstances.

Debrief

  • What happened here?
  • Why were there so many crashes?
  • What could you change to get your robot through the maze?
  • If you could add one or two commands to the language, what would they be?
  • Does anyone want to try again? (If so, see me after class!)

Learning Points

  • There are some environmental factors you cannot predict until you test in a realistic environment
  • Testing first leads to the discovery of these issues sooner, and leads to more robust code.

Facilitator Notes

Why is this called Logo Maze? It’s inspired by the plotters that were programmed in the Logo programming language, which was one of my first programming languages.
Can I use a more complex maze? Surprisingly enough, this is complex enough. Anything tougher would distract people from the lesson.

About Tasty Cupcakes

This content was originally published on Tasty Cupcakes, a community-run website founded by Michael McCullough and Don McGreal after they presented a series of games at Agile2008 in Toronto. The site’s tagline was “fuel for invention and learning.” After 15 years at TastyCupcakes.org, the content has found a new permanent home here at Agile Alliance.

The games, techniques, and approaches presented are here to use and explore. All we ask is that you tell others about us and give us some feedback on the games themselves. All of this work is licensed under a Creative Commons Attribution 4.0 International License.

Add to Bookmarks Remove Bookmark
Add to Bookmarks Remove from Bookmarks
Add to Bookmarks Remove from Bookmarks

Got feedback? Join the conversation!

Explore additional Agile Games

Description Organization and prioritization are two distinct activities that can be used to improve the quality of a product backlog. A simple linear list is difficult to prioritize. As well, many stakeholders are forgotten in the rush to deliver cus…
Objectives Learn about the attributes and duties of a role. Verify what your students already know about the subject (complemented by a short lecture). Let your students learn from each other. I've successfully used it with all three Scrum roles: th…
This activity was designed to teach continuous integration concepts and value without resorting to code, a continuous integration server, or any hardware or software.  While the participants will experience some frustration in trying to complete the …
While we've all heard about "pair programming", pairing is not just for programmers. In this activity, participants will use fiction/creative writing to understand the importance and value (and fun) of pairing. Timing Prep: Printing out the ha…

Discover the many benefits of membership

Your membership enables Agile Alliance to offer a wealth of first-rate resources, present renowned international events, support global community groups, and more — all geared toward helping Agile practitioners reach their full potential and deliver innovative, Agile solutions.

Not yet a member? Sign up now