Skip to content

About the author of Daydream Drift

Tomasz Niezgoda (LinkedIn/tomaszniezgoda & GitHub/tniezg) is the author of this blog. It contains original content written with care.

Please link back to this website when referencing any of the materials.

Author:

Automation Is Our Demise

Published

I can easily envision self-flying AI which handles 99.99% of flights, but that 0.01% of exceptional situations will be awfully hard to train for. (...) We'd need to add many more nines before self-flying software start competing with professional human pilots (...) Better autopilots for ordinary conditions are one thing, but removing pilots from flying entirely is quite another.

-- TechCrunch

Autopilots can complete most of the work human pilots are tasked with today. But their use is intentionally limited. Why? Because human pilots need to constantly practice flying to stay on top of their game and be ready for the fraction of situations the autopilot cannot properly handle. Using an autopilot streamlines aviation but there might be a price to pay along the way for relying on it too much.

This remark works in the realm of software development too.

Out Of Sight, Out Of Mind

Out of the box software relieves a lot of responsibility and, consequently, reduces awareness. This allows promoting oneself to doing more integration- and management-focused tasks. While everything works the way it should, you're safe and reaping benefits. But as soon as something goes wrong, there's no easy fix in sight.

Why is a Junior a Junior

Outsourcing too many responsibilities is detrimental to developers' cognitive functioning.

In particular, the strategy to outsourcing work separates amateur developers from pros and is one reason why it's tough to recognize skilled devs. Ready-made solutions are widely available, often totally free, and it's easy for almost anyone to create something impressive while adhering to some default and arbitrary conventions. But juniors tend to integrate tools they know too little about in projects with refined needs and later fix resulting bugs in an inordinate amount of time. In other words, they can't handle the plane once it starts going down.

We're all human, though, and seniors eventually fall to junior status when they don't constantly challenge themselves. Developing software can't be too easy. Devs have to know how the tools they use work and be able to accomplish the same without them. Learning this is an ongoing process.

Outsource All The Things

The omnipresence of software solutions encourages this form of laziness. Case in point: just because WordPress can be easily extended with plugins doesn't mean installing tens of them on a single website is a good idea. Many of these plugins introduce considerable complexity to a website and conflicting behavior. It may seem like a good choice at first, being cheap and fast, but makes the website brittle.

We may decide to fully rely on AI to fly our planes in the future. Until then, make sure to know how to take up the reigns in case of trouble. Fully commit to outsourcing only when you're certain you'll never have to handle the task yourself. And throw a curve ball at the developer every now and then to check how he responds.