Over the past couple of years, core DevOps concepts such as disciplined version control, continuous integration, continuous deployment have gained greater adoption in the enterprise. As we move beyond the basics, the following are the Top 5 considerations that should be kept top of mind for a driving DevOps success in 2018.
Making the Work Visible
The goal of every software-centric business is to deliver value to its users and get better at it over time, however, the “getting better” part (continuous improvement) continues to be challenging. The main reason is that the work isn’t visible. This generally causes the work to take longer, miscommunication, and not working on the most impactful things. In order to make the work visible, all the participating teams must convene and agree of the current process that is being following from idea to delivery. Once the process is agreed upon (effectively, once the value-stream has been mapped) we must visualize the work that is flowing through the value-stream. This helps drive DevOps success as it will provide both organizational alignment and a common understanding of the process being used. Some companies used physical means to address this problem, say a whiteboard and post-it notes, however, more advanced implementation would involve digital means of representing both the value-stream and the work flowing through it.
Make business value the common currency across the enterprise
Different parts of the enterprise use different currencies to measure the work being delivered to customers; the business may use Portfolio Items or Features (generally distilled all the way down to user stories) while development & ops may be using releases, versions, and packages to measure value delivery to end-users. By affiliating code commits to business value (stories, defects, etc.) the business can use a common currency to track and measure progress. Enabling the code to inform the progress and movement of business value as it progresses through the value-stream empowers the business stakeholders to obtain code-driven data on business objectives and their progress. Additionally, most modern ALM platforms allow for the rollup of workitems into corresponding portfolio items which in turn can roll up to an initiative or a strategic plan and provide progress information at a higher level.
Continuous improvement is mainly enabled by identifying areas of opportunity and bottlenecks. Measuring the flow of value through the value-stream will enable and empower the business to identify these areas and implement impactful change. It will enable the business to get good at getting better. Implementing change and improving is what differentiates above-average performers from the median, however, many companies do not measure the changes and/or impact that their devops initiatives create. This ultimately leads to stagnation. Metrics such as cycle time, efficiency/wait time, batch size, deployment frequency, and complexity should be measured and trended as part of any devops implementation.
Configuration as code
The business investment in version control tools & practices should not be limited to production applications. Leveraging this investment across your entire devops infrastructure is an important aspect in managing changes to functionality and/or performance settings of deployable components. It is the glue that brings together the whole process together from commit to deployment – a necessary element to avoid cost and catastrophe. Properly versioning all configuration changes allows for speedier deployment and effortless rollbacks in the event of an error or ill-conceived change. To achieve this we must select tools which that provide a lightweight and easily readable DSL (domain-specific language) as well as a comprehensive REST API that lowers the barrier of entry for integration with other tools in the toolchain. With some thought and sound design, teams can have each code push become a snapshot of the configuration of their entire stack, which enables benefits such as simple rollbacks, fully isolated environments and ultimately faster & more frequent deployments.
Real time compliance
The process of ensuring the deliverable elements of the software development process are in compliance used to take place after the software was completed by one or more teams. This practice generates unnecessary risk and waste when deliverables have to be revised to meet compliance. Modern practices call for incorporating compliance activities into your value-stream to avoid re-work and waste. As each phase of the value-stream is identified, we should be mindful of both the activities it takes for the software to move-on to the next phase as well as the compliance activities that must be carried out in order for the software to be releasable. This is especially important in highly regulated environments such as government or banking; activities such as penetration testing, compliance reviews, PCI, and HIPAA are just some examples of activities that should be taking place in the middle of the software development process and not at the end.
Realize DevOps Success in 2018
To learn more about how CollabNet can help you achieve DevOps success in 2018, take the VersionOne Continuum feature tour.