Has Automation gone too far?

Photo by Franck V. on Unsplash

People are phenomenal problem solvers, initially solving an issue and leveraging tools enabling a repetitive and scalable solution.

If you can automate your tooling, then do people become redundant? Isn't it a foregone conclusion that future factories will be optimised by productivity, machine-driven and devoid of many humans?

A Robotic Future?

The first trial at a very large-scale factory designed with a fully automated approach was Tesla's Gigafactory. The factory had nearly 5 million square feet of operational production space, and expansion is continuous. Notwithstanding Tesla's aggressive production goals, the vision was that this factory would be engineered in such an automated way that cars would be flying off the line into the foreseeable future.

However, when machines would falter, all production came to a halt until the engineering team could reset them. Intricate tasks that a human could take care of proved too much of a match for the machines.

It was only when they took out some of their automation and parachuted in additional workers that they could hit their quarterly projection. This led Elon Musk to tweet, "Yes, excessive automation at Tesla was a mistake. To be precise, my mistake. Humans are underrated."

The Power of Humans

This same discussion of humans vs automation is being debated across software development. More teams are moving towards automated pipelines, testing, and analysis. While there are certain advantages to implementing these technologies (such as a shorter route to market or stronger test coverage), they shouldn't be seen as a utopia for software quality.

Sources suggest that there is not a substitute for a heavy-hitting developer to review a co-worker's code, locate bugs, and apply best practices. There are static analysis tools that can automate some parts of code review, but they cannot answer contextual questions such as:-

  • Does the code change match the requirements?
  • Is the annotation communicated clearly so future team members can make sense of it?
  • Is the team onboard with actioning this change?
  • What resources could help the developer complete this more effectively?

Fostering a Collaborative, Learning Culture

When organisations and teams start adopting a human-centric point of view, they start behaving differently. Tools begin to be fostered as people-facilitators, not people-replacers. For example, using a static analysis tool can save developers' time by locating a specific set of challenges effectively. That time can then be reinvested by developers garnering knowledge around best practices from one another in peer code reviews.

Peer review tools can bring less useful work like showing variations between code and document files, sending notifications, and tracking review metrics like time spent on reviews, lines of code reviewed, and defects found and fixed. Without a tool handling these issues, team members would struggle to maintain an audit trail. In this case, tooling helps drive forward increased collaboration and knowledge sharing.

Photo by Zach Lucero on Unsplash

Which Questions to Ask?

Creating a company culture that focuses on investing in people requires a consistent effort. Cultures are made up of more than values alone. Those values must dovetail into your structures, processes, and tools for your culture to have a solid foundation. For example, when looking at your team, it is critical to ask questions like "How are we actively teaching each other?" and "How are we recognising each other's successes?"

The best tools will not always help you succeed as a business. It takes a collaborative, learning culture to solve the problems you don't even know you have.