Thursday, March 3, 2022

Time Forecast in Transport Software

The main problem was that each service had its own logic and its own variables for predicting the time of the order. Maintaining all the changes and understanding in which service you need to tweak to make it better was a whole problem.


Why is a separate team needed for this?


The company lacked a team focused on a specific and important task - time forecasting. The challenge for such a team was to develop a single platform (a master delivery time forecasting system) and implement a new forecast in all Delivery Club components that work over time.


Since we use the Inner Source approach, it becomes logical that keeping the logic in different services and blurring responsibility for different teams is not very correct.


By creating a new team and delegating this responsibility to it, we reduce the time of development and delivery of features to production.

Logic of timing in logistics software

But here we ran into another problem: the timing logic was spread over many commands. There was no clear understanding in which service to tweak in order to make the forecast better and not break it in other services. Therefore, we decided to form a team with the telling name Dynamic Time.

The main goal of our team is to make sure that time is relevant for all platform participants. Then our customers will always know when we will deliver the order, and our partners will be guided by the exact time of arrival of the courier for the order.

What exactly is the complexity

We have a large number of services, and many of them have their own logic for generating a forecast. For example, in one service an order was created, it was assigned a standard time. In another service where this time was forwarded, there was a different logic for calculating the time for couriers. For example, they added a coefficient by the type of movement of the courier and showed this time in the courier application so that the couriers knew how long they needed to arrive at the restaurant or take the finished order to the client.

In which of the services would you decide to make changes to improve the forecast for customers? What about couriers?

For us, the correct answer was: in none of the current

Time Forecast in Transport Software

The main problem was that each service had its own logic and its own variables for predicting the time of the order. Maintaining all the cha...