Download - CocoaConf Relationship Between Agility and Expertise

Transcript

Crafting software systems for forward-thinking businesses

Ken Auer

@kauerrolemodel

Agility & Expertise

The Relationship Between

[email protected] http://www.slideshare.net/kauerrolemodel/the-relationship-between-agility-and-expertise

Co

mpl

exit

y

Longevity

Software Explained

Co

mpl

exit

y

Longevity

Inexpensive

Expensive

Software Explained

Co

mpl

exit

y

Longevity

Inexpensive

Expensive

Software Explained

Simple Website

Co

mpl

exit

y

Longevity

Inexpensive

Expensive

Software Explained

Simple WebsiteMyFirst

TwilioApp

Co

mpl

exit

y

Longevity

Inexpensive

Expensive

Software Explained

Impressive prototype

Simple WebsiteMyFirst

TwilioApp

Co

mpl

exit

y

Longevity

Inexpensive

Expensive

Software Explained

Website/app promoting a new product

Impressive prototype

Simple WebsiteMyFirst

TwilioApp

Co

mpl

exit

y

Longevity

Inexpensive

Expensive

Software Explained

Website/app promoting a new product

Impressive prototype

Election results reporting system

Simple WebsiteMyFirst

TwilioApp

Co

mpl

exit

y

Longevity

Inexpensive

Expensive

Software Explained

Website/app promoting a new product

Impressive prototype

Record-keeping system subject to

changing regulations

Election results reporting system

Simple WebsiteMyFirst

TwilioApp

Co

mpl

exit

y

Longevity

Inexpensive

Expensive

Software Explained

Website/app promoting a new product

Impressive prototype

Decision Support system for experts in a changing domain

Record-keeping system subject to

changing regulations

Election results reporting system

Simple WebsiteMyFirst

TwilioApp

Co

mpl

exit

y

Longevity

Inexpensive

Expensive

Software Explained

Website/app promoting a new product

Impressive prototype

Decision Support system for experts in a changing domain

Record-keeping system subject to

changing regulations

Election results reporting system

Simple WebsiteMyFirst

TwilioApp Consumables Investments

* http://litemind.com/expert-roadmap/

Dreyfus Model of Skill Acquisition*

Rules Detached Observer

ConsidersEverything

IntuitionRelevant

FocusPart ofSystem

Novice

Advanced Beginner

Competent

Proficient

Expert

* http://litemind.com/expert-roadmap/

Dreyfus Model of Skill Acquisition*

Rules Detached Observer

ConsidersEverything

IntuitionRelevant

FocusPart ofSystem

Novice

Advanced Beginner

Competent

Proficient

Expert

* http://litemind.com/expert-roadmap/

Dreyfus Model of Skill Acquisition*

Rules Detached Observer

ConsidersEverything

IntuitionRelevant

FocusPart ofSystem

Novice

Advanced Beginner

Competent

Proficient

Expert

* http://litemind.com/expert-roadmap/

Dreyfus Model of Skill Acquisition*

Rules Detached Observer

ConsidersEverything

IntuitionRelevant

FocusPart ofSystem

Novice

Advanced Beginner

Competent

Proficient

Expert

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/

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/ ** https://www.amazon.com/Reflective-Practitioner-Professionals-Think-Action/dp/0465068782

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

ToolsTechniquesSkillsDomainsLanguages

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

ToolsTechniquesSkillsDomainsLanguages

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

ToolsTechniquesSkillsDomainsLanguages

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

ToolsTechniquesSkillsDomainsLanguages

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

ToolsTechniquesSkillsDomainsLanguages

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

ToolsTechniquesSkillsDomainsLanguages

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

ToolsTechniquesSkillsDomainsLanguages

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

ToolsTechniquesSkillsDomainsLanguages

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

ToolsTechniquesSkillsDomainsLanguages

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

Benefits of Reflective Expertise

Inh

eren

t C

om

plex

ity

Longevity

Novice

Adv. Beginner

Competent

Proficient

Expert

Inh

eren

t C

om

plex

ity

Longevity

Novice

Adv. Beginner

Competent

Proficient

Expert

Consumable Applications“Deliver Fast, for Immediate Needs”

Inh

eren

t C

om

plex

ity

Longevity

