What Is Devops (again)?

Besides all the unicorns and harmony that the evangelists will surely blare your ears off with, lets talk about why DevOPS works.
Operationalizing
Yeah, a big word indeed. But let's face it, if you have reached peak workplace harmony you certainly will have achieved something, but certainly not the 40 to 60% improved effectiveness that Forbes forecasts :
DevOps practices are designed to dramatically improve both the efficiency and effectiveness of the delivery process to increase speed and lower cost and risk. Companies like Nationwide (a former customer of mine) have seen a 50% improvement in code quality and a 70% decrease in end-user downtime, with 58% of their teams in the top productivity quartile of the industry.
Feb 23, 2018
Source DORA State of Devops 2018
So what does it take to get these increased performances and high effectiveness?
Let's talk about value..
Value is the product of Quality and effectiveness or as I like to express it Q x E = V.
So what we are trying to accomplish is twofold, improve Quality and Effectiveness. Increasing one at the expense of the other is possible, but in the end, if "V" doesn't go up, you have failed at delivering what DevOPS promises. There are many other factors that can fit in the equation including security and velocity. Suffice it to say, we are trying to get more value out of the existing processes.
The reason it's called that way, is because traditionally, there were isolation between the Dev teams and the Ops teams. And DevOPS uses increased visibility and collaboration between these two entities as a means to improve effectiveness. But that is hardly all it means. We do know now that a breakdown of this "traditional" silo is great.
And it doesn't mean that we must necessarily hire people that have both competencies. We just need to work together, better.
And it doesn't mean that we must necessarily hire people that have both competencies. We just need to work together, better.
The "trifectas"
So any technique we can find, to help anchor the basic ideas behind DevOPS, within teams' work, turn out to be very useful tools to keep them focused on the goals and principles that we strive for.
The use of visual aides is certainly one of them. Psychologically, Venn diagrams are effective to imprint on memory conceptual links between what are sometimes distinguished as separate and unrelated entities. The fact that the number of elements is limited to three is also a factor. Memory works good in threes. Even memory is a three stage system.
And as far as mental data processing, pictures just work.
And as far as mental data processing, pictures just work.
Again, this visual representation takes on the combining the 3 skills that DevOPS want to promote.
And Finally:
There is an important thing to note. Though none of the proposed diagrams address specifically quality it is my belief that through these efforts, better quality is attained. It is part of my "value received" equation, but not something whose focus should suddenly appear because DevOPS is what we are trying to achieve. Instead we try to focus on bringing new skills to the table.
The diagram I find the most compelling is the center one.
There's an important point there. And that is, that though DevOPS is real and there are some techniques that are becoming time proven, there is no sigle approach that works for all.
It can be compared to an effective hack. Though the results are known, valid and measurable, there is no science known that states clearly how to optimize a complex process such as a software delivery project. Hence, this is the approach I have adopted and may not be the same as other proponents.
Creating a team or company DevOPS manifesto, focusing on the desired values is very helpful in understanding the common goal.
It should be clear at least, that the primary resource for a software delivery project is it's people. Their endeavor must be done with a maximum of cohesion and motivation. With these two main factors well tuned, work can be accomplished conscientiously, that is, considering the other parties that each required to get something "out the door" at some point.
So in practice, if the software developer wants and desires a good product review, they must be "aware" and "care" about quality, which arguably is someone specific/else's department. This empathy and consideration is really great for ensuring the collaboration level that can be reached in high performance environments. All kind of techniques including pull principles, team building exercices and other playful ways to learn how to become better collaborators, will tune this very essential part of the business' work. It is in fact in the business' best interest to make sure of the cohesion and well being of the people that produce the work. A less coercive and a more "buy in" approach becomes more effective. We need to evolve to a better way of working together less we fail compared to the ones who do. Simple, but hard.
The diagram I find the most compelling is the center one.
There's an important point there. And that is, that though DevOPS is real and there are some techniques that are becoming time proven, there is no sigle approach that works for all.
It can be compared to an effective hack. Though the results are known, valid and measurable, there is no science known that states clearly how to optimize a complex process such as a software delivery project. Hence, this is the approach I have adopted and may not be the same as other proponents.
Creating a team or company DevOPS manifesto, focusing on the desired values is very helpful in understanding the common goal.
People
It should be clear at least, that the primary resource for a software delivery project is it's people. Their endeavor must be done with a maximum of cohesion and motivation. With these two main factors well tuned, work can be accomplished conscientiously, that is, considering the other parties that each required to get something "out the door" at some point.
So in practice, if the software developer wants and desires a good product review, they must be "aware" and "care" about quality, which arguably is someone specific/else's department. This empathy and consideration is really great for ensuring the collaboration level that can be reached in high performance environments. All kind of techniques including pull principles, team building exercices and other playful ways to learn how to become better collaborators, will tune this very essential part of the business' work. It is in fact in the business' best interest to make sure of the cohesion and well being of the people that produce the work. A less coercive and a more "buy in" approach becomes more effective. We need to evolve to a better way of working together less we fail compared to the ones who do. Simple, but hard.
Process
I've come to really like the sentence: Being efficient is doing it right, but being effective is doing the right thing. Realizing this, there is a time for doing either and both. And it has much to do with understanding constraints. Constraints are often artificial artifacts present to protect processes. By reevaluating the actual gains from eliminating them versus the risk of hitting an issue from having removed them, are we able to effectively decide if they are meant to be. And when we remove constraints we often gain in velocity or efficiency.
Once we have our people on board, it becomes possible to use their personal aptitudes, beyond their specialties, to fill in some gaps to make processes become even more fluid.
On that note I would like to share two videos that were part of the last DevOPS event I went to.
As you can see the principles demonstrated in these clips can give some interesting cues about one's process. Another key clue it to remind oneself that processes are there to serve people, not the other way around.
There is fortunately an abundance of techniques and methodologies to help plan effective work in the software development cycle, such as CMMI, Agile or SAFE agile. However there are parts outside these processes, that require some examination in order to become more effective, so, in DevOPS we look at the whole picture, all of the formalities if you like, that make-up the processes to deliver software.
A good way to explain the way to work, is by having stages of planning, doing, validating and adapting. PDCA is a good example of this.
Ideally, we will treat this workflow, as a document, or artifact that upon revision, gets tracked. And performance of our delivery is measured between iterations of these revisions. Thus, finally, we can know objectively that when something within the process changes, the impact, is. So yes KPIs are essential to measure a successful change.
Tools
As I wrote in a previous whitepaper, there certainly is a appetite for this part of DevOPS' benefits. It is certainly what seems the most tangible thing to change. Automation and uniformity is indeed a good way to maintain a level of efficiency and velocity. Uniformity is truly an important key to make the tools work right. After all, my motto is "my process is my promise". If my process works once it should always work the same, the condition being that there are no unexpected or untested changes between the différent stages or iterations.
After all, it seems obvious, that tool builders need tools. So software delivery services will need tools to make their processes thrive. Well integrated and good quality (good support and maintained) software tools will make these deliveries safer and easier. The tools are made to be helpful and improve work. So using tools just to be up to date and understand technology is a adding risk, which is anything but DevOPS.
And speaking of tools, one I find is often lacking is a proper CMDB. Having a place where your tools can get the most updated version of your configurations, documentation and processes can be a great help in increasing value to your projects.
One of the People aspects that is greatly affected by the tools is communication. Better communication tools bring in better collaboration. Thus we can see how these three imperatives intersect, for real.
And speaking of tools, one I find is often lacking is a proper CMDB. Having a place where your tools can get the most updated version of your configurations, documentation and processes can be a great help in increasing value to your projects.
One of the People aspects that is greatly affected by the tools is communication. Better communication tools bring in better collaboration. Thus we can see how these three imperatives intersect, for real.
Conclusion
Here are some tips on how to approach this endeavor with the greatest chances of success.
- Identify the weaknesses of your current ways of doing. See if there is a match for some values that could make it a quick win/benefit for a project, to fix or improve these flaws.
- Prepare to fail. Not only is it realistic to say something like so, but with today's technologies there are ways to simulate delivery in effective ways that will not impact business but teach you much needed lessons.
- Make it so that people want to own failure as much as success. There is no silver bullet solution to this, but it can be such a great value to have in collaboration to make failures learning experiences instead of demoralizing experiences.
- Baby steps. Try to make a map of the smaller changes that can bring the better benefits. This is like saying minimize you risks but do not lose sight of gains.
- Get everyone on board. A general buy-in from all parties (including the "C" suite) is a requirement for your endeavor to succeed. Beware of the detractors and of roles in ivory towers.
- Choose your tools wisely. Trying to be too ideological will only create unnecessary constraints. It does makes sense to have a certain cohesion and integration in your tooling. But refusing to integrate other tools simply because they are not part of the "out of the box" experience is nonsense dogma, unless you have deliberately chosent to limit what your practice will cover.
This is a business decision, not a DevOPS one.
Need more help? Join me via the comments section below. I will be sure to put my 25 years of practice to your service. As they say, the first one is free. ;-)