mend things @KevlinHenney Move fast and break things - - PowerPoint PPT Presentation

mend things
SMART_READER_LITE
LIVE PREVIEW

mend things @KevlinHenney Move fast and break things - - PowerPoint PPT Presentation

Move slow and mend things @KevlinHenney Move fast and break things https://twitter.com/KevlinHenney/status/922803893167427584 speed velocity v = v x + v y v = | v | v = s _ t s t s t s [T] [T] t utilisation estimation accuracy


slide-1
SLIDE 1

Move slow and mend things

@KevlinHenney

slide-2
SLIDE 2

Move fast and break things

slide-3
SLIDE 3

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

slide-4
SLIDE 4

speed

slide-5
SLIDE 5

velocity

slide-6
SLIDE 6

v = vx + vy

slide-7
SLIDE 7

v = |v|

slide-8
SLIDE 8

v = s t _

slide-9
SLIDE 9

t s

slide-10
SLIDE 10

t s

slide-11
SLIDE 11

t s [T] [T]

slide-12
SLIDE 12

utilisation

slide-13
SLIDE 13

estimation accuracy

slide-14
SLIDE 14

Observe

Gather information from a range of sources

Orient

Understand where you're at and where you want to be

Decide

Develop a plan for action

Act

Carry out the plan

Boyd's OODA Loop

slide-15
SLIDE 15

Decide

Develop a plan for action

Act

Carry out the plan

Observe

Gather information from a range of sources

Orient

Understand where you're at and where you want to be

Boyd's OODA Loop

slide-16
SLIDE 16

Plan

Establish hypothesis, goal or work tasks

Do

Carry out plan

Study

Review what has been done against plan (a.k.a. Check)

Act

Revise approach
  • r artefacts based
  • n study

Deming/Shewhart Cycle

slide-17
SLIDE 17
slide-18
SLIDE 18
slide-19
SLIDE 19

You have to finish things — that's what you learn from, you learn by finishing things.

Neil Gaiman

slide-20
SLIDE 20

code tests scripts

slide-21
SLIDE 21

codified knowledge

slide-22
SLIDE 22

knowledge acquisition

slide-23
SLIDE 23

learning

slide-24
SLIDE 24

communication

slide-25
SLIDE 25

social negotiation

slide-26
SLIDE 26

model of participation

slide-27
SLIDE 27

The biggest advantage of autonomously working teams is risk reduction through increased group intelligence.

Kevlin Henney

https://jaxlondon.com/blog/java-core-languages/the-error-of-our-ways-kevlin-henney/
slide-28
SLIDE 28

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/
slide-29
SLIDE 29

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

slide-30
SLIDE 30

Aligning a poorly performing IT organization to the right business objectives still won’t get the

  • bjectives 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/
slide-31
SLIDE 31
slide-32
SLIDE 32
slide-33
SLIDE 33

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 Rowell

First Rule of Scaling Agile – DON'T!

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

Software development does not have economies of scale. Development has diseconomies

  • f scale.

Allan Kelly

Beyond Projects

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

completion time for one person

𝑢 = 𝑢1

slide-36
SLIDE 36

division of labour

𝑢 = 𝑢1 𝑜

slide-37
SLIDE 37

𝑢 = 𝑢1 1 − 𝑞 𝑜 − 1 𝑜

portion in parallel Amdahl's law

slide-38
SLIDE 38

communication

  • verhead

(typical) connections (worst case)

𝑢 = 𝑢1 1 − 𝑞 𝑜 − 1 𝑜 + 𝑙 𝑜 𝑜 − 1 2

slide-39
SLIDE 39

𝑢 = 𝑢1 1 − 𝑞 𝑜 − 1 𝑜 + 𝑙 𝑜 𝑜 − 1 2

slide-40
SLIDE 40

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 problem

Graham King

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

slide-41
SLIDE 41

Architecture is a hypothesis, that needs to be proven by implementation and measurement.

Tom Gilb

slide-42
SLIDE 42

“Move fast and break things” [...] — Is this a good or a bad thing?

