Design the app for Uber drivers
I : Assume you’re a PM at Uber and the driver app has not launched yet. How would you go about building an app for Uber drivers?
C: Sure. I would first like to delve a little bit into understanding the Uber driver - characteristics, needs, abilities, etc.
Age 21 - 50 years
Some people could do this as a side gig, others will do this full time.
They are solely looking to maximize how much they make through Uber and nothing else.
They need to have their own vehicle.
They need to be experienced at driving and know the location decently well.
They should be comfortable with technology especially with using mobile apps. They should have a smart phone.
Uber’s goal for the app for drivers would be to maximize matches (trips requested by passengers are accepted by drivers) which would lead to increasing customer satisfaction and ensuring constant revenue for drivers.
An Uber driver can either drive passengers, drive pool passengers or deliver food from restaurants to consumers. Do you want me to include all of these categories?
I: Let’s just go with driving passengers.
C: Alright. I will now go into what drivers need to do in order to pick up a passenger and drive them to their destination. I am going to break this down into 3 - pre-ride, during the ride and post ride.
Pre-ride
Goal - Ensure drivers are able to get enough trip requests
Considering that some drivers will not be driving full time, there needs to be a way for the driver to indicate their availability for driving.
They need to see a list of trip requests. The app could show hotspots near the driver’s location. Uber could also use data to indicate to the driver at what times in the day the demand is high. This way the driver has a higher probability of getting trip requests whenever they login to the app.
Once a driver accepts a request, they need to be routed to the passenger’s pick up location.
They should also be able to contact the passenger for more details such as their exact pickup location, to inform the passenger of delays/arrival, etc.
Once the driver reaches the pickup point, they should be able to identify the passenger that requested for the trip.
During the ride
Goal - ensure driver is able to easily drive the passenger to the destination without any incidents on the best route.
Once the passenger is inside the vehicle, the driver should be able to start the trip and see the best route to the destination.
During the trip, it’s possible that there could be accidents/breakdowns/delays/unexpected incidents. The driver should be able to report this to Uber and necessary actions need to be taken such as dealing with the accident/breakdown, finding the passenger an alternate vehicle, etc.
Post ride
Goal - Drivers should be able to accept payments, see how much they’ve made and check out their ratings
At the destination, the driver should be able to accept payment from the passenger and indicate that the trip has ended. They are now available to accept requests for other trips.
Drivers should also be able to see how many trips they’ve done on a particular day and how much they’ve earned. This can be done via a dashboard where they can see today’s progress. The app can also have the ability for a driver to set earning’s goals for the day/week. The app can then tell the driver how much progress they’ve made and how many trips they have to accept to reach the goal. This will motivate the driver to accept more trips and provide a good experience to riders.
The Uber app for drivers needs to have all of these functionalities. I also want to add that since the driver is going to be driving for most of the steps above, it has to be really easy for the driver to take the relevant action so that they don’t get distracted and can keep their eyes on the road. I would also say that at any point in time, the driver should be presented with only one action/decision point.
I: Yes, that’s right. Since you brought it up, let’s get a little bit into the UX. Can you wireframe the hotspot screen above?
C: Sure. I’ve indicated how hotspots will look. The app will show hotspot areas to the driver so that they’re able to get sufficient trip requests near their location.
This wireframe has number of people requesting for trips as this could be one motivating factor for the driver to drive to the hotspot location. The other motivating factor could be projected earnings. Considering Uber’s goal is to maximize matches between drivers and riders, the projected earnings could be the maximum of the requested trips from the hotspot region.
Once the driver accepts, they can use route guidance to go to the hotspot region.
*note for the candidate - expect some questions here around the choices you’re making in the wireframe. This questioning will be to test your rationale and understand why you’re making certain choices. The interviewer could also engage in debate about a certain UX patten vs the one you’ve chosen. Example questions
Why have you decided to show number of passengers?
What other factors will motivate Uber drivers to go to the hotspot?
How many hotspots will you show? How will you prioritize between hotspots?
Should the app automatically navigate to the hotspot with a timeout?
At what part in the driver user journey should they see this screen?*
I: Interesting. Let’s move on. As you know, the Uber app today has all of these functionalities. Is there any other functionality that you would include?
C: Yes! Several Here are some ideas from that are inspired from some pain points I’ve faced as a passenger:
In the app today, we see that driver rating plays a small part in how drivers are compensated. I would add recommendations on the driver app to get a high rating from passengers such as
Make sure your car is clean and well maintained.
Read the passenger. Some want to talk, some just appreciate silence.
If it’s odd hours, make the passenger feel safe.
Fuel refill reminders. The app will know how long the driver has been driving for and can remind the driver to refill petrol/diesel, etc. before they accept the next trip so that the passenger does not lose time during the trip.
Mobile battery percentage detection. Sometimes, Uber drivers won’t be able to charge their phones and when their phone dies, there’s no way for the driver to communicate to anyone or for the passenger to know what’s going on. This leads to the passenger waiting for a long time and seeing that the ETA of the driver has not changed for a while. The passenger will try to contact the driver and will get really frustrated and waste valuable time trying to sort out the situation. To solve this, the Uber app can read the driver’s phone battery percentage and once it reaches a threshold, can send information that the driver’s phone won’t last and the trip request needs to be rerouted to the next matching driver.
I: Would you make any modifications to the Uber driver app for India?
C: Yes! As a power user of Uber myself, I would make the following change.
Payments - This is a major pain point these days with Uber. As a rider, when my trip request has been accepted, almost always I get a call from the driver asking for the mode of payment. Most drivers prefer cash and will cancel the trip if the mode of payment is something else. But most consumers in cities today do not use cash as a mode of payment. Their preferred mode of payment is digital - wallets, UPI, etc. and hence there is a mismatch of expectations here. To solve this problem, I would talk to some drivers to understand their concerns about other modes of payment. But for this interview, I would like to assume that the primary concern of the driver is the delay in payment through online channels. With cash, the driver gets the payment immediately but with every other mode of payment (especially credit/debit cards) - it is going to take a while for the payment to go to the driver which will reduce the money in hand. There are several solutions to this problem
Educate the driver - Uber can educate the driver about online modes of payment and how the payouts work including setup, how to use and how to withdraw this amount as cash. Furthermore, since most passengers use online modes of payment, Uber should communicate to its drivers that they will got more rides if they get this set up and accept payments through several channels.
Indicate passenger’s mode of payment to the driver - When the driver receives trip requests, they should also be able to see how the passenger is going to pay for this trip which will put the driver at ease and will avoid the confirmation, phone call and cancellation cycle in case the driver is not happy with the mode of payment