DevOps – Catching the RIGHT train
INTRODUCTION
Generally, the technology age refers to technologies and practices that bring in a change in the way we live and work. IT industry is around 50 years young, yet most dynamic and innovative.
In their book ‘The second machine age’, authors Erik Brynjolfsson & Andrew McAfee state that no matter how much automation we bring in through technology, one thing that only humans can do is ‘IDEATION’. In order to bring an idea into reality, it is required to transform our way of working with newer agile practices and behavior.
Over the years SDLC model across industry has moved from waterfall to agile. These improvements are moving downstream towards IT operations with the evolution of DevOps
Development to Operations (DevOps) is a new term that primary focuses on improved collaboration, communication an integration between software developers and IT operators
Looking at evolution of agile software development, one can observe that initially agile SDLC brought strong collaboration between business, developer and QA. Over last few years, it has started to move downwards towards infrastructure under the name ‘DevOps’. As per one of the Gartner report, Devops will move from Niche to mainstream strategy by most of the large organization
CATCHING THE DEVOPS TRAIN
Traditional agile SDLC model was highly focused on collaboration between business and developer. In order to cope up with the super-fast changing customer demands and IT requirements, industry is now ‘MOVING LEFT’ by catching the DevOps train (or should one say DevOps flight)
DevOps has created huge buzz across industry due to its propensity to achieve three key business objectives – Low cost, High quality and Reduced time to market. DevOps includes implementation of Continuous Delivery, Continuous integration, Automated testing, Application monitoring, Infrastructure as code and other best practices in software development and operations.
As many of the large organizations are catching the DevOps ride, most of them are struggling to find out what it means. DevOps is known to improve the KPIs for development, operations and infrastructure. The real question is…..Has it improved your KPIs?
The key to understanding the emerging DevOps market lies in understanding that its importance is all about the people who are doing it and the culture around them, rather than the tools and technology being used. Large number of organizations do not get the crux of DevOps right and hence their DevOps train gets derailed or they experience bumpy ride in adapting this new methodology
THE BUMPY RIDE
Implementation of DevOps is fundamentally a change process. Change in the way individuals and processes work. This brings about a cultural change at organization level and hence carries along huge risk of failing and eventually messing up the entire work methods.
Some of the big reasons for failure of DevOps are –
# Departmentalizing DevOps
Lot of organizations deal with DevOps implementation by creating a separate department for it. DevOps is truly a culture to be adopted and not to be monitored or regulated by an individual department. It is NOT AN AUDIT process.
DevOps adoption does require leadership focus, but is not a traditional department based management.
# DevOps is ripe
DevOps is new for the industry and carries potential pitfalls for its failure. Gartner finds that 90% of the interviewed organizations describe themselves as being busy with DevOps. 44% openly admit that they are still trying to find out what it means
Many organizations attempt to create a hybrid version of DevOps keeping their old structure intact. This carries huge risk, until there is a clear and set example to follow
# Resistant employees towards cultural change
The problem between Dev and Ops is primarily communication and respect, leading to poor operational support. In practice, Dev and Ops, speak of common things backed by different definition that are not in agreement. For example, system/application definition by Ops vs one defined by Development
This kind of resistance is highly observed in large organizations like Banks.
# Too much Focus on tools
Many organizations elevate technology and tools as the primary driver of DevOps at the expense of high quality processes that meet customer expectations. Organizations need to note that DevOps is about how people think and interact with each other. Tools are merely means to automate processes and fasten the time to market.
The above list can continue with more additional points which can lead to failure in implementation of DevOps. Bottomline is that this transition is first a cultural shift, then a process and organizational shift. Don’t consider DevOps only because everyone is.
Points to keep in mind are that DevOps transition does take time, requires strong leadership and most of all governance.
CATCHING THE TRAIN
Due to its ability to decrease IT operations cost along with improving software quality and time to market, DevOps has become a go-to strategy model for almost all the large, medium and small organizations. Transition to DevOps is a cultural change leading to changes in our way of working and hence it needs to be carefully crafted and planned.
To initiate DevOps transition, an organization would assess its current situation and desired target based on which a viable transition plan is designed and time & budget is allocated to it. Any organization should keep some of the proven methodologies for DevOps transition
# Adopt Best practices
By design, DevOps brings a lot of changes in process and way of working. Any organization, should adopt best practices. One of the industry wide best practice is summarized as ‘CALMS’
CALMS stands for
- Culture
- Automation
- Lean
- Measurement
- Sharing
Any organization adopting CALMS strategy will craft clear time-boxed points of action under each category
# Account for Risk
Automating releases and test cases, can lead to multiple risks. For example: Risk of delivering more than business can consume, exceeding budget, improper change management and more.
Some organizations dive into DevOps without considering risks associated with software release management. It is very critical to build or ensure to continue with existing built-in checks and balances in release processes
# Start Small
“If you think you are too small to make an impact, you have never slept with a mosquito around”
When one is changing the way of managing a project, it is safe to start small by choosing a POC. A POC could be a small application or even module within application, eventually delivering a Minimum Viable Product (MVP)
Choosing right pilot project is also very important and one should consider few criteria’s while choosing one –
- Application age – It is better to pick up relatively newer application
- Benefits of DevOps to application and business
- Risk and significance of application - It is a good idea to pick up business critical application
- Easily manageable technology stacks of chosen application
- Common processes – Application release management should not be unique. It should have reproducible processes
# Change collaboration and not change management
“Too many cooks, spoil the dish”
Change management can be a tricky field to manage, when everyone has a say. It is important to properly plan for a collaborative method of highlighting the need for change to management and stakeholders, in order to effectively prioritize and prepare change plans.
In addition to above points, there are commonly known point to be imbibed in any DevOps transition plan –
- DevOps should be implemented till the bottom of work pyramid
- Use of right set of DevOps tools
- Elimination of Silos
- Real-time project visibility
CONCLUSION
To make your projects smoother, effective and efficient a company has to transition from traditional management methods to DevOps way of working. DevOps reduces time to market, reduces risk and cost, with increased quality and unifies process, culture, and tools across the lifecycle.
In order to catch the DevOps train, it is not only essential to craft a viable and well cut-out strategy but also to communicate and practice defined scope that imbibes best practices. DevOps is all about –
- Mindset, Culture, Collaboration
- Development Methods
- Operations
- Application Infrastructure
- Automation
Well written Sandeep