To ship high-quality software that meets the user’s needs, different teams within a company must work well together to accomplish this goal. I’ve worked at far too many companies that one or more of these teams spend more time protecting their “silo” than delivering software.
One example that comes to mind is when I worked at Mitchell International here in San Diego, California. There were a few teams like this with the worse one that I tried to work with being the team in charge of the databases. Since our team did not have a DBA, we asked them for help many times and I don’t remember them helping us. After about 2 ½ years of begging, my department finally let me hire a DBA/ Data Analysis for my team that turned out to be a great help!
More recently when I worked a contract at Verizon, this happened a lot with just about every team. The worse one was the DevOps team. They had one guy on the team that would make it so hard every time we needed help from them. He would ask for a written reason why we need what we need. When we provided it, he would ask for more details. This would happen over and over.
Getting anything from him took a very, very long time or we would figure a way around him. For example, we begged for over 2 ½ years that we have access to the AWS console so we could prototype and test microservices. He gave us only read-only that locked us out of doing any of this. I architected many microservices for the team, and when I left, not even one was in production due to this one person. This is one of the major reasons why everything at Verizon took five times or more to accomplish due to teams there working so hard to protect their silo, not working towards a common goal.