The customer is an international company that delivers high-tech solutions to automotive manufacturers across the globe. Looking to refine its development processes, Orion sought to shorten the release cycle and enhance the product’s quality.
Challenge
There were some week points in the customer’s current development process that our team had to address, including:
- Poor code quality that resulted in broken builds. The product code didn’t meet coding quality standards and unified coding rules, which considerably complicated its maintenance.
- The product build process was time-consuming due to the product compilation, which resulted in inefficient use of resources and unnecessary delays.
- Lack of automation throughout the process, which made the feedback loop slower.
Solution
To address and solve these challenges, our team adopted Continuous Integration (CI) practices which helped automate the manual aspects of the process. It also allowed for faster feedback and reactions accordingly, making the entire process more agile. Our solution enables the customer to reduce expenses and increase quality.
Furthermore, we added static analysis to the CI pipeline to address code quality issues. This allows for instant feedback when changes are made, enabling the return of the insufficient code back to developers for further improvement if necessary. In order to streamline the process, we created a solution that compiles only changed components and their dependencies. Unchanged components are taken from the repository and added to the package without compilation. We built the solution on top of Docker, Artifactory OSS, and cmake.
In the project scope, we automated the deployment process to make it continuous and decrease manual efforts. The product was installed for the test environment through automation, and we implemented the automated smoke/sanity test suite using Python and Robot Framework.
Results
The solution implementation and the deployment process refinements allowed us to reduce building time by 85%. Additionally, the number of product issues decreased according to the customer’s bug tracking metrics. Now, the manual test team can focus on more thorough testing for the product features since early issues are caught at early stages.
Technologies:
DevOps:
- Jenkins
- Docker
- jFrog Artifactory OSS
Language:
- C++
Testing:
- Python (Testing)
- Robot Framework