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.
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?
“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.
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.
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.
“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.
Step 5: Make it Clear
Wednesday, June 2, 2010 60 Proﬁt! Or formalize the program. Create a training path for people to follow.
This is Jason Gorman’s. Don’t
blame me. http://qconlondon.com/london-2010/ﬁle?path=%2Fqcon-london-2010%2Fslides %2FJasonGorman_BeyondMastersApprenticesAScalablePeerLedModelForBuildingGoodHabitsInLargeDiverseDevelopmentTeams.pdf Wednesday, June 2, 2010 61
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 ﬁve steps using only Katas. I call this my “reference application”. To understand it we have to know about
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 Proﬁcient 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?
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-ﬁlled out. This gives them context and structure. Show Corey’s String Calculator
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 ﬁlled out. For example, in the String Calculator, Roy deﬁned additional requirements which aren’t in the tests
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 predeﬁned in the katas, but certainly no tests are ﬁlled in.
Level 4: Proﬁcient Wednesday, June
2, 2010 68 At proﬁciency, developers should be able to tackle a Kata from scratch, including set-up of any necessary tools (RSpec, Cucumber, FitNesse, NUnit).
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.
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.