Novice

Adv. Beginner

Competent

Proficient

Expert

Consumable Applications“Deliver Fast, for Immediate Needs”

It is All About Speed

It is All About Speed• Well-defined functionality in well-defined

domain

It is All About Speed• Well-defined functionality in well-defined

domain

• Well-defined technology stack appropriate for delivery medium

It is All About Speed• Well-defined functionality in well-defined

domain

• Well-defined technology stack appropriate for delivery medium

• Put it in front of users, hope they are happy… if they are not, move on

It is All About Speed• Well-defined functionality in well-defined

domain

• Well-defined technology stack appropriate for delivery medium

• Put it in front of users, hope they are happy… if they are not, move on

• Can become

➡ Advanced Beginner in months

➡ Proficient in 2-3 years

➡ Expert in < 5 years? (10,000 hours)

Software Assets“Supporting Business, Expanding Business”

Inh

eren

t C

om

plex

ity

Longevity

Novice

Adv. Beginner

Competent

Proficient

Expert

Software Assets“Supporting Business, Expanding Business”

Inh

eren

t C

om

plex

ity

Longevity

Novice

Adv. Beginner

Competent

Proficient

Expert

It is a Marathon

It is a Marathon• Leveraging expertise in changing domain

It is a Marathon• Leveraging expertise in changing domain

• Technology needs to be helpful, not fleeting, and forward moving

It is a Marathon• Leveraging expertise in changing domain

• Technology needs to be helpful, not fleeting, and forward moving

• If people are not happy, business might stop

It is a Marathon• Leveraging expertise in changing domain

• Technology needs to be helpful, not fleeting, and forward moving

• If people are not happy, business might stop

• Domain and Technical Skills both really important

• Green fields are hard to find

• Typically deep domain model, not just UI

• Many communication challenges

• Learning Environment

Short-term vs. Long-term“code is read more often than it is written”*

2-4x 4-10x 10-100x

* attributed to many… if you think you are the first to say it, please correct Google

Inh

eren

t C

om

plex

ity

Longevity

Time spent reading code vs. w

riting code

Code Read vs. Written

Benefits of Reflective Expertise“code is read more often than it is written”*

10-100x

4-10x

1x

Tim

e to G

rasp &

E

ffectively Exp

ress

2-4x

1-2x

2-4x 4-10x 10-100x

Code Read vs. Written

Inh

eren

t C

om

plex

ity

Longevity* attributed to many… if you think you are the first to say it, please correct Google

Novice

Adv. Beginner

Competent

Proficient

Expert

Costs of Less Skilled Producers

* https://en.wikipedia.org/wiki/Technical_debt (paraphrased)

Technical debt is a metaphor referring to the eventual consequences of any development within a codebase. The debt can be thought of as work that needs to be done before a particular job can be considered complete or proper. If the debt is not repaid, then it will keep on accumulating “interest,” making it hard to implement changes later on.

“don’t confuse speed/motion with progress”

1x

10-100x

Techn

ical Deb

tIn

trod

uctio

n R

ate

4-10x

2-4x

1-2x

Costs of Less Skilled Producers“don’t confuse speed/motion with progress”*

Intr

od

uce

d C

om

plex

ity

Longevity

Novice

Adv. Beginner

Competent

Proficient

Expert

* attributed to many… if you think you are the first to say it, please correct Google

1x

10-100x

Techn

ical Deb

tIn

trod

uctio

n R

ate

4-10x

2-4x

1-2x

Costs of Less Skilled Producers“don’t confuse speed/motion with progress”*

Intr

od

uce

d C

om

plex

ity

Longevity

Novice

Adv. Beginner

Competent

Proficient

Expert

* attributed to many… if you think you are the first to say it, please correct Google

Co

mpl

exit

y

Longevity

Novice

Adv. Beginner

Competent

Proficient

Expert

Hitting the Target w/Software

Website/App promoting a new product

Impressive prototype

Decision Support system for experts in a changing domain

Record-keeping system subject to

changing regulations

Election results reporting system

Simple WebsiteMyFirst

TwilioApp

Co

mpl

exit

y

Longevity

Novice

Adv. Beginner

Competent

Proficient

Expert

Hitting the Target w/Software

Website/App promoting a new product

