allan kellyTwitter: @allankellynet
http://www.allankelly.net
Do it RightThenDo the Right thing
NDC Oslo June 2013
Allan Kelly
97 Things Every Programmer Should Know
Henney, 2010Context Encapsulation inPattern Languages of Program Design Volume 5, 2006
Business Analysis and Leadership:
Influencing change
Penny Pullan & James Archer
2013
Consulting software development & strategy
Training for AgileAuthor– Changing Software Development: Learning to
be Agile (2008, Wiley)– Business Patterns for Software Developers
(2012, Wiley - ISBN: 978-1119999249)
Management commandment
Do the Right ThingThen
Do it Right
I am here to
challenge
I am not saying
Knowingly do the Wrong Thing
I am saying
You only know the Right Thing by doing
Exhibit A - The Alignment Trap
Less Effective
More Effective
Highly aligned
Less aligned
‘Alignment trap’11% companies+13% IT spending-14% 3 year sales growth
‘Maintenance zone’74% companiesAvg IT spending-2% 3 year sales growth
‘IT Enabled growth’7% companies-6% IT spending+35% 3 year sales growth
‘Well-oiled IT’8% companies-15% IT spending+11% 3 year sales growth
Sour
ce: S
hpilb
erg,
Ber
ez, P
urye
ar, S
hah:
M
IT S
loan
Rev
iew
, Fal
l 200
7
1
2
Doi
ng th
e rig
ht th
ings
Doing things right
Doing the right thing…
• Costs – Money: £consultants, $analysts, €managers– Time: Analysis, research, meetings, discussions
• Assumptions– There is a right answer– And it is knowable– No value in wrong answer– That wrong & right are definable
Exhibit B – Lean Start-Up
• Knowing is difficult• Get into the market to
find out• See what people will
$pay for– Not just what that €say
• Doing need not be expensive
Exhibit C – Changing (Me!)
• Its about Learning• To Learn we must do• How can you increase
the pace of learning?
Learning
Change
Exhibit D – He who learns fasters“We understand that the only
competitive advantage the
company of the future will have
is its managers’ ability to learn
faster than then their
competitors.”
Arie de Geus, The Living Company 1988
How do you learn fast?
• Do• How do you do?• Iterate– Iterate faster– Iterate more
• Learn• Learn to iterate faster, learn to aim better
Ready, Fire, Fire, Fire, Aim, Fire, …
Choose your weapon
M16 from Dragunova via WikiCommons, Creative Commons LicenseL115A3 from Defence on WikiCommon Open Government License
Or is your choice more like….
M16 from Dragunova via WikiCommons, Creative Commons LicenseBerdan Sharps rifle via WikiCommons, Public Domain image
Which are you?
Your delivery (supply) side?Your business (demand) side?
(Ever heard about the M16 delivery team coupled with a 19th century requirements process?)
Choose your weapon
Snipers Rifle• Known target• Clear shot• Time to prepare• Limited variables
Machine Gun• Many targets• Confused environment• Time short – Action
required• Many variables• Frequently miss
Choose your approach
Sniper development• Market is slow moving• Market it known• Competitors are slow• Capital is scarce• Development is expensive• Risk of collateral damage,
e.g. brand, individuals
Machine development• Market is fast• Market is changing• Competitors are fast• Capital is cheap• Development is cheap (and
fast)• Multiple failures, try again
Or do tools dictate approach?
“It takes a long time to reload and aim”Therefore
“take time to make sure every shot counts”
Or your competitors?
Asymmetric warfareYou Your competitor Result
Stalemate
Toast!
Toast! (Slow)
?
?
Iteration is the key
• Get good at iterating• Get good at iterating fast• Get good at learning from results– Test results with customer– Test output in the market
– And Evaluate
Close the loop – evaluate what you do & feedback
Let a thousand flowers bloom…
Get good at selecting those to keep - Cull the rest
Breaks are good
• Get good at….– Knowing when to stop– Stopping
• Technical has TDD, ATDD, BDD to stop• Corporate breaks– Portfolio management– Venture Capital funding model– Use a Dragon’s Den
You can’t see the future…
• You can’t know what will work• Stop wasting time and money guessing• Get good at probing – experimenting• Conduct a lot of experiments• Learn from experiments• Stop those which “don’t work”• Promote those which do
Iterate at all levels
Regularly Evaluate -> Set/change directionFrequently Collect next -> Decide nextMost frequently Developer -> Release
• Build capability to iterate – and USE IT• Use data gained from iteration• Iterate your way to to The Right Thing
Allan’s commandments
#1 Do it Right, Do it Fast; Learn & Iterate
#2 Fail fast, Fail Cheap; Evaluate, Learn
#3 Invest in breaks; Stop & Turn
Take-away
1. Fast iterations allow for learning– Learn to iterate fast– Then iterate in the market– Learn to evaluate & feedback
2. Fail fast, fail cheap, learn3. Invest in breaks
allan kellySoftware Strategy Ltd.
Twitter: @allankellynet