The Relationship Between Agility and Expertise
Transcript of The Relationship Between Agility and Expertise
The Relationship Between Agility and
ExpertiseKen Auer
slides available at:
http://www.slideshare.net/kauerrolemodel/the-relationship-between-agility-and-expertise
Inexpensive
Expensive
Consumables Investments
Hitting the Target w/ Software
Com
plex
ity
Longevity
Simple website announcing details of an
event to a few, known set of
people
Inexpensive
Expensive
Consumables Investments
Hitting the Target w/ Software
Com
plex
ity
Longevity
Simple website announcing details of an
event to a few, known set of
people
Website designed to
create a huge buzz about a new product
Inexpensive
Expensive
Consumables Investments
Hitting the Target w/ Software
Com
plex
ity
Longevity
Simple website announcing details of an
event to a few, known set of
people
Website designed to
create a huge buzz about a new product
Prototype demo to blow
away a potential customer and make a sale
Inexpensive
Expensive
Consumables Investments
Hitting the Target w/ Software
Com
plex
ity
Longevity
Simple website announcing details of an
event to a few, known set of
people
Website designed to
create a huge buzz about a new product
Prototype demo to blow
away a potential customer and make a sale
Poll reporting system for 2016
presidential elections
Inexpensive
Expensive
Consumables Investments
Hitting the Target w/ Software
Com
plex
ity
Longevity
Simple website announcing details of an
event to a few, known set of
people
Website designed to
create a huge buzz about a new product
Prototype demo to blow
away a potential customer and make a sale
Simple Record-keeping system for an industry with
changing regulations
Poll reporting system for 2016
presidential elections
Inexpensive
Expensive
Consumables Investments
Hitting the Target w/ Software
Com
plex
ity
Longevity
Simple website announcing details of an
event to a few, known set of
people
Website designed to
create a huge buzz about a new product
Prototype demo to blow
away a potential customer and make a sale
Decision Support system
for ever expanding set of
experts and rules
Simple Record-keeping system for an industry with
changing regulations
Poll reporting system for 2016
presidential elections
Dreyfus Model of Skill Acquisition*
Rules Detached Observer
Considers Everything
IntuitionRelevant
FocusPart of System
Novice
Advanced Beginner
Competent
Proficient
Expert
* http://litemind.com/expert-roadmap/
Knowledge vs. Skill*
“There’s much more to mastering a skill than just acquiring more knowledge. Just like adults are not simply bigger children, experts are not only smarter, more knowledgeable or faster
than novices. The differences can be found at a more fundamental level, such as in how they
perceive the world and approach problems.”- Luciano Passuello
* http://litemind.com/expert-roadmap/
Cost of Advanced Beginners
Novice
Advanced Beginner
Competent
Proficient
Expert
Clueless
Mostly “right”
Make it run... right?
All of us are Novices at some things... Some may be experts in others... Usually somewhere in between
ToolsTechniquesSkillsDomains
Languages
Cost of Advanced Beginners
Novice
Advanced Beginner
Competent
Proficient
Expert
Clueless
Mostly “right”
Make it run... right?
All of us are Novices at some things... Some may be experts in others... Usually somewhere in between
ToolsTechniquesSkillsDomains
Languages
Follow rules on well-defined tasks
Cost of Advanced Beginners
Novice
Advanced Beginner
Competent
Proficient
Expert
Clueless
Mostly “right”
Make it run... right?
All of us are Novices at some things... Some may be experts in others... Usually somewhere in between
ToolsTechniquesSkillsDomains
Languages
Follow rules on well-defined tasks
Complete similar tasks following rules
Cost of Advanced Beginners
Novice
Advanced Beginner
Competent
Proficient
Expert
Clueless
Mostly “right”
Make it run... right?
All of us are Novices at some things... Some may be experts in others... Usually somewhere in between
ToolsTechniquesSkillsDomains
Languages
Follow rules on well-defined tasks
Complete similar tasks following rules
Have conceptual models in which to operate
Cost of Advanced Beginners
Novice
Advanced Beginner
Competent
Proficient
Expert
Clueless
Mostly “right”
Make it run... right?
All of us are Novices at some things... Some may be experts in others... Usually somewhere in between
ToolsTechniquesSkillsDomains
Languages
Follow rules on well-defined tasks
Complete similar tasks following rules
Have conceptual models in which to operate
Have conceptual framework in which to adjust
Cost of Advanced Beginners
Novice
Advanced Beginner
Competent
Proficient
Expert
Clueless
Mostly “right”
Make it run... right?
All of us are Novices at some things... Some may be experts in others... Usually somewhere in between
ToolsTechniquesSkillsDomains
Languages
Follow rules on well-defined tasks
Complete similar tasks following rules
Have conceptual models in which to operate
Have conceptual framework in which to adjust
Intuitively identify and solve problems... it’s simple
Cost of Advanced Beginners
Novice
Advanced Beginner
Competent
Proficient
Expert
Clueless
Mostly “right”
Make it run... right?
All of us are Novices at some things... Some may be experts in others... Usually somewhere in between
ToolsTechniquesSkillsDomains
Languages
Follow rules on well-defined tasks
Complete similar tasks following rules
Have conceptual models in which to operate
Have conceptual framework in which to adjust
Intuitively identify and solve problems... it’s simple
Overwhelmed by Complexity
Cost of Advanced Beginners
Novice
Advanced Beginner
Competent
Proficient
Expert
Clueless
Mostly “right”
Make it run... right?
All of us are Novices at some things... Some may be experts in others... Usually somewhere in between
ToolsTechniquesSkillsDomains
Languages
Follow rules on well-defined tasks
Complete similar tasks following rules
Have conceptual models in which to operate
Have conceptual framework in which to adjust
Intuitively identify and solve problems... it’s simple
Overwhelmed by Complexity
Manage and Reduce Complexity
Cost of Advanced Beginners
Novice
Advanced Beginner
Competent
Proficient
Expert
Clueless
Mostly “right”
Make it run... right?
All of us are Novices at some things... Some may be experts in others... Usually somewhere in between
ToolsTechniquesSkillsDomains
Languages
Follow rules on well-defined tasks
Complete similar tasks following rules
Have conceptual models in which to operate
Have conceptual framework in which to adjust
Intuitively identify and solve problems... it’s simple
Overwhelmed by Complexity
Manage and Reduce Complexity
Unwittingly Introduce Complexity
Novice
Adv. Beg
Competent
Proficient
Expert
ExampleWeak
Professional DeveloperTechnical
Skill Scorecard
Benefits of Reflective ExpertiseIn
here
nt
Com
plex
ity
Longevity
Novice
Adv. Beg
Competent
Proficient
Expert
Costs of Unskilled Producers“don’t confuse speed/motion with progress”*
Intr
oduc
ed
Com
plex
ity
Longevity
Novice
Adv. Beg
Competent
Proficient
Expert
* attributed to many, if you think you are the first one who said it, please correct Google
Novice
Adv. Beg
Competent
Proficient
Expert
Hitting the Target w/ Software
Com
plex
ity
Longevity
Simple website announcing details of an
event to a few, known set of
people
Website designed to
create a huge buzz about a new product
Prototype demo to blow
away a potential customer and make a sale
Decision Support system
for ever expanding set of
experts and rules
Simple Record-keeping system for an industry with
changing regulations
Poll reporting system for 2016
presidential elections
Novice
Adv. Beg
Competent
Proficient
Expert
Hitting the Target w/ Software
Com
plex
ity
Longevity
Simple website announcing details of an
event to a few, known set of
people
Website designed to
create a huge buzz about a new product
Prototype demo to blow
away a potential customer and make a sale
Decision Support system
for ever expanding set of
experts and rules
Simple Record-keeping system for an industry with
changing regulations
Poll reporting system for 2016
presidential elections
Turning a Prototype that
was shipped into a Software Asset
Novice
Adv. Beg
Competent
Proficient
Expert
Hitting the Target w/ Software
Com
plex
ity
Longevity
Simple website announcing details of an
event to a few, known set of
people
Website designed to
create a huge buzz about a new product
Prototype demo to blow
away a potential customer and make a sale
Decision Support system
for ever expanding set of
experts and rules
Simple Record-keeping system for an industry with
changing regulations
Poll reporting system for 2016
presidential elections
Turning a Prototype that
was shipped into a Software Asset
Turning a System built by
unskilled producers into a Software Asset
The Uncomfortable Reality
• “We only hire smart people”• Are all of your people really experts?• Compared to the guys who authored
the Agile Manifesto?
The Uncomfortable Reality
• “We only hire smart people”• Are all of your people really experts?• Compared to the guys who authored
the Agile Manifesto?• Experts are hard to find, cost lots of
money, and don’t like simple tasks
The Uncomfortable Reality
• “We only hire smart people”• Are all of your people really experts?• Compared to the guys who authored
the Agile Manifesto?• Experts are hard to find, cost lots of
money, and don’t like simple tasks• To a manager (novice?) everyone who
knows more than him looks like an expert
The Good News• We have learned “best practices”• Anyone(?) can do them
(or learn to do them)• Doing them will
The Good News• We have learned “best practices”• Anyone(?) can do them
(or learn to do them)• Doing them will • Make them better
The Good News• We have learned “best practices”• Anyone(?) can do them
(or learn to do them)• Doing them will • Make them better• Reduce your risk
The Good News• We have learned “best practices”• Anyone(?) can do them
(or learn to do them)• Doing them will • Make them better• Reduce your risk
• Not all tasks, even on a complex system, require an expert
* http://agilemanifesto.org/See http://agilemanifesto.org/principles.html for better description of “agile”
* http://agilemanifesto.org/See http://agilemanifesto.org/principles.html for better description of “agile”
eXtreme Programming Continuous Refinement of...
• Requirements
• Design
• Plan
• People
• ResultsPotential Value!
?
eXtreme Programming
• code reviews => pair programming
• testing => 100% unit, tracking acceptance
• design => continuous refactoring
• simplicity => TSTTCPW, YAGNI, test-driven
• customer involvement => they drive
• integration => daily or more often
• short iterations => 1-4 week release cycle
• risk management => collective code ownership
TDD, Refactoring, Pairing + Collective Code Ownership
• Achieve validated quality code
• Shared learning
TDD, Refactoring, Pairing + Collective Code Ownership
• Achieve validated quality code
• Shared learning
• In context
TDD, Refactoring, Pairing + Collective Code Ownership
• Achieve validated quality code
• Shared learning
• In context
• For context
TDD, Refactoring, Pairing + Collective Code Ownership
• Achieve validated quality code
• Shared learning
• In context
• For context
• Anyone(?) can keep it going forward with quality
Benefits of Deep Agility
Com
plex
ity
Longevity
Customer Feedback
Continuous Integration
Test-Driven
Collective Code Ownership
Pair Programming
Iteration Planning
Continuous Refactoring
More depthputs in more checks againstintroduced complexity and more
resultsthat reduce
businessrisk
Customer Feedback
Continuous Integration
Test-Driven
Collective Code Ownership
Pair Programming
Iteration Planning
Continuous RefactoringC
ompl
exity
Longevity
Simple website announcing details of an
event to a few, known set of
people
Website designed to
create a huge buzz about a new product
Prototype demo to blow
away a potential customer and make a sale
Decision Support system
for ever expanding set of
experts and rules
Simple Record-keeping system for an industry with
changing regulations
Poll reporting system for 2016
presidential elections
Hitting the Target w/ Software
Reality of Internal Quality
• Easy for anyone to slip in the name of expediency
• Make it run. Make it right. Make it fast. OR
Reality of Internal Quality
• Easy for anyone to slip in the name of expediency
• Make it run. Make it right. Make it fast. OR
• Make it run... fast enough?… Ship it.
Reality of Internal Quality
• Easy for anyone to slip in the name of expediency
• Make it run. Make it right. Make it fast. OR
• Make it run... fast enough?… Ship it.
• Make it right?
Reality of Internal Quality
• Easy for anyone to slip in the name of expediency
• Make it run. Make it right. Make it fast. OR
• Make it run... fast enough?… Ship it.
• Make it right?
• Limited by expertise of most skilled participant
Reality of Internal Quality
• Easy for anyone to slip in the name of expediency
• Make it run. Make it right. Make it fast. OR
• Make it run... fast enough?… Ship it.
• Make it right?
• Limited by expertise of most skilled participant
• Can increase by collaboration
Reality of Internal Quality
• Easy for anyone to slip in the name of expediency
• Make it run. Make it right. Make it fast. OR
• Make it run... fast enough?… Ship it.
• Make it right?
• Limited by expertise of most skilled participant
• Can increase by collaboration
• Two novices don’t produce the quality of experts by pairing
Reality of Internal Quality
• Easy for anyone to slip in the name of expediency
• Make it run. Make it right. Make it fast. OR
• Make it run... fast enough?… Ship it.
• Make it right?
• Limited by expertise of most skilled participant
• Can increase by collaboration
• Two novices don’t produce the quality of experts by pairing
Getting Past Advanced Beginner
• “Proficient practitioners can take full advantage of the reflection and feedback that is core to agile methods.” – (“Pragmatic Thinking & Learning”,
Andrew Hunt, p.35)
• But how do you get there? – Individual exercise? – Team work?
Acceptable Methods to Ensure Quality Code and Coders
• Pair Programming
• Opportunistic Pairing
• Pair Refactoring/Rewriting
• Synchronous pull requests
• Asynchronous pull requests
HotCommunication
High Skill Transfer
Low Skill Transfer
Cold Communication
Novice
Adv. Beg
Competent
Proficient
Expert
Clean Code,TDD, and
OO Thinkingmoves toward
the “mostskilled” at arate you can
adjust
LanguageIdioms and strengths/
weaknessesget shared
amongthe
team
More skills arepicked up by
includingspecialists
in process andobserving“tips and tricks”
To a Novice, an Advanced Beginner looks like an Expert
“Have cheap people do easy things under the CLOSE supervision of someone who knows the difference”
- Me, 2010 SCNA talk “Lean Craftsmanship vs. Corporate Craftsmanship”
“Have advanced beginners do tasks for which the rules they know are appropriate to the context and check their work. Let them watch, and have discussions with, someone who has the appropriate skills for the task when the advanced beginner does not”- Me, 2013, SCNA talk “Craftsmen Cannot Live on Stack Overflow and Github Alone”
High Performance Team in Building Software Assets
Level Description Dreyfus Model
plus experience
Master Craftsman
Expert >25,000 hours including >10,000 in leadership
Sr. Craftsman
Expert/Proficient, >15,000 hours including >3,000 in leadership
Craftsman Proficient, typically >10,000 hours plus proven leadership skills
NOTE: in addition to technical skills scorecard, a leadership skills scorecard is needed
High Performance Team in Building Software Assets
Level Description Dreyfus Model
plus experience
Master Craftsman
Expert >25,000 hours including >10,000 in leadership
Sr. Craftsman
Expert/Proficient, >15,000 hours including >3,000 in leadership
Craftsman Proficient, typically >10,000 hours plus proven leadership skills
Level Description Dreyfus Model
plus experience
Sr. Developer/Designer
Proficient to Expert, >8,000 hours OR >6,000 hours plus leadership skills
Developer/Designer
Competent to Proficient, >5000 hours
Jr. Developer/Designer
Competent w/ some holes in experience, >2000 hours
NOTE: in addition to technical skills scorecard, a leadership skills scorecard is needed
High Performance Team in Building Software Assets
Level Description Dreyfus Model
plus experience
Master Craftsman
Expert >25,000 hours including >10,000 in leadership
Sr. Craftsman
Expert/Proficient, >15,000 hours including >3,000 in leadership
Craftsman Proficient, typically >10,000 hours plus proven leadership skills
Level Description Dreyfus Model
plus experience
Sr. Developer/Designer
Proficient to Expert, >8,000 hours OR >6,000 hours plus leadership skills
Developer/Designer
Competent to Proficient, >5000 hours
Jr. Developer/Designer
Competent w/ some holes in experience, >2000 hours
Level Description Dreyfus Model plus experience
Sr. Resident Developer/ Designer
Advanced Beginner with Competence in areas, Craftsmanship Academy >1500 hours
Resident Developer/ Designer
Advanced Beginner with Competence in areas, Craftsmanship Academy >1000 hours
Apprentice Developer/Designer
Advanced Beginner, Craftsmanship Academy >500 hours
Novice Developer/Designer
Novice, in Craftsmanship Academy, <500 hoursNOTE: in addition to technical skills scorecard,
a leadership skills scorecard is needed
Basic Rules for Building Software Assets
• The Ratio of Experts-Novices should change based on the nature of the project
Basic Rules for Building Software Assets
• The Ratio of Experts-Novices should change based on the nature of the project
• The Craftsmen-in-charge should oversee
Basic Rules for Building Software Assets
• The Ratio of Experts-Novices should change based on the nature of the project
• The Craftsmen-in-charge should oversee• Very productive development environment
Basic Rules for Building Software Assets
• The Ratio of Experts-Novices should change based on the nature of the project
• The Craftsmen-in-charge should oversee• Very productive development environment• What tasks get done by what people
Basic Rules for Building Software Assets
• The Ratio of Experts-Novices should change based on the nature of the project
• The Craftsmen-in-charge should oversee• Very productive development environment• What tasks get done by what people• What form(s) of “two sets of eyes” is
appropriate in what contexts
Benefits of Agility + Expertise
Com
plex
ity
Longevity
Simplest tasks anyone can do with Async Pull
Request
Benefits of Agility + Expertise
Com
plex
ity
Longevity
Simplest tasks anyone can do with Async Pull
Request
“Spiking” a new feature
typically needs proficient dev with
customer rep feedback
Benefits of Agility + Expertise
Com
plex
ity
Longevity
Simplest tasks anyone can do with Async Pull
Request
“Spiking” a new feature
typically needs proficient dev with
customer rep feedback
Prototype demo needs highly skilled
dev/designer with little code review but
significant customer review
Benefits of Agility + Expertise
Com
plex
ity
Longevity
Simplest tasks anyone can do with Async Pull
Request
“Spiking” a new feature
typically needs proficient dev with
customer rep feedback
Prototype demo needs highly skilled
dev/designer with little code review but
significant customer review
Building the new feature: architecture
fleshed out in test-driven fashion by proficient dev
with pair
Benefits of Agility + Expertise
Com
plex
ity
Longevity
Simplest tasks anyone can do with Async Pull
Request
“Spiking” a new feature
typically needs proficient dev with
customer rep feedback
Prototype demo needs highly skilled
dev/designer with little code review but
significant customer review
Well-defined tasks that fall out after new feature is architected can be done by less
experienced test-driven pairs
Building the new feature: architecture
fleshed out in test-driven fashion by proficient dev
with pair
Benefits of Agility + Expertise
Com
plex
ity
Longevity
Simplest tasks anyone can do with Async Pull
Request
“Spiking” a new feature
typically needs proficient dev with
customer rep feedback
Prototype demo needs highly skilled
dev/designer with little code review but
significant customer review
Standards set and
architecture designed/
enforced by Craftsmen
Well-defined tasks that fall out after new feature is architected can be done by less
experienced test-driven pairs
Building the new feature: architecture
fleshed out in test-driven fashion by proficient dev
with pair
Benefits of Agility + Expertise
Com
plex
ity
Longevity
Simplest tasks anyone can do with Async Pull
Request
“Spiking” a new feature
typically needs proficient dev with
customer rep feedback
Prototype demo needs highly skilled
dev/designer with little code review but
significant customer review
Standards set and
architecture designed/
enforced by Craftsmen
Well-defined tasks that fall out after new feature is architected can be done by less
experienced test-driven pairs
Building the new feature: architecture
fleshed out in test-driven fashion by proficient dev
with pair Basic maintenance and evolution can be
done by “anyone”
competent who has learned in
context
Slides & References• slides available at: http://www.slideshare.net/kauerrolemodel/
the-relationship-between-agility-and-expertise
• Dreyfus Model of Skill Acquisition
• http://en.wikipedia.org/wiki/Dreyfus_model_of_skill_acquisition
• http://1.usa.gov/1iOLuWC - Dreyfus, Stuart E.; Dreyfus, Hubert L. (February 1980), A Five-Stage Model of the Mental Activities Involved in Directed Skill Acquisition
• http://bit.ly/1fU3aLn - Benner, Patricia (2004), Using the Dreyfus Model of Skill Acquisition to Describe and Interpret Skill Acquisition and Clinical Judgment in Nursing Practice and Education