By Michel Genard
Markets demand ever more complex systems and faster development cycles. Meanwhile, companies are facing a shortage of qualified embedded engineers and developers. Even if infinite budget were available, there simply aren’t enough people resources to get the work done when relying on traditional development methods . While CI/CD offers a solution, organizations must overcome internal challenges to ensure effective implementation.
The Push and Pull of Implementing Agile Embedded Development
DevOps is becoming popular with embedded systems makers for a combination of positive and negative reasons—carrots and sticks if you will. The carrots include the ability to move better products to market faster. Done right, DevOps makes the once sequential Dev, QA, Security, and Ops schedules overlap to some extent—essentially becoming DevSecOps. There are fewer iterations in every cycle, so everything advances more rapidly.
DevSecOps also has the positive effect of enabling high-performance teams. This is not an automatic outcome, but in general, improved communication and collaboration raises team productivity and morale. The end product will typically be of higher quality. This is not guaranteed, but in our experience, when developers, QA, security people, and operations staff work together, they create better products.
CI/CD methods speed up time-to-market, improve collaboration, and produce better products...but organizations face challenges when trying to implement these new methodologies.
The sticks, factors that are forcing companies to embrace DevOps, are largely related to personnel limitations. Developers who can write good code and who understand embedded systems are hard to find. Many design teams are facing a shortage of developers who understand embedded systems and their role in specific industries, such as aerospace or automotive.
This basic shortage of people is exacerbated by the requirement for developers to have security clearances. DevOps is critical in this context because it enables a small, limited talent pool to produce more software than ever before.
DevOps Challenges for Embedded System Development
Not every embedded systems company has an easy time making the move to DevOps, even when there is a strong intent to get it going. One issue that comes up is a lack of coordination between groups. Simply declaring that DevOps will be the mode of software development and release is inadequate to get teams to integrate their processes.
Adopting DevOps must be a revolutionary change in management processes. Team members need to be trained on the new methodologies and tools. They need the chance to ask questions and determine how these novel methods will work at their specific organization. DevOps and CI/CD are cultural shifts as much as they are technical and procedural.
Effective CI/CD implementation requires a shift in management processes and company culture.
Security can also impede the progress of DevOps. Application security can be challenging, and speeding up the development process doesn’t automatically mitigate risk. If anything, it opens up a bigger attack surface area. You need to ensure security throughout the entire embedded development process.
Although many data center toolsets already come with DevOps and CI/CD-friendly functionality, in the embedded world most development is still being done in the traditional waterfall manner. Wind River is leading the way by providing robust agile functionality in every product release and roadmap.
Hardware can be a barrier, too. In traditional development, the dev team had to code for a known piece of target hardware, e.g., a specific operating system on a familiar processor and circuit board combination. As the overall process accelerates, it gets harder to provide target hardware quickly enough for the DevOps team. Some hardware may be extremely expensive, of limited availability, or not even built yet.
Using the right tools eliminates hardware roadblocks, enabling the development of high-quality embedded products faster.
How Can You Combat These DevOps Challenges?
DevOps and CI/CD are becoming imperative in embedded systems software development. They provide an answer to the market’s demand for the production of increasingly complex systems on accelerated delivery schedules. Even without the market forces, DevOps offers a solution to the industry’s serious people shortage. The new development and releasing methodologies drive faster time-to-market, support better team cohesion, and result in better code overall. However, to overcome these DevOps challenges, companies must implement tools that support these more efficient processes.
To see how each of these solutions helps combat the challenges associated with CI/CD, download our eBook:
Realizing the DevOps Vision in Embedded Systems