Slide 1

Slide 1 text

TCR workshop "test && commit || revert" Stockholm, 12th March 2019

Slide 2

Slide 2 text

Ego slide Software professional (code, product, people...) @islomar [email protected] Something @joebew42 [email protected]

Slide 3

Slide 3 text

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!

Slide 4

Slide 4 text

Disclaimer We have not tried TCR with Production code We are learners We are here to practice and learn the new workflow

Slide 5

Slide 5 text

Review TDD http://luizricardo.org/wordpress/wp-content/upload-files/2014/05/tdd_flow.gif

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

TCR: an oversimplified diagram Run your tests…result? commit revert write your code GREEN RED

Slide 8

Slide 8 text

https://rachelcarmena.github.io/img/cards/posts/test-driven-programming-workflows/workflows-with-an-idea-for-TCR.png TCR complete diagram

Slide 9

Slide 9 text

Repository with TCR scripts https://github.com/islomar/tcr-workshop

Slide 10

Slide 10 text

Kata: Fibonacci sequence

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

First pomodoro… go! https://entregurus.com/the-pomodoro-technique/

Slide 13

Slide 13 text

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:

Slide 14

Slide 14 text

Second pomodoro… go! https://entregurus.com/the-pomodoro-technique/

Slide 15

Slide 15 text

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?

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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…

Slide 18

Slide 18 text

Interesting links ● https://medium.com/@kentbeck_7670/test-commit-revert-870bbd756864 ● https://rachelcarmena.github.io/2018/11/13/test-driven-programming-workflows.html ● https://medium.com/@barlindhaug/how-to-test-commit-revert-e850cd6e2520 ● https://blog.adrianbolboaca.ro/2013/03/taking-baby-steps/ ● Kent Beck screencast: https://www.youtube.com/watch?v=ZrHBVTCbcE0 ● https://medium.com/@tdeniffel/test-commit-revert-questions-answered-ddf012a1af97 ● https://medium.com/@tdeniffel/all-downsides-and-open-questions-of-tcr-885bfee27146 ● https://www.davidtanzer.net/david's%20blog/2019/03/06/test-commit-revert.html ● https://medium.com/@itortv/i-implemented-the-mars-rover-kata-through-tcr-test-commit-reve rt-and-these-are-my-7e11c40983a6

Slide 19

Slide 19 text

No content