In war, trenches are a fortified position soldiers use to defend against enemy attacks. They help keep soldiers safer than they would be out in the open, making enemy attacks much easier to fend off. The problem with trenches is they don’t allow progress. You can’t just move a trench, you have to get out, move forward, and build another one.
Software developers often have a similar, albeit less deadly, problem. The enemy is all the inefficiencies that get developed over the course of a software development project. In order for the project to survive, it is important for developers to get in the trenches and work through the inefficiencies to keep things afloat. In order to win, the developers have to eliminate the inefficiences, which means getting out of the trenches and making progress on the root of the problem.
How many times have you dealt with customer support about a minor bug before you fix it?
How many times have you manually built and tested your application before you automate it?
How many times have you spent hours doing deployments before you make it push button?
Most inefficiencies only hurt the long term success, and not the short term. How do you eliminate them? Managers need to be in the trenches with their people. They may not do any fighting, but they have to feel the pain and understand the problems, otherwise they won’t help their team move forward.
What are your teams fighting with in the trenches?