Cloud Native Development is like 3D printing

You have probably printed hundreds of paper pages. The word processor makes this very simple. It sets up useful defaults for things like margin, gutter, kerning, spacing, etc. Many of you reading this probably don’t even know what most of those things are. That’s a good thing; the program handles it for you like magic. The number of things you have to be concerned about is low. Just type some words, click File -> Print and you’re done.

How about a 3D printer? This is completely different than normal printing. Unlike word processors, the programs you use to create something for a 3D printer are far more complicated. It takes a lot of training in order to be able to use them.

You have a lot more to consider as well. There are no sane defaults with 3-D printing. If you’re producing something mechanical you also have to understand physics and chemistry so that the parts don’t immediately break under use.

By CMitchell - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=35931807 Photo by CMitchell - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=35931807

Right now in companies around the world, senior leadership teams are frustrated with the lack of progress being made with their public cloud and DevOps adoption. They have made huge investments in technology and pay massive bills to Microsoft and AWS, and yet they still have only a few production workloads in the cloud, at best. The reports they get about those early systems are raising a lot of alarms with security and operations specialists.

What I am commonly seeing is a lack of understanding and empathy for the people we’re relying on to make this evolution work. Adopting DevOps and public cloud is like going from printing on paper to just-in-time manufacturing with an industrial 3-D printer. It has the same potential upsides, but it doesn’t come cheap or easy.

Teams deploying and operating their own applications have to understand infrastructure, operations, and security like never before. The number of things they have to be concerned with is massively larger than what they spent the first half of their career thinking about. Imagine asking the average office admin to take charge of designing and 3-D printing parts for a new rescue submarine. It’s not that they can’t do it - but you would understand when it took a long time for them to be productive and give them as much help as you could along the way.

This lack of empathy for the scope of the increase in complexity we are pushing onto the code writers drives C-level execs to miss critical parts of the transformation. Believing that they have smart software developers that can figure it out is an expensive mistake, and it won’t work. Learning has to become part of an engineers job, not something we ask them to do on the weekends.

Cover image by Jonathan Juursema used under CC license: https://commons.wikimedia.org/wiki/File:Felix_3D_Printer_-_Printing_Head.JPG