87
Move slow and mend things @KevlinHenney

Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Move slow and mend things

@KevlinHenney

Page 2: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Move fast and break things

Page 3: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

https://twitter.com/KevlinHenney/status/922803893167427584

Page 4: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

speed

Page 5: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

velocity

Page 6: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

v = vx + vy

Page 7: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

v = |v|

Page 8: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

v =st_

Page 9: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

t

s

Page 10: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

t

s

Page 11: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

t

s [T]

[T]

Page 12: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

utilisation

Page 13: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

estimation accuracy

Page 14: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

ObserveGather information

from a range of

sources

OrientUnderstand where

you're at and where

you want to be

DecideDevelop a plan for

action

ActCarry out the plan

Boyd's OODA Loop

Page 15: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

DecideDevelop a plan for

action

ActCarry out the plan

ObserveGather information

from a range of

sources

OrientUnderstand where

you're at and where

you want to be

Boyd's OODA Loop

Page 16: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

PlanEstablish

hypothesis, goal or

work tasks

DoCarry out plan

StudyReview what has

been done against

plan (a.k.a. Check)

ActRevise approach

or artefacts based

on study

Deming/Shewhart Cycle

Page 17: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business
Page 18: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business
Page 19: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

You have to finish things —

that's what you learn from,

you learn by finishing things.

Neil Gaiman

Page 20: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

codetestsscripts

Page 21: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

codified knowledge

Page 22: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

knowledge acquisition

Page 23: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

learning

Page 24: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

communication

Page 25: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

social negotiation

Page 26: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

model of participation

Page 27: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

The biggest advantage of

autonomously working teams is

risk reduction through increased

group intelligence.

Kevlin Henneyhttps://jaxlondon.com/blog/java-core-languages/the-error-of-our-ways-kevlin-henney/

Page 28: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

There’s little correlation between a

group’s collective intelligence and

the IQs of its individual members.

But if a group includes more

women, its collective intelligence

rises.

"What Makes a Team Smarter? More Women"Anita Woolley & Thomas W Malone

http://hbr.org/2011/06/defend-your-research-what-makes-a-team-smarter-more-women/

Page 29: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

The four conditions that characterize wise crowds:diversity of opinion, independence, decentralization, and aggregation.

Page 30: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Aligning a poorly performing IT organization to

the right business objectives still won’t get the

objectives accomplished.

Richard F Connell

David Schpilberg, Steve Berez, Rudy Puryear and Sachin Shah

"Avoiding the Alignment Trap in Information Technology"

MIT Sloan Management Review

http://sloanreview.mit.edu/article/avoiding-the-alignment-trap-in-it/

Page 31: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business
Page 32: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business
Page 33: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

The first rule of scaling agile is…

don't do it!

Or rather, try to avoid it for as

long as you possibly can.

Andreas RowellFirst Rule of Scaling Agile – DON'T!

https://www.linkedin.com/pulse/first-rule-scaling-agile-dont-andreas-rowell/

Page 34: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Software development does not

have economies of scale.

Development has diseconomies

of scale.

Allan KellyBeyond Projects

http://www.slideshare.net/allankellynet/no-prokects-beyond-projects-refreshed-version

Page 35: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

completion time for one person

𝑡 = 𝑡1

Page 36: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

division of labour

𝑡 =𝑡1𝑛

Page 37: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

𝑡 = 𝑡1 1 − 𝑝𝑛 − 1

𝑛

portion in parallel

Amdahl's law

Page 38: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

communication overhead(typical)

connections (worst case)

𝑡 = 𝑡1 1 − 𝑝𝑛 − 1

𝑛+ 𝑘

𝑛 𝑛 − 1

2

Page 39: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

𝑡 = 𝑡1 1 − 𝑝𝑛 − 1

𝑛+ 𝑘

𝑛 𝑛 − 1

2

Page 40: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

The Facebook iOS app has over 18,000 Objective-C classes, and in a single week 429 people contributing to it.

Facebook's code quality problemGraham King

http://www.darkcoding.net/software/facebooks-code-quality-problem/

Page 41: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Architecture is a hypothesis,

that needs to be proven by

implementation and

measurement.

Tom Gilb

Page 42: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

“Move fast and break things” [...]

— Is this a good or a bad thing?

JAX Londonhttps://jaxlondon.com/blog/java-core-languages/the-error-of-our-ways-kevlin-henney/

Page 43: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

It is a context-specific thing. When applied within

the appropriate context it can be considered a

good thing, an invitation to experiment freely

and without restraint, to discover new ways of

working and thinking, to break out of an overly

comfortable or stuck place.

Kevlin Henneyhttps://jaxlondon.com/blog/java-core-languages/the-error-of-our-ways-kevlin-henney/

Page 44: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

On the other hand, when applied outside the

appropriate context it can undermine people

and their work, can come across as

irresponsible, arrogant and lacking in self-