Impressive prototype

Decision Support system for experts in a changing domain

Record-keeping system subject to

changing regulations

Election results reporting system

Turning a Prototype that

was shipped into a Software Asset

Simple WebsiteMyFirst

TwilioApp

Co

mpl

exit

y

Longevity

Novice

Adv. Beginner

Competent

Proficient

Expert

Hitting the Target w/Software

Website/App promoting a new product

Impressive prototype

Decision Support system for experts in a changing domain

Record-keeping system subject to

changing regulations

Election results reporting system

Turning a system built with a

Consumable mindset into a Software Asset

Turning a Prototype that

was shipped into a Software Asset

Simple WebsiteMyFirst

TwilioApp

Co

mpl

exit

y

Longevity

Novice

Adv. Beginner

Competent

Proficient

Expert

Hitting the Target w/Software

Website/App promoting a new product

Impressive prototype

Decision Support system for experts in a changing domain

Record-keeping system subject to

changing regulations

Election results reporting system

Turning a system built with a

Consumable mindset into a Software Asset

Turning a System built by less

skilled producers into a Software

Asset

Turning a Prototype that

was shipped into a Software Asset

Simple WebsiteMyFirst

TwilioApp

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 wrote the Agile Manifesto?

The Uncomfortable Reality• “We only hire smart people”

• Are all of your people really experts?

• Compared to the guys who wrote the Agile Manifesto?

• Experts are hard to find, cost lots of money, and don’t like simple tasks (or cleaning up others messes)

The Uncomfortable Reality• “We only hire smart people”

• Are all of your people really experts?

• Compared to the guys who wrote the Agile Manifesto?

• Experts are hard to find, cost lots of money, and don’t like simple tasks (or cleaning up others messes)

• To a manager (novice?) everyone who knows more than him looks like an expert

The Uncomfortable Reality• “We only hire smart people”

• Are all of your people really experts?

• Compared to the guys who wrote the Agile Manifesto?

• Experts are hard to find, cost lots of money, and don’t like simple tasks (or cleaning up others messes)

• To a manager (novice?) everyone who knows more than him looks like an expert

• To an advanced beginner, everyone who knows less than him looks like an idiot

Novice

Adv. Beg

Competent

Proficient

Expert

ExampleWeak

ProfessionalDeveloper

SkillScorecard

The Good News

The Good News

• We have learned “best practices”

The Good News

• We have learned “best practices”

• Nearly anyone can do them (or learn to do them)

The Good News

• We have learned “best practices”

• Nearly anyone can do them (or learn to do them)

• Doing them will

The Good News

• We have learned “best practices”

• Nearly anyone can do them (or learn to do them)

• Doing them will

• Make them better

The Good News

• We have learned “best practices”

• Nearly 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”

• Nearly 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

testing

design

simplicity

customer involvement

integration

short iterations

risk management

pair programming

100% unit, tracking acceptance

continuous refactoring

TSTTCPW, YAGNI, test-driven

they drive

daily or more often

1-4 week release cycle

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

SCRUM vs. eXtremeSurface vs. Deep

SCRUM vs. eXtremeSurface vs. Deep

• SCRUM certification means you sat through a class

SCRUM vs. eXtremeSurface vs. Deep

• SCRUM certification means you sat through a class

• Tells you to have feedback loops

SCRUM vs. eXtremeSurface vs. Deep

• SCRUM certification means you sat through a class

• Tells you to have feedback loops

• No programming approach

SCRUM vs. eXtremeSurface vs. Deep

• SCRUM certification means you sat through a class

• Tells you to have feedback loops

• No programming approach

• eXtreme Programming more deeply addresses approach to programming…

SCRUM vs. eXtremeSurface vs. Deep

• SCRUM certification means you sat through a class

• Tells you to have feedback loops

• No programming approach

• eXtreme Programming more deeply addresses approach to programming…

• …and makes you a better programmer?

Co

mpl

exit

y

Longevity

Benefits of Deep Agility

Customer Feedback

Continuous Integration

Test-Driven

Collective Code Ownership

Pair Programming

Iteration Planning

Continuous Refactoring

More depth puts in more checks against

introduced complexity and more results that reduce business riskStand-up Meetings

Co

mpl

exit

y

