Comment Section: Software Friction
These are some of the responses to Software Friction.
Blogs on a similar topic
Laurie Tratt wrote What Factors Explain the Nature of Software? which touches on the topic of friction, too.
Emails and Comments
I’m an Infantry Officer in the US Marine Corps, we talk quite a bit about friction. One book you may be interested in if you’re reading Clausewitz is Marine Corps Doctrinal Publication 1 (MCDP 1) Warfighting (link to PDF at bottom). It’s a pretty quick read.
We approach it largely in the ways you just laid out, we train people early in their careers about friction and that helps prime people to identify ways to solve it as they gain experience.
One tactic we use quite a bit that I don’t see you mention but that I think would work really well for software teams as well is using “hot washes”. Basically, immediately after an operation, whether in training or real-life, sitting down with all the key players to go over what went well, what went poorly, and whether or not there should be updates to Standard Operating Procedures for better future performance. Doing these regularly also helps take the “ego sting” out of it, for lack of a better phrase, where it can be hard to get called out about a mistake you made in a public setting with peers but like anything else it gets easier with repetition. Regular hot washes also build shared understanding between teammates which helps communication and reduces friction.
I asked how “hot washes” compare to postmortems. The response:
The main difference I would say (and maybe this is common in agile circles and I just don’t know about it) is that typically there will be a “scribe” that will record the points in a specific format (typically Topic-Discussion-Recommendation) and then these points are saved for posterity and stored in libraries at the unit, or frequently at the service level. This lets you reference mistakes you previously made, or even reference mistakes made years ago by units facing similar problems that you are about to face. The Marine Corps Center for Lessons Learned maintains the service-level library of these.
One of the challenges that I think is a bit more unique to us relative to a large software firm is that we have higher turnover, with people rotating out of a unit typically after around two years. So a persistent store of knowledge is hard to maintain in the heads of staff, it needs to get written down to be effective.