awareness. I would consider this a bad thing.

Kevlin Henneyhttps://jaxlondon.com/blog/java-core-languages/the-error-of-our-ways-kevlin-henney/

Page 45: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business
Page 46: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business
Page 47: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

https://twitter.com/tackline/status/757562488363843584

Page 48: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business
Page 49: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business
Page 50: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business
Page 51: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Knight Capital Group realized a $460 million

loss in 45 minutes.

Doug Sevenhttps://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/

Page 52: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

The update to SMARS was intended to

replace old, unused code referred to as

“Power Peg” — functionality that Knight

hadn’t used in 8-years.

Doug Sevenhttps://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/

Page 53: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

The code that that was updated repurposed

an old flag that was used to activate the

Power Peg functionality.

Doug Sevenhttps://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/

Page 54: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Why code that had been dead for 8 years

was still present in the code base is a

mystery, but that’s not the point.

Doug Sevenhttps://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/

Page 55: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Dev

Page 56: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

During the deployment of the new code,

however, one of Knight’s technicians did not

copy the new code to one of the eight

SMARS computer servers.

Securities and Exchange Commissionhttps://www.sec.gov/litigation/admin/2013/34-70694.pdf

Page 57: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Knight did not have a second technician

review this deployment and no one at

Knight realized that the Power Peg code had

not been removed from the eighth server.

Securities and Exchange Commissionhttps://www.sec.gov/litigation/admin/2013/34-70694.pdf

Page 58: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Ops

Page 59: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

OpsDev

Page 60: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business
Page 61: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

The failure resulted in a loss of more than US$370 million.

http://en.wikipedia.org/wiki/Cluster_(spacecraft)

Page 62: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business
Page 63: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

v = vx + vy

Page 64: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

v = |v|

Page 65: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Simple Testing Can Prevent

Most Critical Failures

An Analysis of Production Failures in

Distributed Data-Intensive Systems

https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf

Page 66: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Almost all catastrophic failures

are the result of incorrect

handling of non-fatal errors

explicitly signalled in software.

https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf

Page 67: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

A majority of the production

failures (77%) can be

reproduced by a unit test.

https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf

Page 68: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Testing Is the

Engineering

Rigor of Software

Development

Neal Ford

Page 69: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

PlanEstablish

hypothesis, goal or

work tasks

DoCarry out plan

StudyReview what has

been done against

plan (a.k.a. Check)

ActRevise approach

or artefacts based

on study

Deming/Shewhart Cycle

Page 70: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

WriteCreate or extend a

test case for new

behaviour — as it's

new, the test fails

ReifyImplement so that

the test passes

ReflectIs there something in

the code or tests

that could be

improved?

RefactorMake it so!

Test-First Cycle

Page 71: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Development needs to go further

than the technical stack; the full

stack includes the world and

people around the software.

Kevlin Henneyhttps://jaxlondon.com/blog/java-core-languages/the-error-of-our-ways-kevlin-henney/

Page 72: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

http://www.michaeleisen.org/blog/?p=358

Page 73: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

http://www.michaeleisen.org/blog/?p=358

Page 74: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

http://www.michaeleisen.org/blog/?p=358

Page 75: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

http://www.bbc.co.uk/news/business-37582150

Page 76: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

S-Programs

P-Programs

E-ProgramsMeir M Lehman

"Programs, Life Cycles, and Laws of Software Evolution"

Page 77: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

S-Programs

Programs whose function is formally

defined by and derivable from a

specification.

Meir M Lehman"Programs, Life Cycles, and Laws of Software Evolution"

Page 78: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

P-Programs

Despite the fact that the problem to be

solved can be precisely defined, the

acceptability of a solution is

determined by the environment in

which it is embedded.

Meir M Lehman"Programs, Life Cycles, and Laws of Software Evolution"

Page 79: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

E-Programs

Programs that mechanize a human or

societal activity.

The program has become a part of the

world it models, it is embedded in it.

Meir M Lehman"Programs, Life Cycles, and Laws of Software Evolution"

Page 80: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business
Page 81: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Always design a thing by

considering it in its next

larger context.

Eliel Saarinen

Page 82: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

We show, via a massive (N = 689,003) experiment on Facebook, that emotional states can be transferred to others via emotional contagion, leading people to experience the same emotions without their awareness.

http://www.pnas.org/content/111/24/8788.full

Page 83: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

A/B testing

Page 84: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

As mankind relies more and more on the

software that controls the computers that

in turn guide society, it becomes crucial

that people control absolutely the

programs and the processes by which they

are produced, throughout the useful life of

the program.

Meir M Lehman"Programs, Life Cycles, and Laws of Software Evolution"

Page 85: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Move fast and break things

Page 86: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Move slow and mend things

Page 87: Move slow and mend things Slow...wise crowds: diversity of opinion, independence, decentralization, and aggregation. Aligning a poorly performing IT organization to the right business

Move slow and learn things