There is an unprecedented volume of software being developed today. Based on almost 30 years of developing software, managing development teams and running controls software development companies, I’ve concluded that I am not impressed with a lot of User Interface (UI) development today. While the state-of-the-art in UIs has improved drastically over the last decade, many contemporary applications address the UI’s superficial skinning while failing to follow an intuitive workflow of the application’s end-user. This trend is disappointingly common and results in slick-looking UIs that don’t work the way end-users want and are awkward and non-intuitive in their operation.
A great example of the challenges presented by an underwhelming user interface design is evident when using Google Maps, which I suspect is mostly used while driving. To be clear, in my jurisdiction, it is illegal to use a handheld device while driving, so I would never do any of this … but I know a guy who explained to me that if you are navigating using Google Maps, you have a full-screen view of the route, with timely directions to help you drive to your destination. The UI for navigation is pretty good, but challenges occur if your smartphone switches to another app while using Google Maps, such as receiving a phone call. What follows is a failure to appreciate a common use case for end-users:
- When switched to being a secondary app operating on your phone, Google Maps stays active and shrinks to a small window. This allows users to still see the map details, albeit with much less resolution.
- When your call ends, Google Maps remains in its shrunken state … and this can be a problem if someone is relying on the app for navigation. This is a failure of the developers to understand how their application gets used in real life.
- You can now tap the shrunken Google Maps window, and it will return to the main app focus … but it still doesn’t return to full screen! For reasons unclear to me, the Android (also Google) developers decided that the app should present as a marginally larger shrunken window when the user taps the shrunken window.
- Near the top right corner of the marginally larger shrunken Google Maps window is a small icon to expand the full-screen window. This icon is so small it is difficult to tap without affording it a significant amount of attention. This exercise is made worse because the “expand” icon is immediately beside the “X” icon to close the window, which you don’t want to tap because it closes the navigation session.
- Essentially the UI design of Google Maps requires undue attention from its users at the worst possible time (when driving), which is potentially dangerous.
In fairness to Google, if you double-tap the shrunken Google Maps window, which is actually an Android feature, it will go to full size, so you don’t technically need to tap the very small icon to expand the Google Maps window (in which case why did they even provide the very small expand window icon?). However, most of us become accustomed to a single tap to accomplish our main objective in a modern app. By presenting the marginally larger shrunken window, Google is confusing many people into clicking the “expand” icon. While this is a feature built into the Android OS, the Google Maps developers were lazy and took the easy way out rather than developing their own Google Maps specific extension to manage this situation. In either case, more attention is required of the user than is necessary, and this presumably occurs mostly when people are driving. By extension, taking away people’s attention while driving can create dangerous situations and statistically, it is likely that this ‘feature’ has caused accidents that were entirely avoidable if the developers had fully grasped how end-users use the application.
Having developed software myself, I can assure you that I have made many mistakes. I have developed dozens of UIs, none of them especially good. After providing applications to clients for many years I can attest that developing a strong UI goes beyond being a good coder. After all, even a subtle misunderstanding of a common use case for your software application can have real-world consequences that, in the worst cases, can impact your users’ safety, the safety of their equipment and assets, or the effectiveness of their work.
In fact, we should be focusing on the User Experience (UX), of which the UI is one component, but which also includes workflows, efficiency, data visualization, and even safety considerations. In short, an ideal process to develop an application should always include a professional UX designer who would consider the entire UX. This exercise should also include consultation with all the stakeholders, especially the end-users operating the application. The application always needs to meet the requirements, but it should also be something the end-users can intuitively use to make it easier for them to do their jobs.