Don’t push harder. Reduce friction.

In my work as a CTO, I’m thinking about friction a lot. I’m using this physics term as an analogue for everything that reduces team efficiency. This kind of friction can have substantial financial and human cost, which is why I find it important to notice and mitigate it when ever I can.

In mechanical systems, reducing friction can significantly improve efficiency. Lubricants, for example in an engine, not only help improve fuel efficiency and performance, they also reduce wear and tear, and thus help minimize the need for maintenance and replacement. The same applies to the human body. Friction wears out joints and tendon sheaths, even more so if they lack proper lubrication. (That’s why I’m so interested in mechanical keyboards and their ergonomics.)

Another area where reducing friction is an important goal is sports. For instance, athletes wear sleek, low-friction clothes that allow them to run, cycle or swim with minimal drag. In winter sports, the application of wax on the base of the equipment reduces friction with the snow, enabling smoother gliding and higher speeds. Sometimes, reducing friction requires taking a break from our activities. Even though the Zamboni disrupts ice skating regularly, it’s an accepted necessity to allow the skates to glide on a trace of water between them and the surface of the ice instead of sinking into slush.

Photo by Karl Hörnfeldt on Unsplash

In all these examples, reducing friction allows for more efficient use of force, resulting in better outcomes than simply increasing force alone. My question is: How can we apply this to our work in IT? Where can we achieve better team efficiency by reducing friction instead of just pushing harder?

One source of friction in our work as engineers is poor communication. Ineffective or unclear communication within teams or with stakeholders can lead to misunderstandings, delays, and rework. In other cases, it’s not the communication that is flawed but the information. This can be due to insufficient requirements gathering, or poor planning in general. Unrealistic expectations and timelines, inadequate resource allocation, or failure to identify potential risks, can result in project delays, budget overruns, and most certainly increased stress for the engineers working on the project. (By the way, a good place to practice effective communication is The Server Room, my DevOps learning community!)

Sometimes, we engineers are our own source of friction. Inadequate testing and quality assurance, including limited test coverage or ineffective bug tracking and resolution processes, can lead to the release of software with defects and vulnerabilities. When a team lacks proper documentation, filling knowledge gaps, let alone onboarding new team members, become much more tedious and error-prone. Rushing to deadlines or taking shortcuts without proper consideration for the long-term consequences often leads to the accumulation of technical debt. This technical debt will then make future development more challenging, as it requires additional effort to refactor and maintain the codebase.

Where most of us feel friction the most in our team efficiency is when we lack proper automation and tooling. Among the repetitive work that should be easy and, ideally, automated are tasks like infrastructure setup for development, testing and production, build processes, testing and deployment. Automating these DevOps processes can free up enormous amounts of dev time for more fun and interesting engineering work. For that reason, they are high on my list of courses I’m going to offer in the future.

Finally, there’s the friction that comes from an insufficient focus on personal well-being. Working long hours without breaks or not prioritizing self-care is likely to lead to reduced productivity and even burnout. A culture that does not value personal well-being will have a severely negative impact on the overall work experience in engineering and beyond.

An engineering organization that’s driving with the handbrake on is not sustainable. Sure, pushing the pedal down harder will mitigate the problem for a short time, but you will inevitably end up with expensive damage at the side of the road, watching everyone pass you by. It’s a much better idea to reduce friction early in a proactive approach that emphasizes clear communication, thorough planning, robust documentation, effective testing, proper resource allocation, pervasive automation, and fostering a collaborative and supportive work environment.

This article was originally published in my newsletter, “News From the Server Room”. To get my column “Mentor Monologue” fresh when I publish it, subscribe here.

So much to learn!

Find easily digestible pieces of DevOps experience in your inbox on Monday morning. Join 126 DevOps people who are already getting my News From the Server Room every week!

We keep your data private and share your data only with third parties that make this service possible. Read our full Privacy Policy.