Automation can cripple your flow

xkcd has the classic comic on automation:

Graphs showing expected vs. real flow of automation

The comic checks out, but this is the point today.

There’s something worse that can happen.

Dr. Lisanne Bainbridge wrote the classic Ironies of Automation (direct PDF link), and it’s worth a read.

Whenever you separate humans from the work of the systems they operate in, they begin to lose knowledge or never develop a working knowledge of how the systems work.

Take the classic case of linters in software development. A linter is a tool that checks various aspects of code, sometimes pointing out superficial formatting problems and sometimes raising more serious issues. Some linters have the ability to automatically correct these kinds of mistakes.

But if your developers simply code to appease the linter, they can begin to forget why the rules are in place and disengage from the critical thinking necessary to keep a software project healthy in the long run.

Also, half of the benefit of automation may simply be that you standardized some process. For example, you may have automated your deployment pipeline and seen great improvements in your flow. That’s great! But if you went from what I call “artisanal” deployments, where every push in every project is unique to the much more boring “we all deploy things the same way,” you probably didn’t need to automate that to get a benefit.

But now that it’s automated, have your developers lost their understanding of how code goes from commit to production?

There’s no doubt that machines can extend human capabilities. Just make sure they’re not causing your human teammates to disengage.


Like this message? I send out a short email each day to help software development leaders build organizations the deliver value. Join us!


Get the book!

Ready to learn how to build an autonomous, event-sourced microservices-based system? Practical Microservices is the hands-on guidance you've been looking for.

Roll up your sleeves and get ready to build Video Tutorials, the next-gen web-based learning platform. You'll build it as a collection of loosely-coupled autonomous services, developing a message store interface along the way.

When you're done, you'll be ready to contribute to microservices-based projects.

In ebook or in print.