Can’t We Tear Down More Than One Wall at a Time?
In software development, we use the word silo to indicate a group or function that focuses inward on its goals and intentionally operates with a minimum of communication with others. Business units can become silos (agriculture, automotive, energy, packaging), and so can business functions (sales, marketing, development, operations). Over the decades, as IT specializations have evolved, silos for business analysis, design, programming, and testing have been a natural byproduct of that specialization.
The agile movement seeks to break down one of those dividing walls—the one between customers and developers. The Agile Manifesto values customer collaboration over contract negotiation and responding to change over following a plan. In addition, the agile principles of customer satisfaction by early and continuous delivery, close, daily cooperation between business people and developers, and face-to-face conversation being the best form of communication all seek unification rather than division.
Now the DevOps movement seeks to break down another wall—the one between the development silo and the operations silo. Typically, development wants to continuously build and implement new functionality quickly, while operations wants to add that functionality slowly in a controlled way to ensure ongoing system stability. Each has its own siloed focus. When implementing DevOps, developers and operations work together from design through development and into production.
In both the agile and DevOps movements, the role of testing has not received much attention, so some are proposing DevTestOps. While this is closer to the optimal, it is still a “break down one wall at a time” solution.
Let’s remember that silos have come from specialization, and specialization is a good thing. (Should everyone really learn how to optimize SQL indexes?) It’s not the specialization we should be minimizing. It is the communication between specialists that we should be maximizing.
It’s time to focus on breaking down multiple walls simultaneously by increasing communication and coordination simultaneously. Let’s include front-end processes, including requirements elicitation; support processes, including networks and security; and back-end processes, including distribution, sales, and marketing. It’s time for everyone to collaborate, keeping their specializations but dismantling the walls that have separated and frustrated us for too long.