Continuous deployment is key to world class DevOps
With their State of DevOps report released at the beginning of the summer, Puppet clearly defined the characteristics of world class DevOps organizations and the make-up of those lagging behind. According to Nigel Kersten, CIO of Puppet, there is a huge gap between organizations that get DevOps and are able to ship software on demand and “organizations that take days, weeks or even years to ship simple upgrades … and the gap is widening”. Where is your company on the spectrum? Is your company deploying 80 times per day like Etsy or thousands of times per day like Amazon? Is your company one of those that spends 50% less time remediating security issues than low performers, and 22% less time on unplanned work? How much time does your team have for building new code? Perhaps you don’t even know the exact answer to these questions. However, it is important to know where you’re heading. Are you heading to be left behind or world class? Here’s how to head for the latter.
What effective DevOps implementation means
According to Puppet’s State of DevOps 2016 DevOps is an understood set of practices and cultural patterns companies turn to in order to “improve their organization’s performance, revenues, profitability and other measurable outcomes”. Underlying this generalization is rapid deployment, integration of security and the ability to scale.
The importance of proper tooling cannot be overstated as well. According to one white paper I read, “no amount of DevOps-driven cultural change” can be a substitute. As such, in the vast majority of cases, implementing DevOps will require investment. Unfortunately, continuous delivery doesn’t come for free. The goal though is to create an environment similar to what Eric Reis describes in The Lean Startup. You want to create a space where new ideas get into the hands of customers quickly and bad ideas fail fast. If an idea works, you can refine it. Incremental value is delivered early and often.
While this might seem obvious to anyone involved in a DevOps capacity, the ability to establish a true DevOps culture is a challenge because of the burdens and cultural change it brings to an organization. These burdens include acquiring skilled engineers, letting go of legacy IT systems, and developing the agility to overcome hurdles. Faced with these hurdles, companies instead might feel that they can manage with their legacy systems or that DevOps is just for new, born on the web companies.
But the reality is that DevOps matters because it is more than just a philosophy. It has practical implications such as reducing the amount of unplanned work that development teams must do, allowing for more deployments, increasing the security of their code and leaving engineers with significantly more time to build new projects. The notion that DevOps is just for web companies like Google or Netflix is belied by the fact that both companies at one time did not have DevOps in their blood. The companies chose to change and adopt DevOps. Effective DevOps means letting go of waterfall ideologies and embracing change.
Problems facing DevOps
As Kersten noted, the gap is widening between those who are doing DevOps effectively and those who are not. More than just a value-neutral description, there are real consequences to choices made regarding adoption of technologies. According to one large e-commerce shop I spoke with that has significant DevOps teams in the company, the problem for their organization lies in getting the multiple DevOps teams to adopt the same technologies and the same incentives. Essentially, the problem is getting Dev and Ops and DevOps teams to work together. While one team is motivated to get new products deployed on the web, another team is focused on the company’s supply chain. In the case of this particular ecommerce organization, the multiple DevOps teams aren’t in alignment and sharing the same goals.
Clearly this sort of internecine battle ensures a company won’t be a DevOps leader. But the issues cannot be dismissed as they are abundant in many organizations that are lagging behind in their adoption of DevOps. The challenge is engaging managers and getting them to give up “some ego” and allow teams to work together better. More importantly, the message should come from the C-suite that DevOps teams will have the same incentives and need to work together.
How to make your DevOps team world class
Clearly, the issues facing DevOps are manifold. And while it might seem an advantage to not go down that DevOps path, the disadvantages are far greater. For those companies that eschew DevOps and believe that “IT doesn’t matter,” it will show in the quality and timeliness of software they produce. The more an enterprise outsources to third-parties, the more its software suffers.
A lot of DevOps is about culture and the way you organize and motivate your teams; not just on some group of DevOps developers. As noted above, implementing continuous delivery will therefore require investment in team education as well as software. But the other side of the investment coin is the realization that huge amounts of time and resources can be freed up by automation and optimizing of test design and execution. Savings in these and other areas allow resources to be allocated to more value creating activities.
Effectively, both management and teams need to rethink the way their system works and challenge every point at which manual intervention takes place, as manual intervention is typically indicative of a need for process transformation. According to the 2016 report, organizational culture is one of the top predictors of IT and organizational performance. As such, management and corporate leaders can not only encourage, but also shape the way their teams embrace DevOps practices.
Here are some ways that can prove to be effective:
- Break work down into small batches, and have a good understanding of the flow of work through the product development and delivery process. This breakdown of work into manageable batches often starts at scrum meetings in what is called Fibonacci story telling
- Break down the barriers between Devs and Ops. Programmers and IT cannot work in silos where Devs creates codes, throws it over the proverbial wall to Ops and moves on.
- Encourage Devs and Ops to work together by putting them “on-call” together. Many DevOps professionals I have spoken with refer to this as making the engineers “eat the same dog food”. In many cases, effective DevOps teams like Adobe have specified engineers rotate through being on-call so that the rest of the team does not take on unplanned work.
- Use strong and highly effective incident alerting tools in this process, like OnPage, that make sure the right information gets to the right person at the right time. Using high qualityrquality incident management tools will ease the friction of being on-call and create a strong foundation to help these teams work better together. This collaboration will also help push products to market faster.
- Actively and regularly seek customer feedback. This, according to the State of DevOps Report, is a key construct towards improving product by incorporating feedback into the design of products.
- Invest in robust monitoring tools such as Nagios, SolarWinds or BigPanda.
- Ensure security is not just considered after the fact but is also a key part of Devs. According to Puppet’s report, instead of testing for security concerns at the end of the process, you can achieve better outcomes by making security a part of everyone’s daily work.
- Establish a dedicated training budget and make sure people know about it. With this budget, give staff the latitude to choose training that interests them. Encourage staff to attend technical conferences at least once a year and summarize what they learned for the entire team. In essence, this means creating a great work space.
The key to developing the characteristics of the organizations which excelled in the Puppet report begins with the right management, the right tools and ensuring these components flows through continuous deployment. Bringing these components together is key to proper DevOps and great DevOps teams.
OnPage is cloud-based incident alerting and management platform that elevates notifications on your smartphone so they continue to alert until read. Incidents can be programmed to arrive to the person on-call and can be escalated if they are not attended to promptly. Schedule a demonstration today!