Intuitively, you might think that Amazon cares about people being able to enter their banking details as easily as possible. In reality at least Amazon.de doesn't seem to care. Instead of instantly validating with Javascript that a entered IBAN is valid the form waits with giving feedback till the user clicks okay.
I just used Uber the first time and the task of entering street addresses is awful.
- There's no autocomplete for street names that allows me to add the street number.
- Berlin is a big city, yet the first hits in the list that was proposed are streets with the same name in other cities.
- The suggestions that Uber gives don't include postal code which are important because multiple streets in Berlin share the same street names
- There seems to be no obvious way to select a street name and then choose on a map where on the street you want to be picked up. After a bit of searching I do find that I can click on the street name for pickup but the touchable area is very small and could be easily expanded into the empty whitespace above. For the destination it still seems like there's no to add more details to the automated street name
- If I write the name of a contact (in my contacts) then I don't get the address shown
How does it come that those companies employ 1000s of software developers yet manage to do badly on the task of providing basic functions to users? What are all those engineers doing?
A big piece is that companies are extremely siloed by default. It's pretty easy for a team to improve things in their silo, it's significantly harder to improve something that requires two teams, it's nearly impossible to reach beyond that.
Uber is particularly siloed, they have a huge number of microservices with small teams, at least according to their engineering talks on youtube. Address validation is probably a separate service from anything related to maps, which in turn is separate from contacts.
Because of silos, companies have to make an extraordinary effort to actually end up with good UX. Apple was an example of these, where it was literally driven by the founder & CEO of the company. Tumblr was known for this as well. But from what I heard, Travis was more of a logistics person than a UX person, etc.
(I don't think silos explain the bank validation issue)
There are two levels of IBAN validation. One is to take the number and it should if you take modulo 97 result in 0. There's also a more complex one that's about querying a database about valid IBAN's that multiple MB big. You can easily do the modulo 97 trick client-side for validation and then do the more complex one on your server.
... (read more)