Longevity

Benefits of Deep Agility

Customer Feedback

Continuous Integration

Test-Driven

Collective Code Ownership

Pair Programming

Iteration Planning

Continuous Refactoring

More depth puts in more checks against

introduced complexity and more results that reduce business riskStand-up Meetings

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

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.”*

But how do you get there? - Individual exercise? - Team work?

*Pragmatic Thinking & Learning, Andrew Hunt, p.35

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

ColdCommunication

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

ColdCommunication

Hot Communication &High Skill Transfer

Pair Programming

Opportunistic Pairing

Pair Refactoring/Rewriting

Synchronous pull requests

Asynchronous pull requests

HotCommunication

High Skill Transfer

Low Skill Transfer

ColdCommunication

* http://www.martinbauer.com/Articles/Open-Project-Management/Communication Alistair Cockburn, “Agile Software Development”, Addison-Wesley 2002

Hot Communication &High Skill Transfer

Pair Programming

Opportunistic Pairing

Pair Refactoring/Rewriting

Synchronous pull requests

Asynchronous pull requests

HotCommunication

High Skill Transfer

Low Skill Transfer

ColdCommunication

* http://www.martinbauer.com/Articles/Open-Project-Management/Communication Alistair Cockburn, “Agile Software Development”, Addison-Wesley 2002

Hot Communication &High Skill Transfer

Pair Programming

Opportunistic Pairing

Pair Refactoring/Rewriting

Synchronous pull requests

Asynchronous pull requests

HotCommunication

High Skill Transfer

Low Skill Transfer

ColdCommunication

* http://www.martinbauer.com/Articles/Open-Project-Management/Communication Alistair Cockburn, “Agile Software Development”, Addison-Wesley 2002

Information absorption Visual—65%

Auditory—30%Kinesthetic—5%

Hot Communication &High Skill Transfer

Pair Programming

Opportunistic Pairing

Pair Refactoring/Rewriting

Synchronous pull requests

Asynchronous pull requests

HotCommunication

High Skill Transfer

Low Skill Transfer

ColdCommunication

* http://www.martinbauer.com/Articles/Open-Project-Management/Communication Alistair Cockburn, “Agile Software Development”, Addison-Wesley 2002

Information absorption Visual—65%

Auditory—30%Kinesthetic—5%

FeedbackLoop

Hot Communication &High Skill Transfer

Pair Programming

Opportunistic Pairing

Pair Refactoring/Rewriting

Synchronous pull requests

Asynchronous pull requests

HotCommunication

High Skill Transfer

Low Skill Transfer

ColdCommunication

* http://www.martinbauer.com/Articles/Open-Project-Management/Communication Alistair Cockburn, “Agile Software Development”, Addison-Wesley 2002

Information absorption Visual—65%

Auditory—30%Kinesthetic—5%

FeedbackLoop

Reading code

Hot Communication &High Skill Transfer

Pair Programming

Opportunistic Pairing

Pair Refactoring/Rewriting

Synchronous pull requests

Asynchronous pull requests

HotCommunication

High Skill Transfer

Low Skill Transfer

ColdCommunication

* http://www.martinbauer.com/Articles/Open-Project-Management/Communication Alistair Cockburn, “Agile Software Development”, Addison-Wesley 2002

Information absorption Visual—65%

Auditory—30%Kinesthetic—5%

FeedbackLoop

2 people on email

Reading code

Hot Communication &High Skill Transfer

Pair Programming

Opportunistic Pairing

Pair Refactoring/Rewriting

Synchronous pull requests

Asynchronous pull requests

HotCommunication

High Skill Transfer

Low Skill Transfer

ColdCommunication

* http://www.martinbauer.com/Articles/Open-Project-Management/Communication Alistair Cockburn, “Agile Software Development”, Addison-Wesley 2002

Information absorption Visual—65%

Auditory—30%Kinesthetic—5%

FeedbackLoop

Code out loud!

2 people on email

Reading code

Novice

Adv. Beg

Competent

Proficient

Expert

ExampleWeak

ProfessionalDeveloper

SkillScorecard

Novice

Adv. Beg

Competent

Proficient

Expert

Clean Code, TDD, and

OO Thinkingmoves toward

the “mostskilled” at a

