Decremental Development @KevlinHenney Your customers do not buy - - PowerPoint PPT Presentation
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
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 maintain than no code.
Remember that there is no code more secure than no code.
I have made this [letter] longer than usual because I have not had time to make it shorter.
Blaise Pascal
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
I have made this [letter] longer than usual because I have not had time to make it shorter.
Blaise Pascal
time
I spent a lot of money on booze, birds and fast cars. The rest I just squandered.
George Best
speed
velocity
v = vx + vy
v = |v|
v = s t _
t s
t s
t s [T] [T]
utilisation
quality of estimation
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
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
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
The design process is an iterative one.
Andy Kinslow
A software system can best be designed if the testing is interlaced with the designing instead of being used after the design.
Alan Perlis
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
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
Why do cars have brakes?
Cars have brakes so you can slow down.
Cars have brakes so you can go fast.
code tests scripts
codified knowledge
knowledge acquisition
knowledge retention
learning
communication
social negotiation
model of participation
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/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/
The four conditions that characterize wise crowds: diversity of opinion, independence, decentralization, and aggregation.
size
scale
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/
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
completion time for one person
𝑢 = 𝑢1
division of labour
𝑢 = 𝑢1 𝑜
𝑢 = 𝑢1 1 − 𝑞 𝑜 − 1 𝑜
portion in parallel Amdahl's law
communication
- verhead
(typical) connections (worst case)
𝑢 = 𝑢1 1 − 𝑞 𝑜 − 1 𝑜 + 𝑙 𝑜 𝑜 − 1 2
𝑢 = 𝑢1 1 − 𝑞 𝑜 − 1 𝑜 + 𝑙 𝑜 𝑜 − 1 2
t n
http://boingboing.net/2016/04/05/man-recreates-tsas-47400.html
<style> body { background-color: black; text-align: center; font-size: 50vw; color: blue; } </style> <script> window.onload = window.onclick = () => { document.body.innerHTML = ["←", "→"][Math.floor(Math.random() * 2)] } </script> <body/>
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
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/
For every activity there is a certain appropriate scale.
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?
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?
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.
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.
thrust drag lift gravity
design debt practice conway
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