External Publication
Visit Post

Understanding friction in software engineering

Jonathan Stephens March 29, 2026
Source

A deep understanding of and ability to account for friction is really important to develop if you want to be at all good at strategy, both in the military but also in other complex endeavours. After all, this kind of friction isn't limited to the military: it happens in civil engineering projects quite a lot, it happens quite a bit in initiatives run by the civil service, activists trip up a lot on it and most importantly for our purposes, it happens a lot in software engineering.

...it's difficult to see all of the individual things that go into friction as facets of an individual phenomenon. Technical debt is its own thing, brittle deployments are their own thing, poor engineer morale is its own thing and the death marches are very much their own thing, as is poor engineering leadership. We thus tend to try and address all of these things individually. To resolve friction, however, a holistic approach is required. This won't make up for poor leadership, of course, but let's face it: you don't need truly horrible leaders to end up in a situation where we're attempting to push through friction if you don't see friction as a thing. The only way to deal with friction is to deal with it as friction.

There are a bunch of other technical and cultural interventions that fall into the general category of "friction-reducing tools": containerisation technology, pair programming, the use of certain languages over others and even management style can all contribute to keeping overall friction levels low on a dev project. Unfortunately, you'll notice that these things all have one thing in common: these all have fairly high upfront costs in time or money. In short, you have to slow down, invest resources and dedicate time to preparation and maintenance in order to make these things happen. You need to allow downtime for engineers to rest, to make sure that all the systems they depend on to deliver fast are working, to co-ordinate, to write tests and to fix annoying but non-urgent breakages that will otherwise build up.

...tackling friction in any meaningful way has to be done by leadership, and ideally by as high a level of leadership as possible. Paying for high-quality tooling, actually watching for friction and calling for operational pauses and investing in maintenance and preparation work are all things that only leaders can make happen.

In general, we should normalise the idea that leaders should, in general, be spending about ten hours a week in graduate school, at least for a few years of their lives. This would also have the much-needed effect of reducing the number of dullards that end up in positions of power: having to read some worthwhile books and academic papers is likely to filter out a lot of the people who think they're too important to read or who need business books summarised for them.

Discussion in the ATmosphere

Loading comments...