rate you canadjust

LanguageIdioms and strengths/

weaknessesget shared

among the

team

More skills are

picked up byincluding

specialistsin process and

observing“tips and

tricks”

“Have cheap people do easy things under the CLOSE supervision of someone who knows the difference”

- Ken Auer, 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” - Ken Auer, 2013 SCNA talk “Craftsmen Cannot Live on Stack Overflow and Github Alone”

To a Novice, an Advanced Beginner looks like an Expert

Craftsmanship Levels*

* http://bit.ly/29bHHU9

Craftsmanship Levels*

* http://bit.ly/29bHHU9

Craftsmanship Levels*

* http://bit.ly/29bHHU9

Craftsmanship Levels*

* http://bit.ly/29bHHU9

Craftsmanship Levels*

* http://bit.ly/29bHHU9

Craftsmanship Levels*

* http://bit.ly/29bHHU9

Craftsmanship Levels*

* http://bit.ly/29bHHU9

Wisdom

Knowledge

Longevity

Novice

Adv. Beginner

Competent

Proficient

ExpertEA

SYMED

.HA

RDEA

SYMED

.HA

RD

EASY

MED

.HA

RD

Effectively Troubleshoot and correct Production

Support Challenges

Solidly Deliver on Well-Defined Tasks on Simple

Projects or subsets of Non-trivial Projects

Solidly Deliver on Well-Defined Tasks on Non-

trivial to Complex Projects

Hitting the Target w/ Software Developers

Co

mpl

exit

y

Longevity

Novice

Adv. Beginner

Competent

Proficient

ExpertEA

SYMED

.HA

RD

EASY

MED

.HA

RD

Turn Clear Requested

Features into Well-defined

Tasks

Turn Ill-defined Features into Prioritized

Well-defined tasks

Hitting the Target w/ Software Developers

Longevity

Novice

Adv. Beginner

Competent

Proficient

ExpertEA

SYMED

.HA

RD

EASY

MED

.HA

RD

Identify and Manage Inherent Complexity of

Technical Challenges and

Avoid Introducing Complexity

Identify Inherent Complexity of

Project/Customer Challenges and

Avoid Introducing Complexity or

Further Challenges

Co

mpl

exit

y

Hitting the Target w/ Software Developers

Basic Rules for Building Software Assets

Take this home with you… assess your team and tasks and how you are going about managing inherent complexity and avoiding/reducing introduced complexity

Basic Rules for Building Software Assets

• The Ratio of Experts-Novices should change based on the nature of the project

Take this home with you… assess your team and tasks and how you are going about managing inherent complexity and avoiding/reducing introduced complexity

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

Take this home with you… assess your team and tasks and how you are going about managing inherent complexity and avoiding/reducing introduced complexity

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

Take this home with you… assess your team and tasks and how you are going about managing inherent complexity and avoiding/reducing introduced complexity

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 which people

Take this home with you… assess your team and tasks and how you are going about managing inherent complexity and avoiding/reducing introduced complexity

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 which people

• What form(s) of “two sets of eyes” is appropriate in what contexts

Take this home with you… assess your team and tasks and how you are going about managing inherent complexity and avoiding/reducing introduced complexity

Co

mpl

exit

y

Longevity

Benefits of Agility + Expertise

Co

mpl

exit

y

Longevity

Benefits of Agility + Expertise

Co

mpl

exit

y

Longevity

Benefits of Agility + Expertise

Trivial Tasks anyone can do with Async Pull

Request

Co

mpl

exit

y

Longevity

Benefits of Agility + Expertise

Trivial Tasks anyone can do with Async Pull

Request

Prototype needs highly skilled dev/

designer(s) with little code review but

significant stakeholder review

Co

mpl

exit

y

Longevity

Benefits of Agility + Expertise

Trivial Tasks anyone can do with Async Pull

Request

Prototype needs highly skilled dev/

designer(s) with little code review but

significant stakeholder review

“Spiking” a New Feature typically needs

proficient dev with customer rep

feedback

Co

mpl

exit

y

Longevity

Benefits of Agility + Expertise

New Feature Walking

Skeleton: built in test-driven fashion by proficient dev

with pair

Trivial Tasks anyone can do with Async Pull

Request

