Skip to content

Forget Velocity, Let's Talk Acceleration • Jessica Kerr • GOTO 2017


  • How do we get better at our job?
    • Our job doesn't get easier
  • Definition of "done"?
  • Why is this so hard?

The most important thing for a piece of software

  • Real estate: Location location location
  • Software: is it useful? Useful? Useful?

Definition of done

Software parenting

  • Software maintenance doesn't exist.
  • maintenance is doing the same thing every year
    • oil change
  • Every problem in software is different
    • (like parenting)
  • you can only stop parenting when when the software is done/dead
    • it's dead when it's no longer useful
  • analogy: baby -> adult (observability, auto re-deploy when it breaks)
    • adult: only need help for extreme circumstances

Our job is to change software, not build it


Why automation?

  • Saves kreplets (attention unit)
  • Changes behaviour by making the right thing easier
  • less yak shaving
  • Safety
    • Add a little check after something goes wrong so it doesn't happen again
  • Reproducibility & make docs simpler
    • run this script to reproduce
    • instead of run this script


  • How much you contribute to the team
  • Team's productivity with vs without you
  • Automation is generative

How much time should you spend to automate?

  • Time box
  • First time: ignore it
  • Second time, spend 15 mins
  • Third time: an hour
  • Then ask the group

Best programming language

  • The best programming language is the one you already know
  • You can learn a new programming language in a few weeks
  • You can learn the build tools, the ecosystem, the major frameworks and libraries, the idioms, the memory considerations, the garbage collection in decades

System mover, not system builder

Last update: 2023-04-24