7. Wednesday, June 2, 2010 7
Release July 10th. Next release planned for June. Pulled everything to one backlog planned
for next release. Ran one 4-week iteration. Initial velocity showed release date August - 3
years later.
8. Typing Is Not The Bottleneck
Wednesday, June 2, 2010 8
13. “...the intellectual bookkeeping challenge...has been replaced
with the challenge of clearly expressing the design intention to
the rest of the team so the system can evolve.”
- Pete McBreen, Software Craftsmanship: The New Imperative
Wednesday, June 2, 2010 12
15. Wednesday, June 2, 2010 14
This means there is a shift happening in our industry. If typing isn’t the bottleneck, and
hardware isn’t the problem, and the challenge is in expression - what are our weaknesses?
28. “People can be trained not to innovate, not to explore, and not
to reach. Many organizations value conformance above all.
They cut off the top and the bottom of the bell curve -- they like
interchangeable cogs. You can achieve predictability through
mediocrity in those places, and the best answer is to decide to
either go along or get out.”
Fear
Wednesday, June 2, 2010 25
stagnate us.
29. Fear
“Since my endeavors are not supported
by my organization, I'm limited to TDD,
and have no way of implementing
acceptance tests without getting sacked.
I'm pushing my luck to do TDD at all.”
Wednesday, June 2, 2010 25
stagnate us.
30. Fear
“When the manager saw our
estimate for the project, he
gave us a deadline without
considering our suggestions.
He is not a programmer and
his reason was a political
deadline.”
Wednesday, June 2, 2010 25
stagnate us.
31. “In my company, no code changes
can happen without the approval of
the Board of Governors for the
product involved”
Fear
Wednesday, June 2, 2010 25
stagnate us.
33. Unacceptable
Wednesday, June 2, 2010 27
We have to declare that it is unacceptable for us to be put in situations which destroy the one
thing which drives each of us here
48. Wednesday, June 2, 2010 41
YOUR RESPONSIBILITY! (And look! I found a hip bear!). Given that - whose responsibility is it
for learning new technologies and techniques?
49. Yours!
Wednesday, June 2, 2010 42
Whose Responsibility is it for growing in your profession? (All together now)
53. Craftsmanship ==
Responsibility
Wednesday, June 2, 2010 46
So, if craftsmanship is responsibility, whose job is it to foster craftsmanship in your
organization?
55. Wednesday, June 2, 2010 48
Come on, Cory. How the heck are we supposed to be responsible for all that? Well, I’ll tell
you. By showing you the guide to...
56. Wednesday, June 2, 2010 48
Come on, Cory. How the heck are we supposed to be responsible for all that? Well, I’ll tell
you. By showing you the guide to...
66. Step 4:
Get people learning
(and teaching)
Wednesday, June 2, 2010 58
Apprenticeships. Ask people to mentor you, and offer the same to those with you.
68. Step 5:
Make it Clear
Wednesday, June 2, 2010 60
Profit! Or formalize the program. Create a training path for people to follow.
69. This is Jason Gorman’s. Don’t blame me.
http://qconlondon.com/london-2010/file?path=%2Fqcon-london-2010%2Fslides
%2FJasonGorman_BeyondMastersApprenticesAScalablePeerLedModelForBuildingGoodHabitsInLargeDiverseDevelopmentTeams.pdf
Wednesday, June 2, 2010 61
70. Reference Application
Wednesday, June 2, 2010 62
In fact, because I’ve only gotten 4 hours of sleep in the past 70 hours, I found a way to do all
five steps using only Katas. I call this my “reference application”. To understand it we have to
know about
71. Learning Models
Wednesday, June 2, 2010 63
Thankfully, not every one. Just a specific one. It’s called the Dreyfus Model of Skills
Acquisition
72. Dreyfus Model of Skills Acquisition
Level Description
Needs to be told exactly what to do.
Novice No context to work from
Has more context, but needs
Advanced Beginner
rigid guidelines
Questions reasoning behind the tasks
Competent and can see consequences
Still relies on rules, but can
Proficient
separate what’s important
Works mainly on intuition,
Expert
except when problems occur
Wednesday, June 2, 2010 64
Using this model, we can create a path for team members to go from Novice to Expert using
Katas. How?
73. Level 1: Novice
Wednesday, June 2, 2010 65
Novices don’t have the context to make judgement calls. So for novices, we can provide the
outline of a Kata with acceptance tests pre-filled out. This gives them context and structure.
Show Corey’s String Calculator
74. Level 2: Advanced Beginner
Wednesday, June 2, 2010 66
Advanced Beginners still need structure, so at level 2, they would still use pre-populated
templates. However, they would only be partially filled out. For example, in the String
Calculator, Roy defined additional requirements which aren’t in the tests
75. Level 3: Competent
Wednesday, June 2, 2010 67
As developers reach competency, they need less context. At this stage, there still may be
some structure predefined in the katas, but certainly no tests are filled in.
76. Level 4: Proficient
Wednesday, June 2, 2010 68
At proficiency, developers should be able to tackle a Kata from scratch, including set-up of
any necessary tools (RSpec, Cucumber, FitNesse, NUnit).
77. Level 5: Expert
Wednesday, June 2, 2010 69
Finally, as they reach an expert stage, they should be able to develop their own katas for
contribution back to the team.
81. Processes and Tools
Wednesday, June 2, 2010 73
In other words, don’t let the kata structure become a replacement for individuals and
interactions. Part of why programs and methodologies work is the learning that goes into
implementing and customizing it. As it grows, it may stagnate. Don’t do that.
88. Wednesday, June 2, 2010 80
stop valuing crap, and instead deliver real value. And at the end of the day, that’s what our
customers want, our organizations want, and I bet most of us want too.