JAX London

https://jaxlondon.com/blog/java-core-languages/the-error-of-our-ways-kevlin-henney/
slide-43
SLIDE 43

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 Henney

https://jaxlondon.com/blog/java-core-languages/the-error-of-our-ways-kevlin-henney/
slide-44
SLIDE 44

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 Henney

https://jaxlondon.com/blog/java-core-languages/the-error-of-our-ways-kevlin-henney/
slide-45
SLIDE 45
slide-46
SLIDE 46
slide-47
SLIDE 47 https://twitter.com/tackline/status/757562488363843584
slide-48
SLIDE 48
slide-49
SLIDE 49
slide-50
SLIDE 50
slide-51
SLIDE 51

Knight Capital Group realized a $460 million loss in 45 minutes.

Doug Seven

https://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/
slide-52
SLIDE 52

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 Seven

https://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/
slide-53
SLIDE 53

The code that that was updated repurposed an old flag that was used to activate the Power Peg functionality.

Doug Seven

https://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/
slide-54
SLIDE 54

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 Seven

https://dougseven.com/2014/04/17/knightmare-a-devops-cautionary-tale/
slide-55
SLIDE 55

Dev

slide-56
SLIDE 56

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 Commission

https://www.sec.gov/litigation/admin/2013/34-70694.pdf
slide-57
SLIDE 57

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 Commission

https://www.sec.gov/litigation/admin/2013/34-70694.pdf
slide-58
SLIDE 58

Ops

slide-59
SLIDE 59

Ops Dev

slide-60
SLIDE 60
slide-61
SLIDE 61

The failure resulted in a loss

  • f more than US$370 million.
http://en.wikipedia.org/wiki/Cluster_(spacecraft)
slide-62
SLIDE 62
slide-63
SLIDE 63

v = vx + vy

slide-64
SLIDE 64

v = |v|

slide-65
SLIDE 65

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
slide-66
SLIDE 66

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
slide-67
SLIDE 67

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
slide-68
SLIDE 68

Testing Is the Engineering Rigor of Software Development

Neal Ford

slide-69
SLIDE 69

Plan

Establish hypothesis, goal or work tasks

Do

Carry out plan

Study

Review what has been done against plan (a.k.a. Check)

Act

Revise approach
  • r artefacts based
  • n study

Deming/Shewhart Cycle

slide-70
SLIDE 70

Write

Create or extend a test case for new behaviour — as it's new, the test fails

Reify

Implement so that the test passes

Reflect

Is there something in the code or tests that could be improved?

Refactor

Make it so!

Test-First Cycle

slide-71
SLIDE 71

Development needs to go further than the technical stack; the full stack includes the world and people around the software.

Kevlin Henney

https://jaxlondon.com/blog/java-core-languages/the-error-of-our-ways-kevlin-henney/
slide-72
SLIDE 72 http://www.michaeleisen.org/blog/?p=358
slide-73
SLIDE 73 http://www.michaeleisen.org/blog/?p=358
slide-74
SLIDE 74 http://www.michaeleisen.org/blog/?p=358
slide-75
SLIDE 75 http://www.bbc.co.uk/news/business-37582150
slide-76
SLIDE 76

S-Programs P-Programs E-Programs

Meir M Lehman

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

slide-77
SLIDE 77

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"

slide-78
SLIDE 78

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"

slide-79
SLIDE 79

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"

slide-80
SLIDE 80
slide-81
SLIDE 81

Always design a thing by considering it in its next larger context.

Eliel Saarinen

slide-82
SLIDE 82

We show, via a massive (N = 689,003) experiment on Facebook, that emotional states can be transferred to

  • thers via emotional contagion, leading

people to experience the same emotions without their awareness.

http://www.pnas.org/content/111/24/8788.full
slide-83
SLIDE 83

A/B testing

slide-84
SLIDE 84

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"

slide-85
SLIDE 85

Move fast and break things

slide-86
SLIDE 86

Move slow and mend things

slide-87
SLIDE 87

Move slow and learn things