Download - Experience Agile Programming - Kiev
Experience Agile Programming
XP Days UkraineЙоханнес Бродвалл, Just-a-programmer
Стерия Норвегия
@jhannes
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([ "....", ".*..", ".*.*", "...*“ ])
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?
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
Getting better qualityCorrectness
Maintainability
But more importantly!
Think better
Think betterRaise your level of abstraction
What to practice
Test the contract
Test the contractAPI
Not behavior
Test from outside-in
Test from outside-inWho?
Why?
Pop!
Mock
Practice pair programming
Ping pong
Failing test
Fix the test
Failing test
Fix the test
Failing test
Failing test
Fix the test
Failing test
Fix the test
Failing test
Refactor
Refactor
Johannes Dmytro
SergeyMikhail
Volodymyr
Johannes Dmytro
SergeyMikhail
Volodymyr
Johannes Dmytro
SergeyMikhail
Volodymyr
All-green refactoring
All-green refactoringReduce the time of uncertainty
How to practice
PracticePractice at work
Practice katas
Practice in dojos
Kyiv Coding Dojo?
Conclusion
ConclusionFree your mind
Free your mindPractice our art
Thank [email protected]
http://johannesbrodwall.com
http://twitter.com/jhannes
(Please tweet in Cyrillic with english-like words)