1 of 32

remedies for frustration

with speed, quality, and reviews

Martin Pool

linux.conf.au 2013

(open the speaker notes)

2 of 32

3 of 32

4 of 32

5 of 32

performance

6 of 32

<jelmer> rewriting is often a good idea,

it just never works out

7 of 32

design for scaling

8 of 32

deterministic effort tests

9 of 32

performance test tips

tc qdisc to locally simulate a predictable slow network.

/proc/sys/vm/drop_caches to reduce vm variation.

10 of 32

fast Python

11 of 32

be careful of caches

12 of 32

quality

13 of 32

tested fakes

Key subsystems provide their own fake implementation.

Use testscenarios to run the same tests against all implementations.

14 of 32

Done Done

15 of 32

A ramp for testing

16 of 32

high-speed delivery

<jml> coding leads to deployment; deployment leads to waiting; waiting leads to anger; anger leads to ...

17 of 32

look for latency before work is

- reviewed

- merged to mainline

- into a release

- built into binaries

- on the production server

- in the OS or auto-update channel

- supported by all related systems

- discovered by users

- working properly...

18 of 32

ordering ≫ scheduling

19 of 32

bug management

20 of 32

bugs: now, soon, never

21 of 32

black and white bugs

22 of 32

community

23 of 32

a model of developer growth

24 of 32

a bad code review

25 of 32

the purpose of review

to ensure people do not add trailing whitespace?

26 of 32

enjoyable first patches

Prompt, helpful reviews.

Don't move the goalposts.

Not too much refactoring.

Prefer integration tests.

27 of 32

patch piloting

  1. promise to help land patches
  2. track the backlog
  3. rota to make sure it's actually done
  4. celebrate success

28 of 32

but, but...!

29 of 32

go and try these:

  1. design for scaling
  2. effort tests
  3. tested fakes
  4. are we "done done"?
  5. handoffs and delays before availability?
  6. fast super-helpful reviews?
  7. bugs: now, soon, or never?
  8. order ≫ schedule

30 of 32

thanks!

lifeless, jml, flacoste, jelmer, jameinel, statik, vila, gz,

spiv, ianc, cinerama, abentley, stevea, sabdfl, ...

31 of 32

32 of 32

stable APIs or stable code?