Docker has extended its strategic collaboration with Microsoft to simplify code to cloud application development for developers and development teams by more closely integrating with Azure Container Instances (ACI).
When looking at the tools and methodologies used today to manage software development, we see a diverse array. There are traditional waterfall methodologies and tools, agile principles, ALM tools, and increasingly, a DevOps toolchain. The primary objective behind each of these approaches and tools is to manage the development and delivery of software for the enterprise. Software development affects all aspects of operations and is tied more closely to the enterprise than ever before. To truly optimize the development lifecycle and enhance collaboration across the enterprise, we must head toward a new generation of tools aimed at accelerating the pipeline while improving quality.
The lack of unification among today's software development lifecycle (SDLC) management tools is causing pain points across the enterprise. Gartner recently acknowledged this by noting that DevOps enables the enterprise to break down silos with people and processes, but aligning tools into a single value chain is difficult (Avoid Failure by Developing a Toolchain That Enables DevOps, Gartner 2016).
Take the CIO's perspective for example — there is a significant amount of inefficiency and wasted time when dealing with disparate DevOps tools due to the lack of visibility into all the processes and tools, making it impossible to focus on optimization.
In order to understand how we've arrived at this point, we need to examine the evolution of software development as it relates to the enterprise. Traditional development and delivery functions (tracking/planning/building) were contained originally in a single vendor's own platform. When Agile principles took off, a new set of tools emerged. Developers adopted tools for agile development, continuous integration and continuous delivery, and they started to look at open source. This opened the door to more collaboration, and the SDLC platform evolved to enable the plugging in of different tools.
With the abundance of SDLC and integration tools that fall under the connected tools space, we are now approaching the last mile — operations and metrics. Access to quality metrics and feedback can optimize the development lifecycle and bridge the gap between software development and operations to relieve the enterprise of the glaring problems created by disparate toolsets.
The industry is heading toward the next generation of software development for the enterprise. When we can capture and measure metrics that aide in the realization of business results, we'll be able to deliver applications at the speed of business.
The next generation of DevOps is all about notification of the entire status and health of the software release. New tools will offer quality metrics that take aim at reducing re-work, enabling critical path analysis to expose inefficiencies in the release pipeline. They will leverage KPIs for a clear picture of what is included in a release and what is needed to optimize the release cycle.
For example, if an on-time release caused an increase of tickets, resulting in a 20 percent jump in test work, operations and cost, the software development team might want to work with operations to determine which tools and processes are better suited for resolving these problems. These types of metrics have the potential to spark a whole new level of collaboration and management.
Additional processes that will arise from the next generation of DevOps solutions include:
■ Measuring the speed of deployment and deployment frequency to determine how much value DevOps processes are generating.
■ Following development cycles to resolution — determine how quickly problems are resolving by keeping an accurate trendline of how integration processes are improving and where adjustments can be made.
■ Leveraging feedback to determine user experience — with proper feedback, user expectations are clear. For example, if you focus on feature A instead of B or C and deploy it, the customer might say A isn't actually needed, but B and C are. Now an entire release has been wasted on a feature the customer will not use. By using the right tool, this can be identified much earlier.
■ Automating release notes — some tools provide the functionality to create release notes for a specific version of a project. The release notes use a tagging system to identify which version they are associated with and are generated in a variety of formats that can be incorporated into just about anything. This is important for gauging DevOps value because sometimes there is a disconnect between what the developer thinks is included in a release and what is actually in the release. Automated release notes lay out the actual contents of the release and let users drill down further into specific aspects of it, tracing its lifecycle from beginning to end.
■ Determining if builds are succeeding and passing quality tests to get a feel for how the releases are performing. This can serve as an opportunity for better understanding about the quality pipeline across the enterprise.
■ Identifying bottlenecks that impede on the value chain by leveraging tools and adjusting operations to avoid them.
■ Collecting data and adding intelligent analytics on top of that information.
Ideally, the next generation of DevOps will place a single pane of glass across projects to help software development and operations teams determine the actual health status of their important KPIs, including quality metrics, velocity quality and cost. These metrics empower decisions that will improve the release cycle, reducing costs and optimizing pipeline deployment. Tools will become aligned more closely under a single value chain, enabling more integration between software development and operations teams, and ultimately, with the enterprise as a whole.