DevOps

Accelerate software delivery by unifying development and operations teams with a shared set of automated build, test, and deployment practices.

What is DevOps? Why does it matter?

DevOps is a set of best practices and tools that accelerate delivery of software that replaces lengthy and error-prone deployments with structured, repeatable processes to build, test, release, and monitor the functionality and performance of software releases. DevOps practices can be applied to software applications, engineered systems, or software embedded in products, such as automobiles, delivering value to customers with greater velocity, efficiency, and reliability.

How does DevOps work?

DevOps, an Agile extension focusing on smaller value unit delivery at greater speed, provides a shared process and toolset to plan, manage, and monitor software delivery. It replaces large, infrequent releases with a continuous integration/continuous delivery (CI/CD) pipeline of customer value extending to embedded product software. The embedded DevOps model delivers software updates at discrete intervals, while other software enables more frequent over-the-air (OTA) updates.

The benefits of DevOps

Speed

Deliver value to customers more quickly through more frequent, automated software updates.

Reduced Cost

Realize greater efficiency and automation, and reduce the overall cost of software releases.

Higher Quality

Improve the quality of the end user experience through consistent, automated testing and performance monitoring.

Improved Collaboration

Work collaboratively to build and deliver a shared vision of customer value.

Greater Customer Satisfaction

Reduce the request-to-delivery cycle and maintain competitive parity over time.

Longer Product Lifecycle

Extend the usable life of products through frequent software updates.

DevOps lifecycle

Because of the continuous nature of DevOps, practitioners use the infinity loop to show how the phases of the DevOps lifecycle relate to each other. Despite appearing to flow sequentially, the loop symbolizes the need for constant collaboration and iterative improvement throughout the entire lifecycle.

The DevOps lifecycle consists of eight phases representing the processes, capabilities, and tools needed for development (on the left side of the loop) and operations (on the right side of the loop). Throughout each phase, teams collaborate and communicate to maintain alignment, velocity, and quality.

DevOps best practices

While DevOps processes vary, most include the following:

Collaboration

DevOps breaks down silos that separate development, operations, and test teams so they may be merged, or simply operate under a set of shared goals.

Holistic Release Planning

Link code changes with defects, requirements, and test cases. Holistic release planning allows teams to isolate problems, perform rollbacks, prioritize requests, and synchronize with hardware and electronics deliveries as needed.

Continuous Integration

Developers merge code changes into a shared repository that is integrated, compiled, and tested automatically at regular intervals—sometimes daily—to reduce the cost of integration.

Continuous Delivery

Code changes are regression tested and delivered into production environments at regular intervals—sometimes daily—to speed delivery of customer value.

Over-the-Air (OTA) Updates

New software is delivered wirelessly over the air to be embedded in products. In most cases, updates are carefully controlled to avoid destabilizing products in use.

Monitoring and Analytics

Track, analyze, and report on DevOps processes, and manage escalations with enhanced visibility. Monitor progress and provide teams with a single view of the DevOps value stream across projects.

Tools for DevOps: Codebeamer

Codebeamer is a requirements, risk, and test management solution that accelerates customer value delivery and frees up teams to adopt DevOps practices. Manage CI/CD pipelines with 360-degree visibility into requirements, code, and test data. Prioritize customer requests, make informed rollback decisions, and experience audit-ready traceability. Central DevOps hubs integrated with developer and testing tools, like GitLab, Jenkins, and Mattermost, replace fragmented toolchains. Streamline and manage engineered systems and embedded software releases.

DevOps frequently asked questions

What are the challenges of adopting DevOps

Common challenges of adopting DevOps practices include:

Siloed Teams – Teams lacking shared processes and goals are likely to prioritize different sets of tasks, resulting in sluggish and error-prone deliveries, so many organizations merge development, test, and operations engineers into a single DevOps team. Teams can also maintain their current organizational structure but work with a shared process and objectives. Being able to view a single, shared dashboard is essential to unite teams around a common definition of success.

Lack of Automation—Frequent working software deliveries require automation across the build-test-deploy cycle or teams will be burdened by manual tasks. Integrated toolchains accelerate deliveries while enhancing DevOps quality.

Lack of Traceability—Lifecycle traceability helps organizations adopt DevOps practices with precision and control. Prioritizing delivery of a customer request, rollback of a feature causing performance issues, or delivering different features to different customers or geographies all require fine-grained development and release cycle control. This degree of release control is only possible when DevOps practices are integrated with other lifecycle disciplines.

How is DevOps different for embedded software?

DevOps practices can be extended to embedded software in products, such as automobiles, cell phones, and medical devices, with some key differences:

Delivery Timing – Smart products typically require more controlled and nuanced delivery practices such as automotive software updates batched and timed to coincide with regular auto service intervals. Deliveries are typically timed to minimize disruption and ensure safety.

Safety and Security – Many smart products are safety-critical, with regulatory oversight extending to DevOps practices. These products must meet traceability and audit standards, and security over the software update chain of custody.

Delivery Methods – Embedded software can utilize over-the-air (OTA) updates, traditional web, CD, or other wired delivery methods.

Heterogeneous Environments – Teams can achieve a high degree of control over the computing environment in traditional DevOps environments. They can dictate the inclusion or exclusion of specific software and ensure that all software maintenance tasks have been carried out, as opposed to operations teams that don’t own physical hardware devices. Embedded software updates generally require more complex testing over a larger number of hypothetical configurations to ensure that the updates will operate in real-world conditions and configurations.