I had the good fortune of being able to attend the Cloud Expo/DevOps Conference in Santa Clara earlier this month. It was a great opportunity to hear from many thought leaders in our industry and experience the unique spirit and culture that only Silicon Valley emits.
As I reflect on the event during my long plane ride home, one of the things that stands out from the event is that the each presenter felt the need to define the term DevOps within their presentation. This tells me one thing – we are at a very early place in the maturation and adoption curve of “DevOps” and the word means many things to many people.
As I listened to the various pundits expel their wisdom, there was a clear trend of theory and great ideas. However, I found myself hungry through most of the conference as I kept thinking “where’s the beef?” as I searched for the practical experiences and success stories from every day commercial business rather than the corner pieces for the legendary Internet giants.
But perhaps that is the state of where DevOps is today. It’s a concept about evolving the way we approach software development. What I heard at the show was the aggregation of ideas about a new world and approach to application development, which was surprisingly similar across the presenters, that challenges the status quo and seems, to me, to be the natural outgrowth of the cloud.
For me, DevOps challenges us to evolve and mature our application life cycle approach. It forces us to look at some of the best practices we have put in place over the last decade and ask the question: Is the benefit of each best practice worth the price?
The resounding motivation for DevOps was not the IT tried but true of doing more for less. Actually not a single presentation said “do DevOps to save money.” Instead, the primary reason companies are investing in DevOps is to accelerate the pace of which new features/functionality can be delivered to the market. It is about enabling a business to capitalize on disruptive market changes and be faster, more nimble, and more responsive. At the same time, there is a focus on maintaining quality throughout the process by leveraging automation for the rote and increasing the level of accountability that the software developer has.
Given that my career is focused on operations, I appreciate the importance of consistent, high quality execution. As many organizations have adopted ITIL to structure their thinking and approach to operations, it has led to more process standardization. The repetitive nature of operations tasks, and an increasing adoption of standardization, lay the foundation for automation which is the cornerstone to any DevOps strategy.
A successful DevOps program requires investment in automation, in particular automation of testing and automation of release management. These are the logical areas for us to focus on because they are labor intensive, and are one of the lengthier tasks in delivering new software functionality to the market. And since in a DevOps world we increase empowerment to the developer, we want to help them resist the temptation to skip testing, so automation becomes a mandate. Automated software release management also becomes part of the strategy for quality management by supporting rapid roll-back and recovery if required.
I have yet to meet a developer who thinks automated regression testing is a bad idea. Problem is, in all my consulting travels, I run across so few businesses that are actually doing automated testing (although I have seen a few, myself included, that have purchased the software and admire it on the shelf with good intentions.)
We clearly are in the early days in the DevOps journey. As more companies get real-world experience we will collectively learn what works and what doesn’t and tune our approach. While DevOps is defined as many things, it is at a broader level a software development and deployment methodology. Each SDLC approach has use cases where it excels and others where it’s not the best tool for the job. For now, I think DevOps is the obvious choice when speed-to-market is at the top of the needs list. But I found no one at the conference who was applying DevOps to their finance and/or payroll systems (unless they were a SaaS company and that was their business.)
Ten years ago, we looked at the cloud and many of us scoffed. Now it is so ubiquitous that we have new R&D areas in the Internet of Things (IoT.) A decade from now, the new wave of developers will look back to us and say, “You really did everything waterfall and thought it was OK to take months to do a software release?”
While I left the conference with more questions than I arrived with, it is clear that the state of the software development is evolving. We are getting better as an industry. The technology is enabling new advances and opening new, more efficient approaches. As an IT leader in your organization, DevOps should be part of your IT strategy, it should be part of what you are investing in, and it should be part of the capabilities your organization is developing.
EPM applications help measure the business performance. This post will help you choose the best EPM solutions for your organization’s needs and objectives.