Did you know that a modern car contains millions of lines of code? Developing and troubleshooting this software is no easy task – it requires a thorough understanding of both the automotive industry and software development. In this customer case, we'll take a look at how we assisted one car manufacturer with developing a new version of their diagnostics and analysis tool.
Our customer is a leading car manufacturer that uses an internal application for diagnostics and analysis of their vehicles. Repair centres and licensed professionals can use this tool to connect to cars and carry out advanced troubleshooting, complete with a suggested solution and matching excerpt from its manuals.
When the client approached us, they had already completed the analysis phase. Since our team had experience with developing the previous version and remained onboard for its support phase, they were quickly up to speed. The development team consisted of analysts and developers provided by the client, expanded with some of our experts.
While the requirements had already been determined, the client’s project approach still allowed the development team a large amount of freedom. The manager’s open-mindedness meant they could solve tickets while keeping any feedback from the application’s previous version in mind. The developers also had a wide range of responsibilities, including other parts of the software development lifecycle. Besides development, they were responsible for testing, support, further analysis, and even decisions about the architecture.
Coordinating and tracking these responsibilities required a structured collaboration, which is why the team used an Agile Scrum methodology. Since the client focuses on continuous improvement in their manufacturing, the development also followed the principles of Kaizen. This concept refers to business activities that continuously improve their functions and involve all employees.
As Java-experts, we helped the client’s team to refactor their existing application into an updated version. Instead of Google Web Toolkit (GWT), the new version’s Java code runs in microservices written in the Spring Boot framework. Besides microservices, the application is based on events, which are captured in Apache Kafka.
We helped to migrate this new architecture to a cloud infrastructure hosted in Amazon Web Services (AWS). Using AWS Lambda, the code’s functions can run serverless in the cloud. Analysing and reading the vehicles’ data happens over a TCP connection, using the WebSocket communications protocol.
Perhaps most importantly for its end users, the new application is much faster, easier to use, and translated by the client in no less than seventeen languages.
Besides rewriting the entire codebase, the development team added a bunch of functionalities and usability improvements based on earlier feedback. The new version of the application is much more flexible and significantly increases the performance.
The team also wrote several new tests, based on the changing customer demands and legislation in the automotive industry. This includes a hybrid health check, whose results can extend the customers’ warranties if their engines have been used sustainably. There is also a component that ensures compliance with a new European directive, which makes it mandatory to track the amount of fuel that a vehicle has used in addition to its total distance driven.
Perhaps most importantly for its end users, the new application is much faster, easier to use, and translated by the client in no less than seventeen languages. The new user interface, which was developed by an external party, vastly improves the visual representation of the relevant maintenance manual pages, including highlights of the relevant parts. The improved backend now tracks the lookup statistics for every error code and page of the manual. That way, the translation and documentation of the most frequently searched issues get the appropriate priority treatment.
The team’s product owners visited several garages and repair centres to gather feedback directly from its users, to ensure that the new application would be a significant improvement. The new version was universally well-received, with users noting the increases in performance, user experience, and much-requested additional functionalities.
After a small year of development, testing, and incremental improvements, the application was taken into production. It performed as well as expected, and one of our experts currently remains at the client to assist them in the support phase of the application’s lifecycle.
After a small year of development, testing, and improving, the app was taken into production. And it performed as well as expected!