November 28, 2013 | Written by: Shelbee Eigenbrode
Share this post:
The DevOps method of providing continuous delivery is getting a lot of attention in the industry as the need for rapid deployment is a key strategic benefit in cloud computing. Strong organizational silos drastically impede the collaboration necessary to be successful with a DevOps strategy.
At an extremely high level, DevOps includes several key concepts:
- Frequent delivery
The goal of DevOps is to provide continuous delivery by integrating some of the key concepts. However, I continually see one of these key concepts left out of many DevOps strategies. It is the concept that is the most critical and the most ignored at the same time: improving collaboration between operations and development teams.
The biggest inhibitor in cross-team collaboration efforts are the organizational silos that have been built up over the years.
An organizational silo is essentially the tendency to work within a single team, department, division or equivalent without collaborating with members outside of your specific area. Employees working in a silo are inclined to put more priority and loyalty into their specific group efforts rather than the company as a whole. Working within a silo leads to fragmented strategies, ineffective turf war mentalities and overall segmented solutions.
Where silos exist, we often see less and less collaboration between development and operations. Too often we are not considering the “other side of the fence” or the bigger picture when we are working on a solution, which leads to miscommunication, technical gaps, animosity and generally dysfunctional teams within an organization. Without addressing the need to collaborate, a company can expect to see inferior solutions produced within individual silos.
I have had the opportunity to span multiple roles which I think adds some fairness to my opinions in this area. I’m not rooting for development, nor am I rooting for operations to come out as the hero! I’m simply rooting for the opportunity to develop and deliver improved solutions with a competitive advantage.
During my early years in IT, we collaborated heavily across teams throughout the project lifecycle. We had cross-function teams that had a single goal. I hate to become the “back in my day…” person, but there are some lessons we could learn from the past.
When I was a developer, I was vested in the quality of my code because I provided a line of support for that code and didn’t want to be called out at 2:00 am. I also worked closely with operations so I felt additional accountability when operations had to be called out for an issue. The point is that I wasn’t as far removed from the delivery and operations of my code as we see in typical organizational silos that exist today.
On the other side, I’ve seen the barriers that delivery and operations teams can cause for development teams. I’m hesitant to use the term “barriers” because most often they are processes and policies that have been put in place to actually improve the delivery of a solution. This can include, but are not limited to, the abilities to:
- Provide support for a solution
- Monitor a solution
- Ensure a solution is secure
Planning for the delivery of a solution early in the development lifecycle can eliminate the barriers that are often attributed to operations. In addition, using cross-team collaboration to identify antiquated or ineffective processes and policies is a perfect way to break down the barriers and work to develop new processes and policies that do fit the needs of an effective cloud computing solution.
Although I don’t view DevOps as the innovating driver behind the concept of cross-team collaboration, I do believe it brings the focus back to it, which is absolutely necessary to be successful in continuous delivery.
Without oversimplifying the issue, I think we need to get back to basics and redefine corporate silos:
Stop the blame game: No one ever made progress or gained the necessary trust that is crucial for collaboration by blaming other teams. Get in the mindset of “we are all on the hook for this” and work to resolve issues together.
Insert yourself: Reach out to other teams and build relationships that foster collaboration throughout the lifecycle.
Listen: We often get so busy talking to justify our causes that we forget to really listen. Listening lets others know you are willing to accept new information and consider any opportunity for improvement.
Open your mind: Admit what you don’t know about a specific area and be willing to learn from those that do. Nobody knows everything about cloud computing, which means we all need to be open to learning from others. This is critical to be able to make informed decisions quickly and further break down the barriers between teams.
All of these items may seem like common sense but in reality they can be harder to implement in an organization with strong silos. Every layer of the organization needs to be willing to break down those silos to foster the level of collaboration between operations and development that is critical to the success of any DevOps solution.
If you have seen organizational silos in action with a DevOps implementation or if you have thoughts on additional ways to breakdown those silos, I would love to hear your thoughts. Comment below or follow me on Twitter @shelbee_se to continue the conversation.