Originally posted at Chandra’s blog – https://fastandsteady.io
DevOps has been a buzzword for a while now in the tech industry, with many organizations joining the bandwagon and working towards embracing DevOps practices.
Wikipedia describes DevOps as “a practice that emphasizes the collaboration and communication of the IT professionals across the value chain while automating the process of software delivery and infrastructure changes. The aim is to deliver the software quickly and reliably.”
However, in an Enterprise scenario with the complexity involved, the journey to implement DevOps comprehensively is evolutionary. Hence, it is only sensible to drive along an incremental adoption path. Each increment has to provide the most benefits through the MVP (Minimum Viable Product) delivered towards the DevOps journey.
In this context, this article attempts to explain the initial steps towards the larger DevOps journey and helps to get a head start.
The approach at high-level consists of four major steps:
- Value stream mapping – Mapping the existing process workflows
- Future state value stream mapping – Identify the immediate goals and visualize the optimized value stream map
- Execution – Incremental approach towards the implementation
- Retrospection – Review and learn.
OK, let’s get started!
Value Stream Mapping
Value stream mapping is a lean improvement strategy that maps the processes and information flows of a product from source to delivery. For software delivery, it is the pre-defined path an idea takes to transform into a software product/service delivered to the end customers.
Value stream mapping exercise of the current services delivered serves as the first step towards the DevOps journey. It helps in identifying the overall time taken by the value chain, the process cycle time and the lead time between the processes involved in the software delivery. It also captures various process specific metrics along the value chain.
Quite obviously, the exercise involves collaboration with multiple stakeholders of the application lifecycle management to gather the details and at the same time align them to a shared goal. In fact, it sets the stage for the larger collaboration between the parties as the journey progresses.
The picture below depicts a typical software development workflow at a high level, agnostic to the development methodology. Depending on the type of change or the product, one or more steps may not be relevant to the application’s lifecycle.
Value stream mapping provides key insights on the overall performance of the value chain. Details include:
- The process and information flow
- Overall timeline from an idea generation to release
- Fastest and slowest processes
- Shortest and longest lead times.
The insights will pave the path to the definition of strategic goals and the immediate goals that will help optimize the overall value chain. The next steps describe the future state value stream mapping and the execution methodology that focuses on breaking the silos to create a people and technology-driven culture for accelerated processes.
Future state Value Stream Mapping
The future state value stream mapping focuses on defining the immediate goals for optimising the value chain. The optimization focuses on improving the product/service quality delivered through each process, to improve the cycle times and the lead time, etc. Remember, the aim is to deliver quickly and reliably.
While the easiest route to go about this, is to target those processes that are time-consuming, it is imperative to analyse multiple aspects of the process before considering the options. Below are a few metrics that could be considered to evaluate the options and build the future state value stream mapping. The optimisation options are to be balanced against the metrics to arrive at the final set that will be part of the execution.
Ideation to action – This next step in the journey is broken down into three key aspects:
- Backlog grooming
- Shared responsibility model and
This involves user story detailing and a backlog creation for the areas identified for optimization in collaboration with all the parties involved. The backlog has to be put to action either in sprints or in a Kanban approach depending on how you want to manage the execution.
Further, below, describes how the backlog could be driven forward for execution.
Shared responsibility model
It is vital that a culture of collaboration and communication between the stakeholders is nurtured for a successful DevOps journey. A shared responsibility model is equally important. It overlaps the services delivered by each of the stakeholders involved, which earlier used to be in silos. Below is a depiction on how the shared responsibility model evolves with the DevOps adoption.
As you may figure out, during the exercise, most tasks could ideally be delivered by the operations team. However, tasks related to the design optimization, setting up continuous integration, implementing a test automation framework, etc. are part of the Development/QA community’s responsibilities.
The project management related tasks are more focused on nurturing the culture as well as providing the tools/methods for improving the collaboration and to provide the work in process visibility. The key is to bring together the teams involved (including business, development, quality assurance, service delivery, and operations) and build the necessary tools and technologies to drive the agile processes.
Again, depending on the organization, Scrum/Kanban methods can be implemented to execute the user stories/tasks.
Tools and technology implementation is one of the core aspects of a typical DevOps journey. They provide the required automation across the ALM and accelerate the adoption, and make the whole process sustainable. Needless to say, the implementation of the tools and/or otherwise the tasks are driven through the shared responsibility model and the sprint plans put together.
Review and Retrospection
The last step in the cycle is to measure and map the outcomes achieved and update the value stream map to project the new realities. It is also important to review the improvement in the overall process transparency. A detailed review of the execution provides insights into areas of further development across all the facets of the process.
The last step of the cycle could well be also, the first step towards another iteration/increment for further optimization of the value stream mapping nurturing and driving the DevOps culture and the journey forward.