Once upon a time, in IT departments across the land, there were development teams and operations teams that worked separately. The developer side was responsible for writing code and operations took the code and made sure it worked on the IT platforms that support their businesses. But then along came DevOps, a practice that marries the two teams together. But does this make for a "happily ever after" ending? We have some tips for a happy DevOps marriage.
Server room picture from Shutterstock
With business IT now driven more by users within organisations, there has been a paradigm shift and IT departments are scrambling to reinvent themselves in order to keep up with changing demands. Workers want business IT to just work regardless of what devices they are using and they want it fast. This has led to the rise of agile software development which promotes collaboration and continuously releasing improvements to software so that they can reach users faster. DevOps was birthed from this new kind of approach to development and takes it a step further by encouraging the development and operations teams, which often butted heads, to work together intimately.
It's an appealing concept, but it does require organisations to change the way they think about software development. Because adopting DevOps isn't just about simply implementing the methodologies, it's about a cultural change.
Traditionally, the development and operations teams would work towards a set schedule and went about and did their own thing. Developers would pump out code by a deadline and operations staff would be responsible for quality assurance testing before deploying it to users. Problem is, developers didn't have to care about how the finished product would be deployed while operations teams didn't have any control over the production of the product. This is where a lot of conflict can occur as the two teams have different priorities.
What DevOps does is bring both parties together to work towards a common goal, sharing responsibility for the success or failure of their products. The objective of doing this is to expedite release cycles, improve software quality and keep users happy by being able to respond to their software demands swiftly.
But many organisations still have a hard time wrapping their heads around DevOps. We have some advice for businesses looking to take the plunge to adopt DevOps but are stumped on how to do so.
Have an overlord
Collaboration is crucial when it comes to DevOps, but there still needs to be one person who manage the process. That person needs to be able to find out the specific requirements from the business and see to it that they are met from production to release.
This is one of the biggest stumbling blocks for software development in general. It is vital to have someone on hand to crack the whip across development and operations teams. Ideally, this would be a person with the support of management along with technical knowledge. This person should be able to bring management, development and operations teams together so that everybody is on the same page and facilitate transparent communication.
Have a heart-to-heart between development and operations
When you're looking at adopting DevOps, you need to let go of the expectation that it's just going to be done overnight. You need to think of it as an evolution process. It's like puberty and there will be some (maybe a lot of) pain along the way. Roles and responsibilities from both teams will be overhauled and that can ruffle some feathers. Prepare for things to get emotional.
Here's what virtualisation vendor, VMware, recommends:
Start by identifying the various ways development and operations teams place on each other. For example, developers may have no problem writing code and pushing it out, but their demand for infrastructure means operations teams get inundated with requests for more infrastructure. This in turn may cause development teams to see Ops as a bottle neck. Take these sources of conflict into account - honestly and openly - as you plan your transition to DevOps. Then you can put effective policies in place for shared and delegated responsibilities, with an emphasis on communication and collaboration.
Standardise the tools for deployment
Before the time of DevOps, there were often times development teams would finish a product that worked beautifully on their own systems but fails to deliver when operations test and deploy it.
To combat this through DevOps methodologies, operations teams should develop automated deployment workflows that the development team can then use to to test their products with users. The final deployment to production, however, will be done by the operations team and it is important that the same tools are used for the testing and deployment phase.
Consistency is key.
DevOps is gaining traction within organisations across the globe. It may not be a panacea for all software development woes within companies but it appears to be a step in the right direction.
Has your organisation adopted DevOps? Let us know your experience in the comments.