The main goal of the DevOps movement has been to enhance communication and collaboration in goal setting and prioritizing it among operations and other relevant stakeholders. It is expected DevOps will bring together different disciplines and teams but the tools available are lacking the required level of automation and integration. Inclusion of more tools in the DevOps practice has led to improvements in some areas but it has also led to inefficiencies in other areas. DevOps tools are critical in testing, building and other requirements in the delivery life cycle. Due to the high number of tools available practitioners have been finding it difficult to have a good understanding of tools used in a life cycle.
Success of DevOps heavily relies on continuous improvement and feedback. Measurement throughout the life cycle is necessary and this is where value streaming is important. Organizations are often seeking to improve multiple separate processes that do not have a common data source. In such an environment software development leaders do not reap the maximum value of their DevOps tools. This arises due to lack of a measurement and improvement mechanism in the software development life cycle.
Value mapping introduces several abstractions from the tools resulting in life cycle improvement. The first abstraction is integration. With a wide option of DevOps tools, integration is the first step towards having a great understanding of tools and processes used in a lifecycle. Integration challenges will arise due to existence of legacy tools and its availability . These challenges are overcome by tool integration. While performing tool integration it is important to ensure integrity and consistency of data.
The second abstraction is ensuring the software development process is visible and it can be traced. This enables a manager to understand how teams are working together, ongoing processes and tools being used. Event and data tracing is an area where current DevOps tools have a limitation. When there is visibility the time needed to complete development and delivery is reduced. The time savings are achieved from the elimination of redundant processes and quick integration of feedback. Traceability reduces the effort required to find and correct errors. Quick resolution of errors improves software quality.
The third abstraction is acquiring insights from the data generated by DevOps tools. In a DevOps environment the reality is each tool generates its own data and events. Other information generated by a tool is reporting and tracking data. In such a situation a reliable data integration approach needs to be implemented. When integrated data is available it provides a broad perspective into life cycle stages of planning, development, testing, deployment and monitoring. The data supports better decision making by management and helps in meeting compliance requirements. Examples of metrics that can be derived from this data are rework rate and mean time in resolving an issue. Such metrics can then be used to back up any claims made about the development life cycle.
Creating a value stream map (VSM) of a development life cycle has the following benefits
- A VSM offers context to software architects and other experts
- A VSM provides a baseline against which future improvements are benchmarked
- A VSM is useful for communicating to stakeholders. All stakeholders participate in developing a VSM and this lays the foundation of future collaboration
A VSM is useful in eliminating wastage from idleness and ensuring development activities are accurate and complete. It is good practice to develop a VSM at an early stage of development. When developing a VSM you begin by a creating as-is version which is then improved to a to-be VSM. In the following section, development of as-is and to-be VSM is demonstrated.
Developing as-is VSM begins by stakeholder discussions to identify key development and operations activities. A sample is illustrated below.
For every step in the VSM it is important to include metrics providing information on time required and other relevant aspects. In this example, two metrics were included and they are defined:
Lead time (LT) is the period from when an item departs from the previous step to the time it leaves the current step. This period includes idle and active processing time
Value added time (VA) this time only includes active processing time
Examples of issues that can be discussed when developing as-is VSM are listed below.
- The key steps in the development life cycle. Proper delineation of steps and movement to subsequent steps needs to be carefully considered.
- The roles and responsibilities at each step and team members.
- The metrics that are relevant at each stage.
- The tools that will be used at each step. This discussion will reveal where automation can be used and how the different tools can be integrated.
Once the as-is VSM is developed it is improved resulting in a to-be VSM. The improvements are based on desired metrics. For example in the as-is VSM presented earlier, interest would be on reducing VA and LT. The steps are then modified to improve the desired metrics.
In this tutorial, the importance of DevOps tools was introduced. Value mapping was introduced as a solution for getting value from available DevOps tools. Abstractions used in value mapping were discussed. Finally, developing a VSM was demonstrated.