The productivity power play: Practice, focus, and use big honking machines

Andy Singleton
Andy Singleton
Published in
2 min readNov 30, 2014

I can think of three ways to be more productive, from first principles. When applied to software development process, they all lead to releasing more frequently.

  1. Practice
  2. Do the right thing
  3. Use more machines

Practice

We can get more efficient at anything with practice and optimization. This effect explains almost all of the productivity difference between Waterfall and Agile. In the agile process, we do more cycles, so we get better at each step.

Releases can be VERY stressful. Continuous delivery removes this stress by doing releases more frequently and optimizing down to a button push.

Do the right thing

If you do the wrong thing — something that nobody cares about — half the time, you cut your productivity in half. When we make software, and measure if anybody cares, we find out that “a very large percentage of our ideas are bad”. Users ignore at least 50% of the new stuff we give them. If we measure usage, and figure out what users are ignoring, and then remove it from our development roadmap, we can double development productivity for zero extra cost.

Measurement is very important. More frequent releases = more measurements

Use more machines

This is the big win. With bigger and bigger machines, one farmer can produce 100X more food than a farmer from 100 years ago. One coal miner using giant machines can dig thousands of times the amount of coal that John Henry was able to dig. Programming is the same as farming or coal mining. We are getting more productive because we are using more machines. I believe that one programmer can work about 10X faster today compared with 20 years ago. Why? They have more automation and they use more machines.

Agile used to be about ways to organize a team. But, there is very little new in the world of organizing teams since our ancestors organized a hunting party for mammoths. In contrast, we see a huge surge in innovations around coding, building, testing, and deploying software — what the agile guys call “technical practices”. This technology is just getting started. Automated coding will come soon.

automation

When you do frequent releases, you automate the build, test, and deploy cycle. You use more machines. You use them more frequently. You gain productivity in a straightforward way.

--

--

Andy Singleton
Andy Singleton

Software entrepreneur/engineer. Building DeFi banking at Maxos — https://maxos.finance . Previously started Assembla, PowerSteering Software, SNL Financial.