Agenda 1. Review of TDD 2. New workflow: TCR (test && commit || revert) 3. Presentation of the kata: Fibonacci 4. First round to try… go!! 5. Second round to try… go!! 6. Opinions and feedback 7. Some downsides of TCR 8. Final recap 9. Interesting links 10. Dinner and networking!
A new workflow: TCR Popularised by Kent Beck after post in September 2018: https://medium.com/@kentbeck_7670/test-commit-revert-870bbd756864 Experiment in Code Camp by Oddmund Strømmer, Lars Barlindhaug and Ole Johannessen Basic idea: test && commit || revert
Reminders for the set up ● You need Git installed ● Disable the auto-save mode ● Be sure your files get refreshed in your IDE (or you can force it easily) ● If you’re not using Java, Ruby or Python, there is a generic template
Bonus track ● Have you tried recursion? And memoization? https://medium.com/@nothingisfunny/memoization-improving-recursive- solution-for-fibonacci-sequence-problem-c02dab7a74e5 ● Try another kata, e.g. substring kata:
Opinions and feedback ● Did you learn anything new? ● Which was your main pain? With what did you struggle specially? ● Would you apply this during your daily job? Why? Or why not? ● Even if you don’t apply TCR tomorrow, is there any other practice you would consider to apply?
Some possible downsides of TCR ● What if it doesn’t even compile? ○ Problem: a typo/syntax problem triggers the revert ○ Possible solution: include previous step to build/compile, BTCR ● Vanishing tests ○ Problem: everything reverts, including the tests ○ Maybe not a real problem: it forces you to nano-steps when writing tests! ○ Possible “solutions”: ■ commit the test first being pending/skipped ■ pass the negation of the test ● False green ○ Problem: If you don’t go red first, you might be adding a test which does nothing ○ Possible solution: negate the test after passing, and see how it reverts
Final recap ● Fast feedback is more important than ever… ● Forces nano-baby-steps ● Forces you to think: "how can I make this change with a smaller step?" ● High frustration at the beginning? ● Beware the downsides…