The Relationship Between Agility and Expertise

89
The Relationship Between Agility and Expertise Ken Auer @kauerrolemodel [email protected] slides available at: http://www.slideshare.net/kauerrolemodel/the-relationship-between-agility-and-expertise

Transcript of The Relationship Between Agility and Expertise

The Relationship Between Agility and

ExpertiseKen Auer

@[email protected]

slides available at:

http://www.slideshare.net/kauerrolemodel/the-relationship-between-agility-and-expertise

Hitting the Target w/ Software

Com

plex

ity

Longevity

Inexpensive

Expensive

Hitting the Target w/ Software

Com

plex

ity

Longevity

Inexpensive

Expensive

Consumables Investments

Hitting the Target w/ Software

Com

plex

ity

Longevity

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

ExampleSenior

DeveloperTechnical

Skill Scorecard

Novice

Adv. Beg

Competent

Proficient

Expert

ExampleJunior

DeveloperTechnical

Skill Scorecard

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

The Uncomfortable Reality

• “We only hire smart people”

The Uncomfortable Reality

• “We only hire smart people”• Are all of your people really experts?

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

Novice

Adv. Beg

Competent

Proficient

Expert

ExampleWeak

Professional Developer

Skill Scorecard

The Good News

The Good News• We have learned “best practices”

The Good News• We have learned “best practices”• Anyone(?) can do them

(or learn to do them)

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”

SCRUM - Simple Agile

SCRUM - Simple Agile

Customer Feedback

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

TDD, Refactoring, Pairing + Collective Code Ownership

• Achieve validated quality code

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

Reality of Internal Quality

• Easy for anyone to slip in the name of expediency

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

ExampleWeak

Professional Developer

Skill Scorecard

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

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

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