The article was written by our guest blogger Dimitar Atanasov. Dimitar is a Solution Architect with more than 10 years of experience. His areas of expertise are business intelligence systems, software design and architecture.
DevOps is gaining popularity very quickly, so maybe you are considering how your organization can benefit from it. Although deriving from the needs of the SaaS trend, it actually could introduce significant optimization for every software providing company. Adopting DevOps hardly could cause much harm, the question is how to get as much as possible from it. In order to answer this question, we need to get to the very roots of this not so new methodology.
DevOps is a natural step forward in making the software development process more agile, adding the Operations team into the picture. It consistently obeys the same principles laid by the Agile Manifesto (http://www.agilemanifesto.org). The first principle in this proclamation, states:
“Individuals and interactions over processes and tools”
But isn’t DevOps all about the tools? Yes, DevOps gains a lot of its power from the tools, but important is what these tools are used for and even more important – by whom. Alex Honor, one of the most respected experts in the DevOps community, shares his experience in process optimization in this very good post (http://dev2ops.org/2010/02/people-over-process-over-tools/). According to him:
“selecting and instituting a tool is almost always the worst first step in improving an important function”
He suggests his own practice for improving organization’s process: “People over Process over Tools” is his motto. Always, the first step is finding the right people that are most familiar or are actually doing the job. Next step is involving those people in investigating the process and identifying inefficiencies and bottlenecks. Then finding a way to resolve those issues and finally – adopting tools to further facilitate the process. As you can see employees should be the primary drivers of this transformation. That makes a lot of sense, as it is their everyday job that is being improved.
People are very important if we want DevOps to work. Both Agile and DevOps put in the center the communication and collaboration within the team. To tear down the walls between the Dev and Ops teams, both of them should be familiar with the common goal. All team members should have a good understanding of how the whole process works and how they can contribute. After that, the team can best generate ideas of how the process can be improved. People on their own can research and suggest or develop the best tools to fulfil their job. After all, who doesn’t want to make their tasks more streamlined and automated.
Of course it is quite possible that the team may lack the needed mindset or lack some of the skills. Some of the team members can be too new in the company, others may be too accustomed to the old way of doing things. But putting all of them on a common ground is essential step to the success. This is what we call shared values and culture. Feeling a part of a team with a common well defined goal is a great motivator for improvements. This way the change in the process could actually come from the team itself, instead of being forced from outside. Preparing well your people and giving them the freedom to innovate is the best way to start with DevOps.