EVs, once a niche product, are now mainstream, with major automotive companies investing heavily in the development of electric cars, trucks, and buses. One of the critical components of the EV ecosystem is the charging infrastructure. Efficient and accessible charging stations are essential to support the growing number of EVs on the road.
The global electric vehicle charging station market, valued at 16.43 billion dollars in 2023, is projected to reach 257.03 billion dollars by 2032, growing at a CAGR of 35.6%. Increased EV adoption, government incentives, environmental concerns, and advancements in EV technology drive this surge.
Companies like Milence are at the forefront of this movement, providing innovative infrastructure to ensure that drivers of heavy-duty electric trucks have reliable and convenient access to charging facilities.
Year
2024
Country
Netherlands
Team
5 people
Commits
1214
Development
43 weeks
Challenge
Milence partnered with the payment terminal vendor to install custom software for processing payments and providing drivers with the ability to track charging progress.
Milence approached us to develop an application for their EV charging payment terminals. The goal was to create a robust, user-friendly app that allows users to manage their charging sessions, view statistics, and contact support seamlessly. The application needed to be compatible with the terminal's Android-based payment app and the Milence API.
Based on the project scope, we identified three key challenges.
1. UX/UI Design. The terminal's small display size, limited color reproduction, and localization requirements were major design challenges.
2. Security Adherence of Terminal Vendor. Ensuring the app adhered to stringent security guidelines set by Milence and their vendor was critical. This involved integrating with third-party systems without compromising security and passing Non-Disturbance Testing (NDT).
3. QA Testing. Testing the application was another challenge, especially in the synchronization with the client’s backend developer.
Process
The Milence project workflow underwent all key stages from Scoping to Release.
During the Pre-project stage, we communicated with the client to understand their needs and expectations of the apps’ features and functionalities. The client came to us with ready-made research and a clear vision of how the app should look. They also prepared wireframes with screens for all future flows.
This provided a good start, and our task was to think through all possible corner cases, errors, and anticipate all possible scenarios. Since the app deals with clients' finances, the quality of our work had to be top-notch.
When working on IoT projects, we always ask for the actual device. That’s why Milence, along with the vendor, sent us the payment terminal and 2 testing payment cards (MasterCard and Visa) so we could develop and test all the features of the application directly.
Five members of the Stormotion team participated, including a Project Manager, 2 Andoid Developers, UX/UI Designer, and QA Engineer. It took about 43 weeks to deliver the app to the client.
Pre-Project - 10 Weeks
Agile Development - 31 Weeks
Release - 2 Weeks
Solution
The development process followed an Agile methodology, which allowed the team to adapt to changes and work efficiently.
To address the small display and color reproduction issues, our designer tested various color schemes and fonts in real-time on the actual terminal. We adjusted the element sizes and layouts to ensure usability and readability. Localization was handled by reducing font sizes and shortening phrases (after confirmation with the client) without breaking the layout. The result was a design that looked dull and dusty in Figma but was clear and readable on the terminal.
The development team maintained high standards by achieving 81% test coverage and top ratings in Reliability, Security, and Maintainability using SonarQube. The app successfully passed NDT set by the terminal vendor and met Milence’s security guidelines.
The QA Engineer closely collaborated with the client’s backend developer to conduct testing. This collaboration was essential because backend developer adjusted values on their side, enabling our QA Engineer to perform their tasks effectively. They ensured the app functioned correctly across all supported languages. The team also conducted interruption testing to verify the terminal's behavior during internet outages and tested the app's functionality after long idle periods.
The key features implemented in Milence included: language selection, station/connector selection with status displays (e.g., occupied/not occupied) for charging, starting charging, monitoring charging statistics, ending charging, viewing final statistics after completion, contacting the support center, displaying errors at different stages, automatic session termination, and returning to the current charging session. We also added the ability to scan a QR code for remote monitoring of charging via smartphone.
Success for Milence from a:
PM Perspective
The absence of a critical protocol initially delayed the project, necessitating an extension of contracts with developers to complete the project. However, working in an Agile methodology allowed us to adapt and proceed with unblocked items, preventing the project from stalling.
From the project management viewpoint, key lessons include planning buffer time for dependencies and unforeseen issues, aligning corporate expectations, and conducting technical discovery before major product decisions. Close cooperation with Milence’s Product Owner helped overcome these challenges.
Development Perspective
The development team maintained high standards with adherence to security guidelines. They effectively managed protocol implementation challenges and delivered key features such as QR code scanning for remote monitoring and NTP (Network Time Protocol) integration for time synchronization.
QA Perspective
The QA Engineer effectively collaborated with the client’s backend developer for testing and conducted comprehensive tests across all languages. They ensured the app functioned correctly after long idle periods and during internet interruptions, adapting font sizes and phrases for better display on the terminal's small screen.
DevOps Perspective
The DevOps team utilized SonarQube for continuous code quality checks and successfully conducted non-disturbance testing to ensure stability during real-world interruptions.
Client's Perspective
Overall Business / Roadmap Perspective
Distributing the app presented significant challenges due to the need to comply with both client and vendor regulations. However, maintaining strong communication and flexibility with Milence’s Product Owner proved crucial for the project's success.
The delivered app is not only scalable and maintainable but also fulfills all client requirements, providing a robust foundation for future updates and enhancements. As a result, Milence is now closer to realizing its goal of establishing 1,700 public charging points across Europe.
testimonials
shuffle through the slider. drag or swipe.