Experience Agile Programming XP Days Ukraine Йоханнес Бродвалл, Just-a-programmer Стерия
Goal To have fun now! For you to have fun now! For you to have fun later (stretch goal)
Agenda Description Demonstration with Dima Mindra Discussion Tips and tricks
Description
Kata: Minesweeper
Given: var minefield = new Minefield([ "....", ".*..", ".*.*", "...*“ ])
Kata: FizzBuzz
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz FizzBuzz 16
Kata: Prime factors 1 => [] 2 => [2] 3 => [3] 4 => [2,2] … 2*2*13*17*23*23 => [2,2,13,17,23,23]
What do watch for How we interact How we progress through the code How we design How we use the language
Demonstration (Featuring Dmytro Mindra)
What did you see?
How often did we switch ”driver”? Effects of pairing? What did the ”non-driver” do?
What did you see? Was the step size right? What was the first test? How did we decide next test? What was the final test?
What did you see? Language tricks? Did we refactor the right amount? How long was the code red? Strengths in final design Weaknesses in final design
Why become better at programming?
Seriously. Why?
Only 13.37% of effort
Getting better quality
Correctness Maintainability
But more importantly!
Think better
Raise your level of abstraction
What to practice
Test the contract
API Not behavior
Test from outside-in
Who? Why? Pop! Mock
Practice pair programming
Ping pong
Failing test Fix the test Failing test Fix the test Failing test
Fix the test Failing test Fix the test Failing test Refactor
JohannesDmytro SergeyMikhail Volodymyr
JohannesDmytro SergeyMikhail Volodymyr
JohannesDmytro SergeyMikhail Volodymyr
All-green refactoring
Reduce the time of uncertainty
How to practice
Practice Practice at work Practice katas Practice in dojos
Kyiv Coding Dojo?
Pick a demo
1.Outside-in 2.Mocking 3.API test 4.All-green refactoring
Conclusion
Free your mind
Practice our art
Thank you (Please tweet in Cyrillic with english-like words)