Hence, I am taking a break from my random stray thoughts for a change and writing this memo/mini-manifesto to myself to remind myself of things I (and my team) need to keep in mind while doing what we do.
We spend countless hours designing application logic, we spend months debugging rules and flows, we put together over five hundred tables to store our data in the blink of an eye, yet we devoted mere minutes to the user interface. Yes, healthcare software is complex and cumbersome and never complete, but that does not mean we can’t do what Apple and Intuit do for their customers. I had the chance to read two UI-centric articles today – on healthcare software (specifically openvista), and on the usage of subtle elements in web design, and I realized that there are two simple reasons we are not presentation-focused – we assume the users will live with whatever we give them, and we are too obsessed with whats under the hood.
Maybe I am the only one, but to me, software design is an abstract art – there are things that are visible and evident if you know where to look, but there is seldom a lot more under that iceberg that most people will ignore. The artist chooses which parts he wants to highlight and which part he wants to obscure; unfortunately most artists will want to simply show every stroke of the still-life and be done with it. If our software affects thousands of users and patients, then why do we overly focus on the data and totally ignore presentation till the last minute. Why are social networks and Web 2.0 sites so far ahead of us in understanding usability issues.
Here a few ideas that I think would help me and the rest of my group:
Minimalism – Apple and Google epitomize this in every product they design. Of course their products are somewhat simplistic in purpose and their product silos are very well defined, but what we fail to appreciate is that they create a layer of abstraction that completely encapsulates their users’ needs without exposing the underlying alchemy. An illustration that I saw a few months ago highlights this best:
While it is near impossible to be minimalistic and yet present every piece of relevant information, there can be a trade-off which lets users to progressively see more data. The key to achieving this is prioritizing information, and building interfaces around the actions that the users would perform 80% of the time. Or maybe we can take a different route – minimalize every snippet of data and present these pieces as part of a bigger picture. For instance, we don’t necessarily need to show the patient’s financial/insurance information unless there is any abnormal event evident in the data.
Aggregation – Intuit is the wizard of aggregation. As an avid user of both Quicken and Quickbooks, I can attest to their depth of understanding of use cases and data aggregation. They use graphs, and then they use graphs; your net worth, your cash flow trends, your spending breakdown – every meaningful micro and macro metric is right there. There is no need to know which report to open, no need to read the manual to figure out what the next step is, and no need to wait guess how to navigate.
Data aggregation is an intensive process, but not difficult. What is difficult is putting that data through a set of filters and rules engines that can rate and parse out the most important pieces in real-time. We are already doing a good deal of aggregation within our cached objects, but unfortunately we are not persisting real-time aggregated information, which forces us to constrain ourselves to re-think every data element we want to include in our interfaces.
Personalization – The same login each time, the same set of information in the home screen, the same boring sequence of actions everyday. The most personalization that I have seen is the option to choose a custom set of tabs based on the roles defined for the user in some table. If an enterprise system is part of everyday business, it will become boring and monotonous after a while. Personalization to me is not just allowing the users to modify the organization and visibility of data, but instead to make the system feel a little more alive. So I have seldom asked myself, what could make a user smile every morning when they first login – a randomized salutation, a joke of the day, a funny logo, some random quote, highlighting a metric they are strong at, introducing a new competitive metric, or any other surprise. Clinicians are serious people, and they don’t always like automation; but from experience I have seen that when there is even just a morsel of “personalization”, their attitude towards IT completely changes.
Inclusivism – Like most healthcare software developers, we are the pros at making lists. A list for medications, a list for allergies, a list of past problems, a list of claims, a list for patient payments, and on and on. The lists are endless, but there is an innate problem with our lists – they give only partial information; is there is an unwritten rule out there which says every item in a list must lead to another interface which presents the details. I think we need to make more of our lists progressive, and not have the users to open additional interfaces. Additionally, our lists are mostly static and we hardly have action options within the lists, an “open”, “view” or “select” is more than seldom our easy way out. And the systems where lists actually include actions, tend to standardize the action directives. Take a list of medications a patient is on – the list would typically show the name of the med, the date prescribed and the dosage. What if the doctor had written a note about it, shouldn’t we want to include that data into the list itself; what if one of the meds was known to be a high-risk med with potential interactions, shouldn’t we indicate that in the list itself provide a link to details about such interactions; what if one of the meds is know to have a mild allergic reaction, shouldn’t it highlight this information and provide a quick way to indicate any new reactions. The examples can be countless, and the possibilities can be exponentially large, but it is important that we start thinking about semantic relationships when we are creating lists, rather than treat them as simply sets of discrete data.
Dashboarding – In the last 2-3 years, the whole world has gone gaga over business intelligence and executive dashboards. I reject the idea that a dashboard has to be limited to viewing data, it should instead be a combination – of data and paths to actions in one place. This usually seems very difficult to do because a comprehensive snapshot of data cannot necessarily be created in real-time due to the scale of data being generated by users. But there are ways are around it – possibly through a combination of aggressive caching and real-time warehousing. More importantly, the dashboard cannot be fixed and cannot be completely dynamic, it has to be a combination of both. If a dashboard is designed to be fixed, then there will be a lot of wasted real-estate, and if it is totally dynamic there is a good chance that less important data will beat the more important data to the front of the queue.
Extreme Linkage – Facebook knows how to link information about a user – from the profile, to comments, to links, to applications. Take a look at the very simple event description page from FB below:
Notice the number of hyperlinks hiding in this page disguised as regular information. Now imagine the same interface as designed by a medical software developer – there would be at least six separate buttons, four highlighted areas, a place to display error messages, the “Displaying the only photo” section would be a “Open Photos Page”, and the “Maybe Attending” section would be button redirecting to a grid of attendees with a colored status in the first column. Although the standards and medical thesauri are not yet at the stage where semantic descriptors can be associated with data elements easily, there are enough relationships between data that we internally describe anyway, the key is to harness those to link the pieces of the puzzle more accurately. So lets take a page from facebook, and link information more efficiently where users can find it without searching for that one button hidden beneath the clutter.
After all, the product is nothing without the marketing, and in that spirit, I will take it upon myself to pay that extra bit of attention to the user-interface design and take a respite from over-working the backend of applications that I design. Fini.
As a developer, I have had my design and interface proposals, right or wrong, thrown out because the management and/or the client want a certain interface.
I do refer to best practice and to various usablility studies when I push back, but none of this matters when the paying client/management tell you to “do it this way”.
On the specific point about links and usability, one of the problems that I have found is that whether they open popup windows or replace the main page, users are disconcerted. This particularly true when they have 15″ screens and the popups ‘disappear’ behind the main page.
That is, there remains a fundamental problem about the display of large amounts of data regardless of how it is ‘split up’.
Thanks Leo. I agree with ur point about popup windows. I have myself faced this problem many times, but there are ways around it – specifically, using ajax popups and using modal browser popups.
On another note, most end users are biased by what they are used to; and I find that when you do something that has “most” of the things they want and you add some of your own magic to it, they will be open to your ideas next time on.