This kata is designed to work on mastering your IDE and your execution speed, as well as your communication in pair.
This kata is designed to be played in pairs (but you can also play it alone if you must, and it also work in small mobs).
There are several stages, you can do them in any order. Your goal, as a team, is to perform them the fastest you can. You can see that as a video game speedrun, or rallying.
Here is how a stage is played:
- Define who will drive, and who will navigate for the stage.
- Perform a reconnaissance run (not timed)
- Discuss on what strategy you should apply for the first run.
- Perform the run. Write down how long it took.
- Discuss on what could be improved.
- git reset --hard
- Repeat.
- The stage is over when you have improved your initial run time twice.
As a driver:
- Focus on typing.
- Make sure you use all the shortcuts you know.
- Let your IDE do the work!
- Ask your navigator for guidance during the run, so you can focus on going fast.
As a navigator:
- During the reconnaissance run, write down steps, directions, useful tips.
- During a run, give the information the driver needs to be fast. Try to give the right amount of informations (not too much, not too little).
- Observe your driver, so you can provide useful feedback to improve the next run.
- Suggest new ways to tackle the problem in between runs, shortcuts, refactorings or steps you thought about during the run.
- Be kind when giving feedback.
- Try to spend the right amount of time for you during the reconnaissance run. Go too fast and it will be hard to perform a good time during the runs. Go too slow and you won't have much time left to perform many stages.
- Perform a 5 minutes retrospective between stages in pair, to see what went wrong, and what worked well.
- Switch roles between stages.
- Do not try to compare your times with others, since your code will end-up in a different state.
- Maybe have a look at some IDE cheat sheets. Here is IntelliJ IDEA default keymap
- Yes, copy/paste from a previous run is considered as cheating.
For each stage, instructions can be found in the source code. You can also find them here.
Uncomment the tests, and make them pass.
Refactor until there is no else, you think the code is clean, and all the tests pass.
Remove all the code duplications.
Make this code clean.
Refactor this code until all methods body is <= 5 lines, and you find the code clean.