CloudCar, Inc is a Silicon Valley-based startup developing the future of connected car technology. They are focusing on “what’s next” and considering how the driver’s experience will evolve in the future.
CloudCar’s cloud-based platform integrates machine learning capabilities with voice-first infotainment to deliver a seamless and personalized experience. They work with service providers and leading automotive OEMs to offer cutting-edge technology to their consumers and enhance their driving experience, while maintaining their partners’ brand identity.
Working with cutting-edge tech stacks(Vertx/Kafka/Mongo) always brings about the problem of having enough engineers with the expertise to execute your plans.
When a company is situated in the center of the software development world, and the software developer market is as competitive as it is, the logical step is to look for technically proficient teams abroad. CloudCar wanted to expand their development team with an offshore one. The main goal was to find a technically capable team that could seamlessly integrate into their own.
Working with offshore teams is usually associated with two major risks. The first one is that the team you’re working with may not be able to complete tasks in time and with the expected quality, and the second one is the synchronization of the parallel work between local and offshore teams. Looking at the types of skill related to each one, we can classify them as:
- technical knowledge risk
- communication and workflow risk
CloudCar was looking for a team that could overcome both of those. Based on referrals from a credible source, they decided to choose Dreamix for the task.
The first thing Dreamix did was send an expert to work on-site at CloudCar’s office and gain deeper insight into the project, its challenges, and the context it was developed in. The EU-based developer then used that knowledge to propose an optimal team structure and processes for the specific situation. CloudCar was closely involved with the process, from team member approval through discussion of processes all the way to the overall timeline and milestones.
Tackling the two risks associated with offshoring required different approaches:
1. Technical risk
- Collaborative interviews: The CloudCar team met with all Dreamix engineers involved before accepting them into the team. As such, everyone at CloudCar had confidence in their new partner’s technical ability – and cultural fit.
- Joint Sprint planning: The two teams worked together to plan Sprints, engaging in technical discussions and exchanging estimates.
- On-site workshops: Synchronizing teams across the globe is easier when people know each other in person. By working side-by-side for a while, the teams were able to foster trust and increase output quality.
- Short performance review cycle: The team’s performance was evaluated at brief, 2-3 month periods in order to quickly adapt if any changes were needed.
- Zero turnover: The Dreamix team remain stable, with no engineers leaving the project as it evolved. This served to prevent loss of key contributors and know-how, improving delivery quality and timing.
- Scaled Scrum served as a foundation: This let the teams synchronize naturally, define unified definitions and milestones and maintain a high level of transparency.
- Single point of contact: When teams work at separate locations, it’s common to discuss technical issues and challenges in a 1:1 meeting. While collaboration is always a good thing, too many private discussions can reduce transparency and impact overall collaboration. Dreamix and CloudCart implemented a single-point-of-contact role that focused on open information flow and correctness between the teams. At the same time, the role served purely as a guarantee for communication spread, and not for technical analysis and validation – thus preventing it from becoming a bottleneck.
- Itemized daily Scrums: The teams used and shared lists of goals, roles and assignments, and went over them during Scrums to increase transparency and efficiency.
- On-site engineers: Dreamix sent tech leads, architects and engineers to the CloudCar offices for critical project phases.
The partnership was a success, and the risks outlined by CloudCar proved to be well managed by the Dreamix team. Dreamix migrated the entire solution’s backend from CoffeeScript and NodeJS to Vert.x and Java, thus significantly improving its performance and maintainability.
Building on that, they started working on newer versions of the solution and helped improve them, allowing CloudCar to successfully present to major automotive vendors and secure new partnerships.