One of the most common barriers to Agile development success is the wall between the technical teams that develop software and the business and operations stakeholders who are responsible for its ongoing support. Advancements in Agile culture and methods over the last decade exposed the need for a more holistic approach to the end-to-end software delivery lifecycle. Enter the DevOps (and later BizDevOps) movement.
Many say DevOps is the offspring of Agile software development – born from the need to keep up with the demand for increased software delivery speeds and an understanding of the value that Agile methods achieved by employing collaboration in product development.
The tech community has used a variety of terms to describe the essence of DevOps – it is a culture, a movement, a set of practices, and the act of using tools (software) to automate and improve imperfect methods of managing complex systems. At its core, DevOps aims at unifying software development and software operations methodologies. It asks the Operations teams to be part of the Agile development lifecycle.
DevOps is reinforced by the practices it borrows from Agile and Lean principles, with an added focus on service and quality. By designing, building, testing, deploying, managing, and operating applications and systems faster and more reliably, DevOps practitioners create greater value for customers. This then translates into a profitable competitive advantage for them – and fosters a manageable delivery schedule that places people over product.
The three primary characteristic of the DevOps movement are:
DevOps also promotes frequent communication and ongoing, real-time collaboration between traditionally separate workflows of developers and IT operations teams. It replaces the traditionally-siloed development and IT operations teams with multidisciplinary teams, helping to further streamline the movement of software throughout the build, validate, deploy and delivery stages of development.
Successful organizations understand that development and operations teams must work together if they expect to continuously deliver high-quality, supportable technology solutions that satisfy their customers. When organizations have siloed teams, each time a software program is “thrown over the wall” to an independent team it adds bottlenecks and risks that threaten the success of the release.
DevOps addresses the challenges of traditional development approaches by establishing ways for business and IT teams to be collaborative – bridging the gaps between disparate tool sets. In a recent report, Gartner refers to these collections of siloed development tool ecosystems as “tool islands.” If CIOs want to achieve continuous delivery of high-quality software, they must build bridges between these islands so that tools and teams can work together seamlessly.
On average, high performing DevOps teams have been able to:
Adopting a DevOps model of software development relies on selecting the right technology to manage and execute different phases of development and delivery. This technology stack is often referred to as the DevOps toolchain, which distinguishes different tools used at different stages of development, testing, and business processes. These stages include the following:
1. PLAN – An ongoing set of activities that encompasses requirements definition, metrics development, prioritization of new and enhanced features, security planning, and release planning.
2. CREATE – Includes activities associated with the creation of a code release candidate, including design, coding, builds, functional testing, and release management
3. VERIFY – Quality assurance activities, including the variety of testing types like acceptance testing, regression testing, and performance testing.
4. PACKAGE – The activities that take place when a release is ready for deployment, including staging, approvals, and configuration.
5. RELEASE – Includes activities needed to move software into production, including release and fallback/recovery activities.
6. CONFIGURE – An activity that occurs through the DevOps Toolchain that includes provisioning and configuration of hardware and software
7. MONITOR – Activities focused on the health of production environments, including measurement of performance, availability, and other nonfunctional requirements, as well as monitoring of the end user experience. Feedback from these activities is factored back into Planning activities.
These stages are commonly represented in the form of the DevOps Loop:
Why DevOps Alone is Not Enough
Many organizations assume that if you can achieve speed through Agile and DevOps, then you’ll be successful in driving business value. However, the reality is that as a product passes through each stage of the DevOps toolchain, gaps in alignment can become chasms within the value stream. Without a deeper focus on the aligning these business-IT value gaps, a product will continue to drift further and further from its intended business goals as it moves through different stages of the development lifecycle.
Therefore, there is a need for organizations to expand their view of the DevOps delivery process from tactical mechanics to strategic business integration. DevOps alone will not lead to better business outcomes. This can only be achieved by integrating business alignment into the overall process in a holistic BizDevOps cycle.
BizDevOps integrates business alignment and market responsiveness directly into the development process to accelerate product success and reduce scope failure. While companies have always tried to align business goals with development goals, new technology is finally enabling them to automate this process.
By integrating business stakeholders into the value stream, organizations can keep the rest of the DevOps cycle tightly aligned with business objectives in an automated and accountable manner. When done well, it allows companies to execute on a vision faster and more efficiently.
1. ADAPT – In this stage, IT and business stakeholders work together to incorporate the latest customer and market feedback, as well as business demands, to define business initiatives, road mapping, and planning at an Epic level. Traceability and impact analysis reports enable users to adapt to changing internal priorities as business objectives evolve.
2. DEFINE – In this stage, stakeholders across the organization can define their vision through a visual, well-understood solution model. The solution is then decomposed into functional components that define the various activities at each stage of the toolchain. Considerations from a variety of stakeholders are addressed to define a solution that supports the business needs.
3. ALIGN – Upfront alignment is key to driving business value throughout the SDLC. In the Align stage, stakeholders across the organization can align their vision through visual models and automated workflows. Integration throughout the toolchain is essential for continuous alignment throughout the value stream.
4. APPROVE – At this stage, stakeholders approve that the solution designed supports their business initiatives. Easily generated and shareable reviews are key to the approval process in a business-driven application lifecycle. A wide breadth of stakeholder feedback helps to reduce rework and keep teams aligned throughout the value stream. The robust review processes should be automated and enable all stakeholders to sign off on product goals, ensuring accountability as the product moves through the toolchain.
Using this model, the full BizDevOps toolchain can now be traced back to business level priorities, ensuring that the technical aspects of an organization’s products and services are designed to meet customers’ needs in an Agile, compliant, and cost-efficient way.
Simply put, BizDevOps sets the guardrails so that, as technologists, you are actually following the original vision of Agile – involving the customer early and often in your approach and creating greater business value for your organization.