Apart from the a handful of messages we’ve received about a few of our couriers, no one ever finds logistics sexy.
If you are expecting me to change your mind with this blog post, please prepare to be disappointed. Nonetheless, we are super proud of what we’ve managed to achieve with our latest feature rollout. This thing touched nearly every facet of our product line. Our customer mobile app remains unchanged as our webapp bookings still dwarf our mobile app bookings so it always takes priority.
The whole project took about 12 weeks to complete and necessitated a complete restructure of how our backend works, as well as webapp UI and courier app UI.
So what are multi-drops and why are they such a big deal?
Basically, multi drops are the ability to book one courier to go to one pick up to gather lots of packages to be dropped at multiple delivery points – hence ‘multi-drops’ (also applies to multiple pick-ups going to one delivery point). This leads to more efficiency and therefore a cheaper price for the customer.
Our entire backend platform was geared toward optimising for single jobs, both at the point at which they are assigned as well as when they are in progress (more on that here). Having this set up means the system is set up for fluidity. So dropping a daisy chain of multiple pick ups and drops as part of one job is a little like running a set of train tracks over some sand dunes. In other words; hard.
Added to this, we had only ever designed our booking process for one job at a time. And because we don’t have controllers to manually sort out the most optimal routes for any given run, all this needed to be handled during the booking process itself, adding another layer of complexity.
So we needed to completely rethink the user interface whilst making other improvements we’d been meaning to do for some time.
So why did we do it?
- It was one of the only aspects of our service where we still couldn’t compete with traditional courier companies
- We were getting a lot of requests from existing clients for this feature
- Because of 1 and 2 there’s no way we could get to the kind of volumes we want to unless we actually sorted it out
So how does it work?
A big downside of our previous UI was users could only receive a quote at the very end of the booking process when they’d entered all the details of the job they were booking.
We’ve now improved this by providing a quote as soon as the first pick up and delivery points are submitted. And you can keep submitting pick up and delivery points before optimising the route to get the best possible price. Only at that point do we ask for contact and consignment details.
The rest of it works more or less the way it used to. Now that I’ve written that last (and very short) paragraph out I’m wondering how we managed to make something so complex look so simple (it wasn’t). Such is the beauty of software development.
If you have any questions about this (not related to backend and routing etc, secret sauce and all that 😉 do let me know in the comments or get in touch at firstname.lastname@example.org