What is DevOps?
DevOps is a software development framework that stresses communication, collaboration, integration, automation, and measurement of cooperation between software developers and other IT professionals, (including Product Managers/Product Owners, IT Operations, IT Infrastructure, Enterprise QA, Release Management and Change Advisory Board). The framework acknowledges and supports the interdependence of software development, quality assurance, and IT operations, and aims to help an organization rapidly produce software products and services and to improve application performance in production.
The evolution of DevOps.
Many IT organizations do not have a formal DevOps program in place today, however a 2014 CIO survey stated 88% of CIO have it on their roadmap, up from 66% in 2013. The concept was first introduced back in 2009 as the Agile Software Development methods began to mature and evolve. DevOps was born out of the need to study the hand-off between software development and IT operations. In order for development teams to get in a consistent production release cadence, Agile leaders quickly learned IT operations would need to be become part of the “agile team”. However, anyone who has worked in IT understands, there is a natural friction between developers and operations. It won’t surprise you that most developers find the deploying of software outside their job duties and IT operations will likely tell you developers are sloppy with their handoff, often leaving out critical deployment instructions or configuration changes. Yet, when it doesn't work in a lab outside of Dev, it often requires both teams to figure it out - causing even more frustration within these teams.
A successful DevOps program will strengthen the relationship between development and operations, giving them a common goal: Delivering quality software, faster, as one team!
Here are 3 tips to help you get your DevOps program off the ground.
#1 – Create a DevOps cross functional “Team”.
Break down walls between development and operations by creating a DevOps “Team”. Similar to scrum teams, a DevOps team starts better when they’re able to self organize. Being a members of the DevOps Team is a part time team activity, we don’t want to create another silo by removing them from their functional teams. These members come together each week to meet and collaborate, then go back to their functional teams. However, just like with any team, it’s best it if has a captain and a coach. There are two ways to approach this, one way is to have co-captains and co-coaches, ideally one from development and one from operations who share the responsibility. The second approach is to assign a Captain and Coach from one group. If this is the way you want to go, I would suggest the IT Infrastructure team take lead, simply for no other reason than they’re usually “accountable” for anything in production, so having them lead the program will give it a better chance for success....