Uber App ( Android) — Some comments
Uber is one of those app — where nearly everything is pitch perfect. So I will mostly concentrate on a few bugs and suggestions.
1. Destination Flow
The thing about designing a software product is to load it up with ample features and then build multiple navigation to reach the same end. Users are all different in their own ways but after repeatedly using a product they develop their preferences. In Microsoft Excel, one can use the same feature in multiple ways — using a keyboard shortcut, by going to the option from the menu bar or by selecting an object and doing a right click. Over a period of time, different users will find their own sweet spots and use just one navigation to a feature, which comes naturally to them. The aim of a Product manager should be to build multiple navigation paths to a feature, knowing very well that some navigation flows will click with one set of users, while some with some other, and some with none.
a. The primary feature of Uber is to select a destination. This can be done by clicking on — “Where to” or selecting from one of the three options at the bottom of the app. Since users use Uber pretty often — over a long usage of the app, they would not miss the three suggestions on destinations at the bottom of the screen. They may miss it a few times, but over time they will pick it up and understand that the three icons at the bottom are shortcuts for selecting a destination. Chances are — if a user has not clicked on any one of them and still has clicked on “Where to”, it means that a user is headed somewhere else. Hence it is pointless to show these three again at the top of the list on the subsequent page.
b. The destination shortcut has three options. One can consider if it makes sense to make this a horizontal scroll-able ribbon( with more than 3 destinations)where a user can scroll to right and select a destination. For most of us the destinations are usually the same so there should be an option to just tap on that destination right on the home screen rather than going and fetching from Favorites or searching for it every time.
c. The logic of which three short cuts are shown on the Home screen is not very clear. One is from recent history, the others look randomized. This should be function of which all destinations a user has been multiplied by the frequency of visits. It is not so, today.
d. The separator between “Where to” and Schedule later is a 1 px greyish bar. Most of the users will miss this separator. This can a 1 px but it has to be in a solid unmissable black. A user can make a mistake here that the schedule later is just an icon for the “Where to” flow and not a distinct feature in itself. Where multiple features are present, it’s fine to distinguish which is more important, but the segregation of two features has to be clear.
2. Ride for a friend flow
a. In this flow, once I am on the screen where I need to enter a friend’s contact number or email address, the validation kicks in before I have completed my input. This is in the form of an error message — “Invalid”.
A lot of apps do this mistake where the validation kicks in before a user has completed doing what she was doing. The validation has to be on an event. The event can be Submit button, pan out, change in keyboard , waiting on the same screen without an input for 5 sec etc.
The other way to handle it is keep the Enter button greyed out which will become active when the validation is successful.
b. There is a bug on the next screen wherein the country code of +91 changes to +1. The number I had entered was 9769 XXXXXX, the number on the right image should have been +91 9769… , but it was +1 9769…. The country code has been defaulted to USA, which is incorrect.
3. Outstanding Payment Flow
a. Where there is an Outstanding payment, the Credits tab is not present, so even when a user has Uber Credits a user is forced to pay using a different instrument. This may be a conscious design decision, but it is not logical. I guess the assumption made here is that Credits apply automatically on a ride, so there is no need to show it here. But, this assumption does not stand at times.
b. The payment page has two parameters : Destination Address and time of trip. While the address is valid i.e. the destination address of the last ride, the time of the ride gets overwritten if a user comes to this screen more than once.
In this screen grab — the time of the previous trip is shown as GO, Today, 12:29. This is not correct. The ride was taken a couple of days back.
4. UPI Payments
a. One can add the same UPI id twice( as in the screenshot above)This has not been handled.
b. Where UPI PIN is not set, a user is not given the next logical thing to do. Like, go here to set UPI PIN or do this to set a PIN etc. The assumption made is that everybody will have a UPI PIN.
c. The add UPI id flow should have the set PIN flow as well, for scenarios where the PIN has not been set. One can replicate the Paypal trick of Rs 1 transaction here to confirm if this payment address will work or whether the PIN has been created. Alternatively Netflix in India now does a Rs 0 transaction to validate whether a credit card or debit card is valid, one can look at replicating Rs 0 flow for UPI payments as well.
5. Validation on Offers
a. Where there is an outstanding payment, the user cannot book a new ride. So rather than telling a user this at the end of booking flow, the app should rather mandate it upfront, just like it is done for a mandatory app upgrade.
6. Payment Profile
a. The Business/ Professional app icon on top right is not very clear too the user. They are differentiated by using Blue for Office and Orange for personal on the map layout.
As English readers the focus of the reader is on the left of the screen, and for a reader to make a connection something should either connect from left to right or there should be minimal noise for a user to notice something on the extreme right.
Say, we just compare the two ribbons, one with the hamburger and profile icon and the other with the destination bar.
Both have two options, one on left and one on right. In the Where to Box, there is no map overlay and the box is all white, this makes one notice the right icon of — “ Schedule later” option, as there is a white space(hence no noise). This is not the case as the map in the background on the payment profile interferes on this bar and make a user miss the the profile icon.
Uber has tried a trick where in the copy of the button, “Personal” or “Business” comes for some time and then disappears, which is good. But I believe a user will still miss it.
7. Design Calls
With the cards like layout for Uber Eats and other info like Driver details, over a period of time a user builds the habit of pushing a card down by default. So when I have selected a destination and have been given the options, at times I want to look at the map with more detail so that I can see the nearby cabs . So I casually try to push this card down to see more details about the cabs near my pick up point. But this does not work as this is glued to the bottom tab, I need to necessarily pinch out to zoom in into the map to see more details.
One can think of making this as a card and whether it makes sense to give a user an option to pull this down as well.
8. Location / Data Off scenario
I mostly keep my location and data off to conserve on battery life. When needed I switch on the data but more often than not keep the Location off.
So when I launch the uber app — I mostly see this screen. The other apps like Google maps and Ola handle this differently by asking the user to enable the location which is a default Android pop up.
Here the next thing I do is pull down the menu drawer and enable the location. But the app does not capture this event and so I have to forcefully kill the app and relaunch it every time.
b. The CTA is — “ Enter the Pick up address”. By default the location taken is the — Last Known location of the android, which is better than Ola, where this is defaulted to Bangalore.
Ideally there should be two options here — one to enable the GPS and the other to Enter Pickup Address.
10. Error Message
a. In some scenarios I got this message — Please select Uber for Business or Cash is the default error message, which in my case was illogical. An error message should always have these elements:
i. An error code. An error code is meant for the developer. The developer does not need to waste her time trying to replicate an issue when she sees the error code.
ii. What went wrong. This is for the user. A user needs to be told this so that she understands the issue. At a personal level, when a person is told about his mistake privately, he almost always is glad about it and corrects it.
iii. What is the next logical thing the user can do and lead to that flow. If payment is the issue, click here to make a payment.
10. Quiz
Recently Uber India(Mumbai) conducted a Quiz on the football league. This Quiz was done in web view using Google forms, and the user was expected to enter her name and Mobile number in the form, which should ideally not be needed.
I get the constraints of a Product guy when someone comes and says, I want to run a quiz in a week’s time and when the local(Indian) product guy pages home to the HQ, the HQ says — no way. So the PM has no option but to do this in a web view. But using some trick — SSO or reading the source of request or by the app listening to the changes in URL the parameters which the app already hass a primary key can be identified so that a user is not asked her Mobile number and name.
11. App Update
On updating to the latest app, the short cut from the Android home screen got deleted for me. I am not sure, if this is an OS issue or an app issue. This happened to me on my one plus one x.