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.
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.
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.