2. This work by
Fredrik Wendt
is licensed under a
Creative Commons
Attribution-ShareAlike
3.0 Unported License
http://creativecommons.org/licenses/by-sa/3.0/
3. Ditt namn, vad du gör!
Vad är det?
Har du eller vän deltagit?
Erfarenheter från deltagande?
Förväntning(-ar) på denna session!
Coding Dojo!
4. Learning Objectives
• why you don't want to run typical generic katas
• how different exercise styles matches learning patterns,
skills and objectives of the dojo
• some things to think about when facilitating dojo sessions
• how I convince companies to see coding dojos as an invest
with short ROI
• what skill advancements you might expect from coding
dojos
• how a successfully run dojo may impact "soft values"
5. ➔ Safe Learning Env
➔ Like Production
➔ Practice, Repetition –
Learning by Doing
TL;DR
6. ➔ Safe Learning Env
➔ Like Production
➔ Practice, Repetition –
Learning by Doing
➔ Background, context
7. Based on What?
2 regular user groups
12 teams, 9 customers
past ~ 2 years
50 / 50
16. Examples of ”Skills”
TDD, Good Tests – Test Design
Working with Legacy Code
BDD, ATDD
Clean Code, Refactoring
Patterns, New Technologies
Pair Programming
17. Examples of ”Change”
New Tests Are Written!
Old Tests starts passing!
Code Coverage Goes Up!
Everyone Cares when the build Fails!
Technology Shift – “On” Plan
24. Refactoring
How good at refactoring were/are you?
Beginner Expert
Before
After
Today
... ... ...
25. ➔ Safe Learning Env
➔ Like Production
➔ Practice, Repetition –
Learning by Doing
➔ Background, context
26. Coding dojo!
Vad tror du behövs för lärande på arbetsplatsen?
(Skills, Change – subjektiva resultat)
Pros/cons – olika sätt att organisera sig?
(Presentation, Randori, break-out)
27. ➔ Safe Learning Env
➔ Like Production
➔ Practice, Repetition –
Learning by Doing
➔ Background, context
28. ➔ Safe Learning Env
➔ Like Production
➔ Practice, Repetition –
Learning by Doing
29. Safe Environment for Learning
No salary setting managers in the room
Talk about how humans learn!
Show attendees –
what: learning objective
how: seeing is believing
30. ➔ Safe Learning Env
➔ Like Production
➔ Practice, Repetition –
Learning by Doing
31. ➔ Safe Learning Env
➔ Like Production
➔ Practice, Repetition –
Learning by Doing
32. Different Mind-Set!
Attend out of own interest vs told to attend
Telling is not enough
Showing is not enough
Need to experience to believe & understand
Production like, see it's doable outside dojo
33. Must Feel Real!
Enterprise Java Beans
Java Persistence API
javax.servlet.*
String Calculator? Fizz Buzz?
Roman Numerals? MMXIII?
Bowling? Poker Games?
34. Example: servlet.Filter
• Kata Java EE Authentication Filter
• Uses javax.servlet.* API
• Uses 2 custom interfaces
• Show classical vs mockist style
• 2nd time around Clean Code
35. request is part of
HTTP Session?
get token from session
SSO token is valid?
pass request on
down the filter chain
return;
throw AuthException;
resp.setStatus(401);
request contains
SSO cookie?
SSO token is valid?
request contains un
& pw parameters?
get token from cookie
get un & pw from request
un & pw valid in LDAP?
get new SSO token
store SSO token in cookie
store SSO token in session
No
No
No
Yes
Yes
Yes
Yes
KataJavaEEAuthenticationFilter
40. ➔ Safe Learning Env
➔ Like Production
➔ Practice, Repetition –
Learning by Doing
41. ➔ Safe Learning Env
➔ Like Production
➔ Practice, Repetition –
Learning by Doing
42. Format
15 90 15
40 – 10 – 40
Context
Understand exercise
Fail in order to learn
Tools? Techniques?
“Seeing is believing”
DO
Review, Feedback
Repetition
Participants' own
words means learning!
Input to next session
43. Learning by Doing
Repeat exercise
without trainer,
same time, place, people
”I can do this on my own”
vs
”only works for others”
44. Repetition Mother of Learning
E-mail with kata,
retrospective notes,
learning objectives,
ask if they've uncovered new
insights/experiences
45. ➔ Safe Learning Env
➔ Like Production
➔ Practice, Repetition –
Learning by Doing
Summary
46. Learning Objectives
• why you don't want to run typical generic katas
• how different exercise styles matches learning patterns,
skills and objectives of the dojo
• some things to think about when facilitating dojo sessions
• how I convince companies to see coding dojos as an invest
with short ROI
• what skill advancements you might expect from coding
dojos
• how a successfully run dojo may impact "soft values"
47. MORE!
• Fruit, Candy, Coffee, Sugar!
• Whole team vs mixed teams
• Management buy-in – S-curve/hockey stick in learning
• Production like kata – 90 minute problems != realistic
• 1h topic-intro (clean code), lunch, 2h exercise
• 2h kata, lunch, 2h kata
• 1600-1800
• Come prepared, know your audience – 20 Questions
• Plant a mystery
48. NO MORE!
”Anti patterns”:
• Too complex problem
• Too complex biz rules (or game rules)
• Too huge data model – poker hands kata?
• Too great skill differences, depends on kata & style
• “Hero”?