Prototype needs highly skilled dev/

designer(s) with little code review but

significant stakeholder review

“Spiking” a New Feature typically needs

proficient dev with customer rep

feedback

Co

mpl

exit

y

Longevity

Benefits of Agility + Expertise

Fleshing Out New Feature can be done by less experienced test-driven pairs

New Feature Walking

Skeleton: built in test-driven fashion by proficient dev

with pair

Trivial Tasks anyone can do with Async Pull

Request

Prototype needs highly skilled dev/

designer(s) with little code review but

significant stakeholder review

“Spiking” a New Feature typically needs

proficient dev with customer rep

feedback

Co

mpl

exit

y

Longevity

Benefits of Agility + ExpertiseStandards and Architecture

designed/enforced by Craftsmen

Fleshing Out New Feature can be done by less experienced test-driven pairs

New Feature Walking

Skeleton: built in test-driven fashion by proficient dev

with pair

Trivial Tasks anyone can do with Async Pull

Request

Prototype needs highly skilled dev/

designer(s) with little code review but

significant stakeholder review

“Spiking” a New Feature typically needs

proficient dev with customer rep

feedback

Co

mpl

exit

y

Longevity

Benefits of Agility + ExpertiseStandards and Architecture

designed/enforced by Craftsmen

Fleshing Out New Feature can be done by less experienced test-driven pairs

New Feature Walking

Skeleton: built in test-driven fashion by proficient dev

with pair

Debt Reduction identified,

prioritized, and attacked by

experienced pairs

Trivial Tasks anyone can do with Async Pull

Request

Prototype needs highly skilled dev/

designer(s) with little code review but

significant stakeholder review

“Spiking” a New Feature typically needs

proficient dev with customer rep

feedback

Co

mpl

exit

y

Longevity

Benefits of Agility + ExpertiseStandards and Architecture

designed/enforced by Craftsmen

Fleshing Out New Feature can be done by less experienced test-driven pairs

New Feature Walking

Skeleton: built in test-driven fashion by proficient dev

with pair

Well-defined Maintenance Tasks

can be done by “anyone” who has learned in context

Debt Reduction identified,

prioritized, and attacked by

experienced pairs

Trivial Tasks anyone can do with Async Pull

Request

Prototype needs highly skilled dev/

designer(s) with little code review but

significant stakeholder review

“Spiking” a New Feature typically needs

proficient dev with customer rep

feedback

Basic Rules for Building Software Craftsmen

Take this home with you… assess yourself and tasks and how you are going about giving and gaining wisdom. Geeks who know that people matter are the smartest geeks.

Basic Rules for Building Software Craftsmen

• Seek Hot Communication and High Skill Transfer situations for yourself and others

Take this home with you… assess yourself and tasks and how you are going about giving and gaining wisdom. Geeks who know that people matter are the smartest geeks.

Basic Rules for Building Software Craftsmen

• Seek Hot Communication and High Skill Transfer situations for yourself and others

• Be Hungry, Humble, and Smart

Take this home with you… assess yourself and tasks and how you are going about giving and gaining wisdom. Geeks who know that people matter are the smartest geeks.

Basic Rules for Building Software Craftsmen

• Seek Hot Communication and High Skill Transfer situations for yourself and others

• Be Hungry, Humble, and Smart

“Knowledge makes arrogant, but love edifies. If anyone supposes that he knows anything, he has not yet known as he ought to know” (1 Corinthians 8:1b-2a, NASB)

Take this home with you… assess yourself and tasks and how you are going about giving and gaining wisdom. Geeks who know that people matter are the smartest geeks.

Basic Rules for Building Software Craftsmen

• Seek Hot Communication and High Skill Transfer situations for yourself and others

• Be Hungry, Humble, and Smart

“Knowledge makes arrogant, but love edifies. If anyone supposes that he knows anything, he has not yet known as he ought to know” (1 Corinthians 8:1b-2a, NASB)

“When pride comes, then comes dishonor, But with the humble is wisdom.” (Proverbs 11:2, NASB)

Take this home with you… assess yourself and tasks and how you are going about giving and gaining wisdom. Geeks who know that people matter are the smartest geeks.

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

• RoleModel’s Craftsmanship Levels: http://bit.ly/29bHHU9