4. !"#$%&!'()*(+&!+*,)-.%/+0&
Who
is
this
James
Lewis? Introduc<on
A developer
I’ve been called an architect but not to my face
XP Coach
Your storyteller today
5. !"#$%&!'()*(+&!+*,)-.%/+0&
AP
of
AA Introduc<on
Don’t make the same mistakes as me
What this talk isn’t
Complete
The answer
6. !"#$%&!'()*(+&!+*,)-.%/+0&
Representa<ve
work Introduc<on
Media
Organisa,on Investment
Bank Publishing
House Investment
Bank
Programme
Organisa<onal
Change
Agile
Coaching Agile
Coaching
Management
Coaching Programme
~
60
people >
200
people 30-‐40
people 10
people
All
front
office
5
teams 4
teams 1
team
developers
“How
do
we
scale
agile
“We
need
to
get
CMMi
2
year
rewrite.
“it
can’t
“we’ve
been
told
to
to
programme
size?” cer<fied.
Is
Agile
ok?” fail
if
we
use
agile?” ‘Go
Agile’”
7. !"#$%&!'()*(+&!+*,)-.%/+0&
Who
is
choosing
Agile? Introduc<on
Is it still developers?
Is it a golf course decision?
This brings new challenges
But we like challenges right?
24. !"#$%&!'()*(+&!+*,)-.%/+0&
Organisa<onal
Change Root
Causes
This is about organisations adapting to change in their operating environment.
25. !"#$%&!'()*(+&!+*,)-.%/+0&
Organisa<onal
Change Root
Causes
Along comes the World Wide Web...
Organisations must track changes to stay
competitive
Command and control style organisations
favour changing everything at once
26. !"#$%&!'()*(+&!+*,)-.%/+0&
Organisa<onal
Change Root
Causes
This is about managing changes to people, and organisations
28. !"#$%&!'()*(+&!+*,)-.%/+0&
Organisa<onal
Change Root
Causes
This is about systemic optimisations over local optimisations
“When it comes to changing the system, most people concentrate on doing the wrong thing
righter”
John Seddon, Freedom from Command and Control
29. !"#$%&!'()*(+&!+*,)-.%/+0&
Organisa<onal
Change Root
Causes
Performance is not a convex
function of the choices we make
There are local and global
optima
Sometimes incremental change
is not enough
31. !"#$%&!'()*(+&!+*,)-.%/+0&
Is
the
organisa<onal
design
to
blame? Root
Causes
There is no such thing as the
right design
There is no such thing as the
right process
But there are combinations that
are better than others
32. !"#$%&!'()*(+&!+*,)-.%/+0&
People
break.
Deal
with
it. Root
Causes
Flaccid Technical Lead
Inverted Servant Leader
Change everything at once
Be careful what you wish for
Novices don’t know what they
want
36. !"#$%&!'()*(+&!+*,)-.%/+0&
The
Dreyfus
Model
of
Skill
Acquisi<on So
what
do
we
do?
Novice
Context free, determines action based on
mechanical application of rules
Advanced Beginner
More context, rules organised into success
and failure patterns
Compentent
Goal focussed, applies patterns to achieve
successful goals, plan formulation
Proficient
Seeks wider experiences, holistic view of
situation. More intuative
Expert
transcends reliance on rules, guidelines, and
maxims. Intuative decsions
37. !"#$%&!'()*(+&!+*,)-.%/+0&
The
Dreyfus
model
applied
to
pair
programming So
what
do
we
do?
Novice
Maintains attention while pairing, doesn’t grab mouse or keyboard
Advanced Beginner
Asks more experienced people to let them drive, tries to maintain a fair split between driving and
navigating
Competent
Prefers pairing to working alone, ensures code is reviewed when no
pair is available…
Proficient
Encourages pair to drive most of the time if pair is less experienced, swaps role
frequently,
does not interrupt driver's train of thought, gives driver a chance to correct himself
before pointing out mistakes, encourages pair to follow good coding practices while
driving…
Expert
Seeks time to pair with less experienced developers, spots smaller oversights such as missed warnings,
uses pairing as an opportunity to train or mentor…
38. !"#$%&!'()*(+&!+*,)-.%/+0&
The
Dreyfus
model
applied
to... So
what
do
we
do?
Updating a Story Wall
Continuous Integration
Agile Estimation
Using User Stories
Retrospective participation
Retrospective facilitation
http://www.thekua.com/atwork/presentations-and-papers/xp2009/
Pat Kua, Agile 2009
40. !"#$%&!'()*(+&!+*,)-.%/+0&
Conway’s
Law So
what
do
we
do?
“Organizations which design
systems... are constrained to
produce designs which are copies
of the communication structure of
those organizations”
Melvin Conway, 1968
51. !"#$%&!'()*(+&!+*,)-.%/+0&
Encapsulated
Team Transi<onal
change
New
requirements
Introduce
a
WiP
board Add
a
backlog
through
PM
Queues,
Classes
of
service,
WiP
limits,
Translate
Profit!!
Enterprise
Service
requirements
Bus*
* Ok, not this one
53. !"#$%&!'()*(+&!+*,)-.%/+0&
“Do
the
Wrong
Thing
Righter” So
what
do
we
do?
Traditional software development
methodologies concentrate on the process
and then on the people
Process Mavens decide which process you
should follow
Architecture teams decide which
technology you should use
Targets decide how well you are doing
54. !"#$%&!'()*(+&!+*,)-.%/+0&
“Do
the
Wrong
Thing
Righter” So
what
do
we
do?
Agile software development methodologies
concentrate on the people and the
customer
The team decides the process and
technology
The customer decides what is built
Measures are used to understand flow
What roles do people have here:
Agile coach?
Developer/Architect/Lead Techy?
PM?
QA?
CTO/CEO/CIO/ETC?s
Straw poll:
What roles do people have here:
Agile coach?
Developer/Architect/Lead Techy?
PM?
QA?
CTO/CEO/CIO/ETC?s
Straw poll:
What roles do people have here:
Agile coach?
Developer/Architect/Lead Techy?
PM?
QA?
CTO/CEO/CIO/ETC?s
Straw poll:
What roles do people have here:
Agile coach?
Developer/Architect/Lead Techy?
PM?
QA?
CTO/CEO/CIO/ETC?s
Straw poll:
What roles do people have here:
Agile coach?
Developer/Architect/Lead Techy?
PM?
QA?
CTO/CEO/CIO/ETC?s
Do you like the horrible abbreviation?
My attempt to make this look &#x201C;professional&#x201D;
&#x201C;Oh yes, I&#x2019;m an AAA-P Blackbelt&#x201D; etc
Patterns of Enterprise Application Architecure
P of EAA
I reckon theres a book here somewhere&#x2026;
This is a talk about my experiences introducing agile principles and practices to various organisations.
I;ve done this a fair bit, not always successfully
This talk is about some of the things that have stood out for me
Some of the patterns I&#x2019;ve seen repeated
Do you like the horrible abbreviation?
My attempt to make this look &#x201C;professional&#x201D;
&#x201C;Oh yes, I&#x2019;m an AAA-P Blackbelt&#x201D; etc
Patterns of Enterprise Application Architecure
P of EAA
I reckon theres a book here somewhere&#x2026;
This is a talk about my experiences introducing agile principles and practices to various organisations.
I;ve done this a fair bit, not always successfully
This talk is about some of the things that have stood out for me
Some of the patterns I&#x2019;ve seen repeated
Do you like the horrible abbreviation?
My attempt to make this look &#x201C;professional&#x201D;
&#x201C;Oh yes, I&#x2019;m an AAA-P Blackbelt&#x201D; etc
Patterns of Enterprise Application Architecure
P of EAA
I reckon theres a book here somewhere&#x2026;
This is a talk about my experiences introducing agile principles and practices to various organisations.
I;ve done this a fair bit, not always successfully
This talk is about some of the things that have stood out for me
Some of the patterns I&#x2019;ve seen repeated
Do you like the horrible abbreviation?
My attempt to make this look &#x201C;professional&#x201D;
&#x201C;Oh yes, I&#x2019;m an AAA-P Blackbelt&#x201D; etc
Patterns of Enterprise Application Architecure
P of EAA
I reckon theres a book here somewhere&#x2026;
This is a talk about my experiences introducing agile principles and practices to various organisations.
I;ve done this a fair bit, not always successfully
This talk is about some of the things that have stood out for me
Some of the patterns I&#x2019;ve seen repeated
Names have been changed
Mixed up details
Some may not even have happened&#x2026;
Ok, not this last one
It used to be the developers who wanted to try out the new cool stuff - who were getting pissed off with heavy weight process and waste.
Who were looking at groovy stuff like TDD, CI etc. Valuing feedback in their process.
It used to be the developers who wanted to try out the new cool stuff - who were getting pissed off with heavy weight process and waste.
Who were looking at groovy stuff like TDD, CI etc. Valuing feedback in their process.
It used to be the developers who wanted to try out the new cool stuff - who were getting pissed off with heavy weight process and waste.
Who were looking at groovy stuff like TDD, CI etc. Valuing feedback in their process.
It used to be the developers who wanted to try out the new cool stuff - who were getting pissed off with heavy weight process and waste.
Who were looking at groovy stuff like TDD, CI etc. Valuing feedback in their process.
CORE DOMAIN - &#x201C;Value chain activities&#x201D; &#x2013; the stuff you do to actually meet your customers needs &#x2013;
SUPPORTING DOMAINS - &#x201C;Supporting activities&#x201D; &#x2013; the stuff you need to enable you to do that: HR, Payroll etc &#x2013;
The organisation is the means through which these activities are organised in order to implement strategy.
People
The set of people who are part of the organisation, their talents, skills (dreyfus), beliefs, objectives.
Organisational Architecture
Is it command and control or is it process oriented/Systems managed?
The relationships between departments etc.
Also includes personal networks &#x2013; very important
Routines
All the managerial processes, how work is allocated, how work is done.
Where does the formal decision making authority lie? etc&#x2026;
Culture
The mindsets of the members of the firm
The fundamental shared values of everyone in the firm
The fundamental beliefs in why the organisation exists
CORE DOMAIN - &#x201C;Value chain activities&#x201D; &#x2013; the stuff you do to actually meet your customers needs &#x2013;
SUPPORTING DOMAINS - &#x201C;Supporting activities&#x201D; &#x2013; the stuff you need to enable you to do that: HR, Payroll etc &#x2013;
The organisation is the means through which these activities are organised in order to implement strategy.
People
The set of people who are part of the organisation, their talents, skills (dreyfus), beliefs, objectives.
Organisational Architecture
Is it command and control or is it process oriented/Systems managed?
The relationships between departments etc.
Also includes personal networks &#x2013; very important
Routines
All the managerial processes, how work is allocated, how work is done.
Where does the formal decision making authority lie? etc&#x2026;
Culture
The mindsets of the members of the firm
The fundamental shared values of everyone in the firm
The fundamental beliefs in why the organisation exists
CORE DOMAIN - &#x201C;Value chain activities&#x201D; &#x2013; the stuff you do to actually meet your customers needs &#x2013;
SUPPORTING DOMAINS - &#x201C;Supporting activities&#x201D; &#x2013; the stuff you need to enable you to do that: HR, Payroll etc &#x2013;
The organisation is the means through which these activities are organised in order to implement strategy.
People
The set of people who are part of the organisation, their talents, skills (dreyfus), beliefs, objectives.
Organisational Architecture
Is it command and control or is it process oriented/Systems managed?
The relationships between departments etc.
Also includes personal networks &#x2013; very important
Routines
All the managerial processes, how work is allocated, how work is done.
Where does the formal decision making authority lie? etc&#x2026;
Culture
The mindsets of the members of the firm
The fundamental shared values of everyone in the firm
The fundamental beliefs in why the organisation exists
CORE DOMAIN - &#x201C;Value chain activities&#x201D; &#x2013; the stuff you do to actually meet your customers needs &#x2013;
SUPPORTING DOMAINS - &#x201C;Supporting activities&#x201D; &#x2013; the stuff you need to enable you to do that: HR, Payroll etc &#x2013;
The organisation is the means through which these activities are organised in order to implement strategy.
People
The set of people who are part of the organisation, their talents, skills (dreyfus), beliefs, objectives.
Organisational Architecture
Is it command and control or is it process oriented/Systems managed?
The relationships between departments etc.
Also includes personal networks &#x2013; very important
Routines
All the managerial processes, how work is allocated, how work is done.
Where does the formal decision making authority lie? etc&#x2026;
Culture
The mindsets of the members of the firm
The fundamental shared values of everyone in the firm
The fundamental beliefs in why the organisation exists
Performance or Quality as a convex function of choice
An organisations design is formed of a vast number of variables, the choices that are made in maximising or minimising those variables affect performance
Performance or Quality as a convex function of choice
An organisations design is formed of a vast number of variables, the choices that are made in maximising or minimising those variables affect performance
Performance or Quality as a convex function of choice
An organisations design is formed of a vast number of variables, the choices that are made in maximising or minimising those variables affect performance
Performance or Quality as a convex function of choice
An organisations design is formed of a vast number of variables, the choices that are made in maximising or minimising those variables affect performance
Performance or Quality as a convex function of choice
An organisations design is formed of a vast number of variables, the choices that are made in maximising or minimising those variables affect performance
If you describe it to someone and they find something novel in it, then it isn&#x2019;t a pattern
Not novel
Chunked knowledge
Name
Context
Description
Consequences
If you describe it to someone and they find something novel in it, then it isn&#x2019;t a pattern
Not novel
Chunked knowledge
Name
Context
Description
Consequences
FlaccidTechnicalLead
Context
All of a sudden you go from a team practicing Big Up Front Design to a team using XP and evolutionary design
What
This is someone whose world has changed.
In the old world, he did Design and Architecture ERD&#x2019;s, Class Diagrams, told people what to do and made all the decisions.
In the new world, he doesn&#x2019;t know what to do.
Example, Publishing house, the technical leads did not know what to do &#x2013; this is a Dreyfus thing.
Consequences
No technical direction for the project or programme. No understanding that when using incremental development practices design is soo important that it happens all the time. Worst case, no design happens because &#x201C;that what Agile is?&#x201D;
Code base aquires technical debt at a terrifying rate.
Context
The PM has been told to &#x201C;be agile&#x201D;, has read a book or two, maybe even seen it done once before, and off we go...
What
Knows everything
Doesn&#x2019;t understand that now:
Its about acting on the System
Not the individual tasks
Not the individual people
Consequences
Worst case, Publishing house where the PM actually made things unbearable
Core pair hours &#x2013; not allowed to talk to people in them, &#x201C;we have story huddles for that&#x201D;
Completely silent team, terrifying!
&#x201C;Go on, self organise!&#x201D;
Context
Agile &#x2018;expert&#x2019;
What
You&#x2019;ve seen it once before, maybe even success before - great! Now you are in charge.
Perfect novice behaviour
Haven&#x2019;t seen enough success or failure to know that the answer is always &#x2018;It Depends&#x2019;
Consequences
Lack of trust, lack of authority, stuff implemented exactly as it was the last time - even though the context is completely different
ChangeEverythingAtOnce
Context
New project, 1 year rewrite, 40 people
What
Same language, but.
new frameworks and libraries
new organisational structure
new management practices
new analysis
new skills to be learned (TDD, pairing etc)
roles change, QA pairing with BA to write tests etc story writing,
Consequences
Everything is very very slow. And Agile is then to blame&#x2026;
You *will* miss your deadline
ChangeEverythingAtOnce
Context
New project, 1 year rewrite, 40 people
What
Same language, but.
new frameworks and libraries
new organisational structure
new management practices
new analysis
new skills to be learned (TDD, pairing etc)
roles change, QA pairing with BA to write tests etc story writing,
Consequences
Everything is very very slow. And Agile is then to blame&#x2026;
You *will* miss your deadline
Context
Example: User Stories and acceptance criteria &#x2013; tell someone they need five acceptance criteria, and they *always* have five criteria
Example: Semantic Diffusion&#x2026; BDD &#x2013; people basically telling Dan that he was wrong about what BDD means,
What
We forget that as Coaches or experienced practitioners we have more exposure to this stuff.
Quite often we offer a simplification of the real world, an approximation. Lies to children&#x2026;
Consequences
Anecdote about people consistently overestimating their own level of expertise &#x2013; 74% of drivers believe they were &#x201C;better than average&#x201D;&#x2026;
Dreyfus, be careful talking to be people who don&#x2019;t have the same level of expertise as you do
Much wailing and gnashing of teeth. People actually doing what you said exactly
Dreyfus novices want rules. So if you give someone rules, make sure they are the right ones!
Context
Example: User Stories and acceptance criteria &#x2013; tell someone they need five acceptance criteria, and they *always* have five criteria
Example: Semantic Diffusion&#x2026; BDD &#x2013; people basically telling Dan that he was wrong about what BDD means,
What
We forget that as Coaches or experienced practitioners we have more exposure to this stuff.
Quite often we offer a simplification of the real world, an approximation. Lies to children&#x2026;
Consequences
Anecdote about people consistently overestimating their own level of expertise &#x2013; 74% of drivers believe they were &#x201C;better than average&#x201D;&#x2026;
Dreyfus, be careful talking to be people who don&#x2019;t have the same level of expertise as you do
Much wailing and gnashing of teeth. People actually doing what you said exactly
Dreyfus novices want rules. So if you give someone rules, make sure they are the right ones!
Context
You are going to be our Agile Coach
What does that mean? Says I
Well we want you to be an advisor to us
Start of saying &#x201C;we want coaching&#x201D;
Touchy feely &#x2013; just make suggestions
End up saying &#x201C;You didn&#x2019;t lead us!&#x201D;
What
What they are really saying is:
As a novice, I haven&#x2019;t got a clue what I want &#x2013; I don&#x2019;t know what I don&#x2019;t know
So I will say &#x201C;just coach me, don&#x2019;t tell me what to do&#x201D;
When they get to advanced beginner, they say &#x2013; why didn&#x2019;t you just tell me what to do?
This is a failure on the coaches part.
It&#x2019;s not a coach vs leader thing
It&#x2019;s that coaching should take this into account and use the dreyfus model
Consequences
Well a loss of trust certainly.
It will make your job as a coach a lot harder
Straw poll on just enough design up front?
Embarking on a new way of working, losing Design Up Front and moving to using an evolutionary approach to design
What
Either people are scared of losing respect/their position (genuine worry)
Some are genuinely worried about quality
Believe that quality is a function of design (which it is)
And that the only way to do design is up front
Depends on whether they feel threatened by the changes or not
Consequences
Lots of thrashing around, meetings which generate nothing but hot air, angst and anger when the team builds something that they didn&#x2019;t forsee
Who has worked in an organisation where process changes are imposed every 18 months?
Smart people getting together and designing the &#x2018;best process&#x201D;
same process for Nuclear power stations as the web site.
Management by lowest common denominator
Consequences: constantly fighting against the process, targets, measures etc
Project Manager and some of the team had worked with ThoughtWorks four years previously. Then we arrived, and dared to suggest different things.
Four years ago you told us to do XXX
Why are you telling us something different now?
Why should we use finger charts, burn-up was always good enough for us!
Excel/Mingle
Problem with deliberate reflection &#x2013; not really getting &#x201C;it&#x201D;
&#x201C;It&#x2019;s a bunch of processes that you follow, not stuff that you can change&#x201D;
A Life without reflection is a life not worth living&#x201D; &#x2013; Evelyn Waugh&#x2026;
It becomes just another process to be followed.
When the process starts breaking (and it always will in certain circumstances) then it doesn&#x2019;t adapt as is should
Context
You are on a team that wants to use agile principles and practices.
The rest of the organisation is waterfall, or six-sigma or CMMi.
What
You use the square peg round hole adapter.
At the boundary use an anti-corruption layer.
If the PMO wants gant charts then that&#x2019;s what they get,
If the Enterprise Architecture group wants class diagrams then that&#x2019;s what they get
The anti-pattern here is that you are trying to force this into a command and control management structure.
There will always be friction if you are having to do this.
Your PM will be thrashing trying to produce stuff to satisfy the PMO.
Governance becomes difficult and will possibly break.
You have been told that going Agile is the next big thing and it&#x2019;s all about visibilty and getting software out the door more quickly
So you tell your PM he is a Scrum master, give him a book and off you go.
They have looked around and seen that &#x201C;Agile&#x201D; (read Scrum) will help them to produce stuff faster. And so they adopt it.
Engineering practices, empowering their people, training their people.
Consequences
Well, that didn&#x2019;t work out so well did it? Lets do it the old way. At least then we were able to produce some stuff, instead of going to all these Scrums and prioritisation meetings etc.
So you revert. At the depth of dispair (in the satir change curve) is the likliest place to revert
You have been told that going Agile is the next big thing and it&#x2019;s all about visibilty and getting software out the door more quickly
So you tell your PM he is a Scrum master, give him a book and off you go.
They have looked around and seen that &#x201C;Agile&#x201D; (read Scrum) will help them to produce stuff faster. And so they adopt it.
Engineering practices, empowering their people, training their people.
Consequences
Well, that didn&#x2019;t work out so well did it? Lets do it the old way. At least then we were able to produce some stuff, instead of going to all these Scrums and prioritisation meetings etc.
So you revert. At the depth of dispair (in the satir change curve) is the likliest place to revert
They have to - process mavens and top down decision making make this inevitable.
They lurch from one change to another
Traditional retailers fail because they are unable to incrementally change
Traditional retailers fail because they are unable to incrementally change
Traditional retailers fail because they are unable to incrementally change
Cost of change
We can&#x2019;t make this linear&#x2026; BUT
We can make the dip less dippy.
All about flattening the cost of change curve
Virginia Satir &#x2013; cost of change curve
Add a person to indicate that it&#x2019;;s about how people react to change
When do most changes fail?
&#x2018;valley of despair&#x2019;
When do most changes fail?
&#x2018;valley of despair&#x2019;
When do most changes fail?
&#x2018;valley of despair&#x2019;
Cost of change
We can&#x2019;t make this linear&#x2026; BUT
We can make the dip less dippy.
All about flattening the cost of change curve
Virginia Satir &#x2013; cost of change curve
Add a person to indicate that it&#x2019;;s about how people react to change
Cherry picking doesn&#x2019;t work - compensating for ignorance with increased control doesn&#x2019;t work
Hamstrung Scrum
Complementary Variables They are complementary if doing more of one, increases the returns of doing more of another
XP Practices
You can imagine that Continuous Integration, Pairing and TDD are complementary groups of practices.
That is, doing CI on it&#x2019;s own is good, but when you practice Test (or Behaviour) Driven Development as well you get an an increase in Quality that is greater than just doing one of the other.
<strong>The best processes arise from self organising teams</strong>
Much as ivory tower architecture groups trade adaptability for consistency of approach, process mavens trade effectiveness for efficiency. By mandating the implementation of a particular process pattern for an organisations value chain activities they are coming at it arse backwards. Patterns arise from successful solutions
Coherent Groups of choices
Groups of choices can be complementary &#x2013; Systems management/Lean and XP for example
Substitutes
You are trying to ensure that a consistent (or in most cases just acceptable) quality of code is checked in
You can have someone review all the code before check-in, or another option would be to pair program.
One becomes more attractive the more of it you do (in this case because of economies of scale.
Cherry picking doesn&#x2019;t work - compensating for ignorance with increased control doesn&#x2019;t work
Hamstrung Scrum
Complementary Variables They are complementary if doing more of one, increases the returns of doing more of another
XP Practices
You can imagine that Continuous Integration, Pairing and TDD are complementary groups of practices.
That is, doing CI on it&#x2019;s own is good, but when you practice Test (or Behaviour) Driven Development as well you get an an increase in Quality that is greater than just doing one of the other.
<strong>The best processes arise from self organising teams</strong>
Much as ivory tower architecture groups trade adaptability for consistency of approach, process mavens trade effectiveness for efficiency. By mandating the implementation of a particular process pattern for an organisations value chain activities they are coming at it arse backwards. Patterns arise from successful solutions
Coherent Groups of choices
Groups of choices can be complementary &#x2013; Systems management/Lean and XP for example
Substitutes
You are trying to ensure that a consistent (or in most cases just acceptable) quality of code is checked in
You can have someone review all the code before check-in, or another option would be to pair program.
One becomes more attractive the more of it you do (in this case because of economies of scale.
Cherry picking doesn&#x2019;t work - compensating for ignorance with increased control doesn&#x2019;t work
Hamstrung Scrum
Complementary Variables They are complementary if doing more of one, increases the returns of doing more of another
XP Practices
You can imagine that Continuous Integration, Pairing and TDD are complementary groups of practices.
That is, doing CI on it&#x2019;s own is good, but when you practice Test (or Behaviour) Driven Development as well you get an an increase in Quality that is greater than just doing one of the other.
<strong>The best processes arise from self organising teams</strong>
Much as ivory tower architecture groups trade adaptability for consistency of approach, process mavens trade effectiveness for efficiency. By mandating the implementation of a particular process pattern for an organisations value chain activities they are coming at it arse backwards. Patterns arise from successful solutions
Coherent Groups of choices
Groups of choices can be complementary &#x2013; Systems management/Lean and XP for example
Substitutes
You are trying to ensure that a consistent (or in most cases just acceptable) quality of code is checked in
You can have someone review all the code before check-in, or another option would be to pair program.
One becomes more attractive the more of it you do (in this case because of economies of scale.
Cherry picking doesn&#x2019;t work - compensating for ignorance with increased control doesn&#x2019;t work
Hamstrung Scrum
Complementary Variables They are complementary if doing more of one, increases the returns of doing more of another
XP Practices
You can imagine that Continuous Integration, Pairing and TDD are complementary groups of practices.
That is, doing CI on it&#x2019;s own is good, but when you practice Test (or Behaviour) Driven Development as well you get an an increase in Quality that is greater than just doing one of the other.
<strong>The best processes arise from self organising teams</strong>
Much as ivory tower architecture groups trade adaptability for consistency of approach, process mavens trade effectiveness for efficiency. By mandating the implementation of a particular process pattern for an organisations value chain activities they are coming at it arse backwards. Patterns arise from successful solutions
Coherent Groups of choices
Groups of choices can be complementary &#x2013; Systems management/Lean and XP for example
Substitutes
You are trying to ensure that a consistent (or in most cases just acceptable) quality of code is checked in
You can have someone review all the code before check-in, or another option would be to pair program.
One becomes more attractive the more of it you do (in this case because of economies of scale.
Cherry picking doesn&#x2019;t work - compensating for ignorance with increased control doesn&#x2019;t work
Hamstrung Scrum
Complementary Variables They are complementary if doing more of one, increases the returns of doing more of another
XP Practices
You can imagine that Continuous Integration, Pairing and TDD are complementary groups of practices.
That is, doing CI on it&#x2019;s own is good, but when you practice Test (or Behaviour) Driven Development as well you get an an increase in Quality that is greater than just doing one of the other.
<strong>The best processes arise from self organising teams</strong>
Much as ivory tower architecture groups trade adaptability for consistency of approach, process mavens trade effectiveness for efficiency. By mandating the implementation of a particular process pattern for an organisations value chain activities they are coming at it arse backwards. Patterns arise from successful solutions
Coherent Groups of choices
Groups of choices can be complementary &#x2013; Systems management/Lean and XP for example
Substitutes
You are trying to ensure that a consistent (or in most cases just acceptable) quality of code is checked in
You can have someone review all the code before check-in, or another option would be to pair program.
One becomes more attractive the more of it you do (in this case because of economies of scale.
Cherry picking doesn&#x2019;t work - compensating for ignorance with increased control doesn&#x2019;t work
Hamstrung Scrum
Complementary Variables They are complementary if doing more of one, increases the returns of doing more of another
XP Practices
You can imagine that Continuous Integration, Pairing and TDD are complementary groups of practices.
That is, doing CI on it&#x2019;s own is good, but when you practice Test (or Behaviour) Driven Development as well you get an an increase in Quality that is greater than just doing one of the other.
<strong>The best processes arise from self organising teams</strong>
Much as ivory tower architecture groups trade adaptability for consistency of approach, process mavens trade effectiveness for efficiency. By mandating the implementation of a particular process pattern for an organisations value chain activities they are coming at it arse backwards. Patterns arise from successful solutions
Coherent Groups of choices
Groups of choices can be complementary &#x2013; Systems management/Lean and XP for example
Substitutes
You are trying to ensure that a consistent (or in most cases just acceptable) quality of code is checked in
You can have someone review all the code before check-in, or another option would be to pair program.
One becomes more attractive the more of it you do (in this case because of economies of scale.
Cherry picking doesn&#x2019;t work - compensating for ignorance with increased control doesn&#x2019;t work
Hamstrung Scrum
Complementary Variables They are complementary if doing more of one, increases the returns of doing more of another
XP Practices
You can imagine that Continuous Integration, Pairing and TDD are complementary groups of practices.
That is, doing CI on it&#x2019;s own is good, but when you practice Test (or Behaviour) Driven Development as well you get an an increase in Quality that is greater than just doing one of the other.
<strong>The best processes arise from self organising teams</strong>
Much as ivory tower architecture groups trade adaptability for consistency of approach, process mavens trade effectiveness for efficiency. By mandating the implementation of a particular process pattern for an organisations value chain activities they are coming at it arse backwards. Patterns arise from successful solutions
Coherent Groups of choices
Groups of choices can be complementary &#x2013; Systems management/Lean and XP for example
Substitutes
You are trying to ensure that a consistent (or in most cases just acceptable) quality of code is checked in
You can have someone review all the code before check-in, or another option would be to pair program.
One becomes more attractive the more of it you do (in this case because of economies of scale.
Cherry picking doesn&#x2019;t work - compensating for ignorance with increased control doesn&#x2019;t work
Hamstrung Scrum
Complementary Variables They are complementary if doing more of one, increases the returns of doing more of another
XP Practices
You can imagine that Continuous Integration, Pairing and TDD are complementary groups of practices.
That is, doing CI on it&#x2019;s own is good, but when you practice Test (or Behaviour) Driven Development as well you get an an increase in Quality that is greater than just doing one of the other.
<strong>The best processes arise from self organising teams</strong>
Much as ivory tower architecture groups trade adaptability for consistency of approach, process mavens trade effectiveness for efficiency. By mandating the implementation of a particular process pattern for an organisations value chain activities they are coming at it arse backwards. Patterns arise from successful solutions
Coherent Groups of choices
Groups of choices can be complementary &#x2013; Systems management/Lean and XP for example
Substitutes
You are trying to ensure that a consistent (or in most cases just acceptable) quality of code is checked in
You can have someone review all the code before check-in, or another option would be to pair program.
One becomes more attractive the more of it you do (in this case because of economies of scale.
Cherry picking doesn&#x2019;t work - compensating for ignorance with increased control doesn&#x2019;t work
Hamstrung Scrum
Complementary Variables They are complementary if doing more of one, increases the returns of doing more of another
XP Practices
You can imagine that Continuous Integration, Pairing and TDD are complementary groups of practices.
That is, doing CI on it&#x2019;s own is good, but when you practice Test (or Behaviour) Driven Development as well you get an an increase in Quality that is greater than just doing one of the other.
<strong>The best processes arise from self organising teams</strong>
Much as ivory tower architecture groups trade adaptability for consistency of approach, process mavens trade effectiveness for efficiency. By mandating the implementation of a particular process pattern for an organisations value chain activities they are coming at it arse backwards. Patterns arise from successful solutions
Coherent Groups of choices
Groups of choices can be complementary &#x2013; Systems management/Lean and XP for example
Substitutes
You are trying to ensure that a consistent (or in most cases just acceptable) quality of code is checked in
You can have someone review all the code before check-in, or another option would be to pair program.
One becomes more attractive the more of it you do (in this case because of economies of scale.
Cherry picking doesn&#x2019;t work - compensating for ignorance with increased control doesn&#x2019;t work
Hamstrung Scrum
Complementary Variables They are complementary if doing more of one, increases the returns of doing more of another
XP Practices
You can imagine that Continuous Integration, Pairing and TDD are complementary groups of practices.
That is, doing CI on it&#x2019;s own is good, but when you practice Test (or Behaviour) Driven Development as well you get an an increase in Quality that is greater than just doing one of the other.
<strong>The best processes arise from self organising teams</strong>
Much as ivory tower architecture groups trade adaptability for consistency of approach, process mavens trade effectiveness for efficiency. By mandating the implementation of a particular process pattern for an organisations value chain activities they are coming at it arse backwards. Patterns arise from successful solutions
Coherent Groups of choices
Groups of choices can be complementary &#x2013; Systems management/Lean and XP for example
Substitutes
You are trying to ensure that a consistent (or in most cases just acceptable) quality of code is checked in
You can have someone review all the code before check-in, or another option would be to pair program.
One becomes more attractive the more of it you do (in this case because of economies of scale.
Cherry picking doesn&#x2019;t work - compensating for ignorance with increased control doesn&#x2019;t work
Hamstrung Scrum
Complementary Variables They are complementary if doing more of one, increases the returns of doing more of another
XP Practices
You can imagine that Continuous Integration, Pairing and TDD are complementary groups of practices.
That is, doing CI on it&#x2019;s own is good, but when you practice Test (or Behaviour) Driven Development as well you get an an increase in Quality that is greater than just doing one of the other.
<strong>The best processes arise from self organising teams</strong>
Much as ivory tower architecture groups trade adaptability for consistency of approach, process mavens trade effectiveness for efficiency. By mandating the implementation of a particular process pattern for an organisations value chain activities they are coming at it arse backwards. Patterns arise from successful solutions
Coherent Groups of choices
Groups of choices can be complementary &#x2013; Systems management/Lean and XP for example
Substitutes
You are trying to ensure that a consistent (or in most cases just acceptable) quality of code is checked in
You can have someone review all the code before check-in, or another option would be to pair program.
One becomes more attractive the more of it you do (in this case because of economies of scale.
Shu traditional wisdom &#x2014; learning fundamentals, techniques, heuristics, proverbs
Ha breaking with tradition &#x2014; finding exceptions to traditional wisdom, reflecting on their truth, finding new ways, techniques, and proverbs
Ri transcendence &#x2014; there are no techniques or proverbs, all moves are natural
Dreyfus
Stuart Dreyfus and Hubert Dreyfus
Shu traditional wisdom &#x2014; learning fundamentals, techniques, heuristics, proverbs
Ha breaking with tradition &#x2014; finding exceptions to traditional wisdom, reflecting on their truth, finding new ways, techniques, and proverbs
Ri transcendence &#x2014; there are no techniques or proverbs, all moves are natural
Dreyfus
Stuart Dreyfus and Hubert Dreyfus
Shu traditional wisdom &#x2014; learning fundamentals, techniques, heuristics, proverbs
Ha breaking with tradition &#x2014; finding exceptions to traditional wisdom, reflecting on their truth, finding new ways, techniques, and proverbs
Ri transcendence &#x2014; there are no techniques or proverbs, all moves are natural
Dreyfus
Stuart Dreyfus and Hubert Dreyfus
Straw poll on Dreyfus
Explanation - decision tree -> pattern matching...
Novice - no context, rules
Advanced Beginner - more context, still rule based
Competent - more goal focussed, still consciously uses rules
Proficient - has walked through the door - started to internalise the rules
Expert - Completely intuative reasoning, can&#x2019;t give explanations as to *why* just that is *is*
Straw poll on Dreyfus
Stewart Drefus, Systems Analyst
Hubert Dreyfus, Philosopher
Explanation - decision tree -> pattern matching...
Straw poll on Dreyfus
Stewart Drefus, Systems Analyst
Hubert Dreyfus, Philosopher
Explanation - decision tree -> pattern matching...
Straw poll on Dreyfus
Stewart Drefus, Systems Analyst
Hubert Dreyfus, Philosopher
Explanation - decision tree -> pattern matching...
Straw poll on Dreyfus
Stewart Drefus, Systems Analyst
Hubert Dreyfus, Philosopher
Explanation - decision tree -> pattern matching...
Straw poll on Dreyfus
Stewart Drefus, Systems Analyst
Hubert Dreyfus, Philosopher
Explanation - decision tree -> pattern matching...
Liz Keogh and Andy Palmer
Liz Keogh and Andy Palmer
Liz Keogh and Andy Palmer
Liz Keogh and Andy Palmer
Liz Keogh and Andy Palmer
Ipso facto organisations are shite
&#x201C;If you are a group of 9 people to write you a compiler, you get a 9 pass compiler&#x2026;&#x201D;
Most software looks like this:
context switching
always in meetings
getting requirements in differing formats
managing constantly changing priorities
context switching
always in meetings
getting requirements in differing formats
managing constantly changing priorities
What if this was a problem with an enterprise architecture?
What if this was a problem with an enterprise architecture?
Context switching
lots of meetings
ad-hoc requirements
shifting priorities
Single format for requirements
Developers concentrate on development
less context switching
no breaking changes when team practices change