DevOps Implementation
DevOps Implementation Is an Ongoing and Never Ending Process
Since a major goal of DevOps is to create an environment of continuous improvement through continuous development, a DevOps implementation must be seen as an ongoing, never-ending process that impacts far more than just any one given project. The DevOps implementation process itself needs to be seen as an organizational-wide culture shift. It becomes a unifying way in which the various departments within a company can learn to collaborate more effectively.
The main challenge in DevOps implementation will be the need for patience. A DevOps initiative takes time to implement properly, and shortcuts can lead to the process hindering the initiative.
Additionally, the concept of constant iterative change is not always readily or easily embraced. It involves constant evaluation, which can be a distraction to many members of the team. Actions are viewed and taken with far greater granularity. The initiative must start small and prove itself, then be distributed organically with full buy-in from each department that becomes involved. In order to realize and maximize the benefits, everyone must grasp that DevOps is a never-ending process of continuous evaluation and reevaluation.
Then there’s the other challenge:
Another issue for DevOps implementation is that DevOps is still in the process of being defined, and everyone has their own interpretation. While many “best practices” can be suggested, it is up to each organization to determine what is “best” in their particular environment. Ensuring that everyone is on the same page on what to expect is essential for a successful DevOps initiative.
As such, the following are suggestions for your consideration.
“DevOps is not a goal, but a never-ending process of continual improvement”
– Jez Humble, one of the progenitors of DevOps
DevOps: Implementing Cultural Change
Remember that Culture Change Is Hard
For your DevOps implementation to be successful, it must create significant change in your company’s culture. This is no simple task. Culture is not conveyed in rules, regulations, processes, or procedures. You cannot document culture. Culture instead pervades an organization from its leadership on out. This means that your DevOps initiative must begin with full buy-in from the top. Change to the culture is significant, organic, and gradual.
In addition, great pains must be taken to show all individuals at all levels of the organization the benefits of DevOps implementation to ensure buy-in from every level. Changing the culture of the organization will not happen overnight, but with a solid plan of action and measurable goals, it can be done.
However, the reality is that most people resist change, especially when it comes to the culture they are accustomed to. While implementing DevOps involves humanistic change for the better, it’s still changing. Always remain sensitive to the natural resistance you will encounter and find ways to overcome it gently, gradually, and productively. While you’re at it, work at removing any “blame game” tendencies in your existing culture as you make your changes.
You may find it valuable to create a core DevOps team with identified ambassadors or champions in each department involved that can help individuals understand the process and have a channel for expressing their potential concerns.
Focus on People and Their Needs
DevOps functions in the context of your company and its business. Many companies adopting DevOps do so because they need to bring products to market more quickly. They are willing to embrace the constant iterative nature of DevOps processes to get to market faster, but that is not the only need involved.
Every step along your roadmap must be justified by what your business needs, and you must ensure that the stakeholders agree with the needs you’ve identified, and that they’re prepared to adopt a new culture and adapt to the changes it brings. Again, this usually proves to be far more difficult than anticipated.
You’re not implementing DevOps because it’s “fashionable,” so remember to define business needs in the context of your customer. High customer satisfaction always remains a key goal of any process and DevOps is no exception. Without customers, it hardly matters what you do or don’t do. This is why it is critical to ensure that the individuals involved understand that the mindset and culture shift is necessary for DevOps initiative to be successful.
Remember that your own people are being asked to significantly change the way they do what they do, which may have remained the same for a long time. So, take the time to help them understand why the change is taking place and the benefits associated with such a change.
Additionally, listening and addressing their concerns is essential in ensuring buy-in so the necessary cultural shift can take place. The DevOps implementation process cannot be forced upon people, or the optimum velocity of iterative improvements may never be achieved. Team satisfaction is at least as important as customer satisfaction in successfully integrating DevOps into your environment.
Remove All Barriers
Kishore Jalleda, Sr. Director of Production Engineering at Yahoo says “DevOps is really about eliminating (most) Technical, Process, and Cultural barriers between Idea and Execution — using Software!”
To create and maintain the most fertile environment for cooperation, great emphasis should be placed on removing as many barriers between people as possible, whether they be physical, emotional, moral, ethical, interpersonal, or anything else that impedes collaboration and cooperation.
Communication is essential for DevOps to be successful. Barriers restrict the flow of ideas, feedback, and information and thus hinder the DevOps implementation process. Remove unnecessary obstacles to communication so that team members can easily discuss concerns and ideas going forward.
Even training and orientation should include people from other disciplines to promote better understanding and appreciation of each other’s realities. Have operators attend development training and developers learn more about operations. This can only promote greater cooperation and understanding. Having each team understand what the other team members are going through is essential in ensuring that each team isn’t just “passing the buck” to another.
Tools and Automation
The easiest way to make things happen faster, especially repetitive things, is to automate them and the tools to help you do so are abundant. Automate everything that you find can be automated and allow people to focus on more important issues. This will accelerate everything. Encourage everyone to share the tools they’ve found with the DevOps team for possible deployment.
This last point cannot be overstated. The goal is not to first identify all the tools and automation opportunities. The goal is to institute process changes focused on increasing customer and business value. Automation that does not improve these goals is not beneficial to the organization and is simply automation for the sake of automation. The resources spent on automating these processes could be put to better use elsewhere. The process of seeking and identifying tools will be greatly enhanced when the people involved are already living with DevOps principles.
Additionally, once things are automated, it still needs to be ensured that the automated processes are working as intended. Automating a task might have unintended consequences that need to be addressed once these are discovered.
Metrics
The legendary management guru Peter Drucker advises us that, “You cannot manage what you don’t measure.”
When crafting your metrics and your key performance indicators (KPI), remember the ultimate goal of delivering better software experiences faster. That’s the only place you’ll find truly indicative metrics — at the point of results. Cycles per time period and other improvements are merely indicators. Measure your DevOps success by the results you deliver. Selecting the wrong data points to base results off of could be detrimental to your DevOps initiative in the long run.
[adinserter name=”DevOps-Closing”]
Stay in Touch
Keep your competitive edge – subscribe to our newsletter for updates on emerging software engineering, data and AI, and cloud technology trends.