Decremental Development @KevlinHenney Your customers do not buy - - PowerPoint PPT Presentation

decremental
SMART_READER_LITE
LIVE PREVIEW

Decremental Development @KevlinHenney Your customers do not buy - - PowerPoint PPT Presentation

Decremental Development @KevlinHenney Your customers do not buy your software by the line. David Evans Remember that there is no code faster than no code. Taligent's Guide to Designing Programs Remember that there is no code cheaper to


slide-1
SLIDE 1

Decremental

Development

@KevlinHenney

slide-2
SLIDE 2

Your customers do not buy your software by the line.

David Evans

slide-3
SLIDE 3

Remember that there is no code faster than no code.

Taligent's Guide to Designing Programs

slide-4
SLIDE 4

Remember that there is no code cheaper to maintain than no code.

slide-5
SLIDE 5

Remember that there is no code more secure than no code.

slide-6
SLIDE 6 https://twitter.com/KevlinHenney/status/538296211166740480
slide-7
SLIDE 7

I have made this [letter] longer than usual because I have not had time to make it shorter.

Blaise Pascal

slide-8
SLIDE 8

Je n'ai fait celle-ci plus longue que parce que je n'ai pas eu le loisir de la faire plus courte.

Blaise Pascal

slide-9
SLIDE 9

I have made this [letter] longer than usual because I have not had time to make it shorter.

Blaise Pascal

slide-10
SLIDE 10

time

slide-11
SLIDE 11

I spent a lot of money on booze, birds and fast cars. The rest I just squandered.

George Best

slide-12
SLIDE 12

speed

slide-13
SLIDE 13

velocity

slide-14
SLIDE 14

v = vx + vy

slide-15
SLIDE 15

v = |v|

slide-16
SLIDE 16

v = s t _

slide-17
SLIDE 17

t s

slide-18
SLIDE 18

t s

slide-19
SLIDE 19

t s [T] [T]

slide-20
SLIDE 20

utilisation

slide-21
SLIDE 21

quality of estimation

slide-22
SLIDE 22

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-23
SLIDE 23

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-24
SLIDE 24

Plan

Establish hypothesis, goal or work tasks

Do

Carry out the 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-25
SLIDE 25

The design process is an iterative one.

Andy Kinslow

slide-26
SLIDE 26
slide-27
SLIDE 27

A software system can best be designed if the testing is interlaced with the designing instead of being used after the design.

Alan Perlis

slide-28
SLIDE 28

Plan

Establish hypothesis, goal or work tasks

Do

Carry out the 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-29
SLIDE 29

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-30
SLIDE 30

Why do cars have brakes?

slide-31
SLIDE 31

Cars have brakes so you can slow down.

slide-32
SLIDE 32

Cars have brakes so you can go fast.

slide-33
SLIDE 33 http://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/
slide-34
SLIDE 34 http://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/
slide-35
SLIDE 35 http://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/
slide-36
SLIDE 36 http://www.commitstrip.com/en/2016/08/25/a-very-comprehensive-and-precise-spec/
slide-37
SLIDE 37

code tests scripts

slide-38
SLIDE 38

codified knowledge

slide-39
SLIDE 39

knowledge acquisition

slide-40
SLIDE 40

knowledge retention

slide-41
SLIDE 41

learning

slide-42
SLIDE 42

communication

slide-43
SLIDE 43

social negotiation

slide-44
SLIDE 44

model of participation

slide-45
SLIDE 45

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-46
SLIDE 46

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-47
SLIDE 47

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

slide-48
SLIDE 48

size

slide-49
SLIDE 49

scale

slide-50
SLIDE 50
slide-51
SLIDE 51

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-52
SLIDE 52

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-53
SLIDE 53

completion time for one person

𝑢 = 𝑢1

slide-54
SLIDE 54

division of labour

𝑢 = 𝑢1 𝑜

slide-55
SLIDE 55

𝑢 = 𝑢1 1 − 𝑞 𝑜 − 1 𝑜

portion in parallel Amdahl's law

slide-56
SLIDE 56

communication

  • verhead

(typical) connections (worst case)

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

slide-57
SLIDE 57

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

t n

slide-58
SLIDE 58

http://boingboing.net/2016/04/05/man-recreates-tsas-47400.html

slide-59
SLIDE 59

<style> body { background-color: black; text-align: center; font-size: 50vw; color: blue; } </style> <script> window.onload = window.onclick = () => { document.body.innerHTML = ["&larr;", "&rarr;"][Math.floor(Math.random() * 2)] } </script> <body/>

slide-60
SLIDE 60

I have yet to see any problem, however complicated, which, when you looked at it in the right way, did not become still more complicated.

Anderson's Law

slide-61
SLIDE 61

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-62
SLIDE 62

For every activity there is a certain appropriate scale.

slide-63
SLIDE 63
slide-64
SLIDE 64

Th The e bas asic ic thesis hesis [.. ...] .] is that hat

  • rganiza

ganization tions s whi hich h design esign syst stems ems [.. ...] .] ar are e constrain nstrained ed to

  • pr

produce

  • duce designs

esigns whi hich h ar are e copie pies s

  • f the

he communic municati ation

  • n structu

ructures res

  • f the

hese se organiza ganization tions. s.

Melvin vin Conw nway How Do Committees Invent?

slide-65
SLIDE 65

We e ha have e seen een tha hat t this his fac act t ha has importan portant t implicatio plications ns for

  • r the

he man anag ageme ement nt of syst stem em design. esign. [.. ...] .] A design esign ef effo fort rt should hould be e

  • rganize

ganized d ac accord

  • rding

ing to the he ne need ed for

  • r communicatio

munication. n.

Melvin vin Conw nway How Do Committees Invent?

slide-66
SLIDE 66
slide-67
SLIDE 67

In referring to this as a ‘law,’ the appeal is to a force that will shape a system, much as a physical law, rather than as a rule that should be followed, as with the laws of a community or a state.

slide-68
SLIDE 68

In this sense it is not a law that can be broken—the force is always there—only one that can be counterbalanced by other forces.

slide-69
SLIDE 69

thrust drag lift gravity

slide-70
SLIDE 70

design debt practice conway

slide-71
SLIDE 71
slide-72
SLIDE 72

We may therefore picture the process of form- making as the action of a series of subsystems, all interlinked, yet sufficiently free of one another to adjust independently in a feasible amount of time. It works, because the cycles of correction and recorrection, which occur during adaptation, are restricted to one subsystem at a time.

Christopher Alexander

Notes on the Synthesis of Form

slide-73
SLIDE 73 https://twitter.com/kcpeppe/status/15473004648
slide-74
SLIDE 74

Remove to improve