I recently read a piece of feedback that contained a statement along the lines of 'this team is running like a well-oiled machine'. And although I'm sure it was meant in an entirely positive way, it triggered me. It triggered me because to me it was indicative of a prevailing mental model that I consider actively detrimental to the success of a modern product creation organization.
A software development team is not a machine.
What we expect from a machine is to reliably do the same thing over and over again with as little variation as possible. We expect its parts to perform their designated tasks continuously and, ideally, without maintenance. Now, I do understand that this degree of dehumanization is not usually what people have in mind when they compare a team to a machine. And I know from first-hand experience that a team that produces output at a steady pace without exhibiting any significant friction or conflict feels good to everyone who works with them. The team members, too, are probably reasonably happy with their jobs for a while.
Nevertheless, applying this mental model in a product development context brings us dangerously close to, if not right into, feature factory territory. We're celebrating the hamster wheel that cherishes output while ignoring outcome. We encourage an over-the-fence mentality and transactional waterfallish development processes, and in doing so we promote silos and inhibit true collaboration and creativity.
A machine is optimized for stability and continuity, in software development we need flexibility. We need teams that are able to adapt to changing circumstances, that are empowered to solve problems with innovative solutions, that are constantly learning and improving. We need teams that create real value for our business and our customers, not just a continuous stream of features.
So what mental model would I suggest instead? I have to say that I'm not aware of one single analogy that covers all aspects of product creation well. One that I find myself coming back to frequently is that of an expedition through uncharted territory. There's a clear destination, but since the exact path to get there is yet unknown you can't plan every step in advance. Instead you have to constantly explore and adapt to an ever-changing environment. There are opportunities and risks along the way that may cause you to change course, and the solutions you originally had in mind may turn out to be infeasible.
When it comes to the collaboration and interactions I try to foster, I often come back to the metaphor of a theater company creating a new show. There are many different roles and skills involved, but everyone has to work together to create something that is greater than the sum of its parts. The best actors won't save a mediocre script, and if they don't perform together based on the guidance of the director, the whole play will fall apart. Stage design, costumes, lighting, etc., can be great in their own right and still contribute to failure because they are not aligned with the overall vision and atmosphere of the show. Truly amazing things only emerge when everyone respects, understands and supports each other to achieve the common goal.
These are just two of my favorite metaphors, I'm sure there are many more. But whichever you prefer, let's remember that these mental models are powerful. They shape our thinking and our actions, so let's choose them wisely.

