Monday Jul 09, 2012

Computer Says No: Mobile Apps Connectivity Messages

Sharing some insight into connectivity messages for mobile applications. Based on some recent ethnography done by myself, and prompted by a real business case, I would recommend a message that:


  • In plain language, briefly and directly tells the user what is wrong and why. Something like: Cannot connect because of a network problem.
  • Affords the user a means to retry connecting (or attempts automatically). Mobile context of use means users anticipate possible interruptability and disruption of task, so they will try again as an effective course of action.
  • Tells the user when connection is re-established, and off they go.
  • Saves any work already done, implicitly. (Bonus points on the ADF critical task setting scale for that one.)

The following images showing my experience while reading ADF-EMG Google Groups notification my (Android ICS) Samsung Galaxy S2 during a loss of Wi-Fi give you a good idea of a suitable kind of messaging user experience (UX) for mobile apps in this kind of situation.

Connection lost message with retry button

Inline connection lost message with Retry button

Connection re-established message

Connection re-established toaster message

The UX possible is dependent on device and platform features, sure, so remember to integrate with the device capability (see point 10 of this great article on mobile design by Brent White and Lynn Rampoldi-Hnilo) but taking these considerations into account is far superior to a context-free dumbed down common error message repurposed from the desktop mentality about the connection to the server being lost, so just "Click OK" or "Contact your sysadmin".

Monday Apr 23, 2012

Customizing FND Message Numbers in Oracle Fusion Applications: Manage Messages UI and UX Stakeholders

I am often asked about removing the numbers that are shown with error messages in Oracle Fusion Applications. In fact, this can be done easily using the Manage Messages user interface (UI) Message Number field. A Manage Messages task flow is integrated into the Oracle Fusion Functional Setup Manager, and access to this is documented in the Oracle Fusion Applications Developer's Guide 11g.

Manage Messages UI in Oracle Fusion Applications

Manage Messages UI in Oracle Fusion Applications

But before you do, let’s explore what these numbers are for, and if and when you might want to remove then, and what the process should be.

Message Numbers Explained

These message numbers are assigned to error messages and warning messages stored in the FND messages table. Each product has a message number range assigned and the number itself takes the format of a product short code followed by a unique number. For example:

The message number in Oracle Fusion Applications FND messages is shown after the message

Message number in Oracle Fusion Applications FND message shown after the message text

For customer extensions too, a reserved number range for FND messages is provided: 10,000,000 to 10,999,999.

Unlike the Oracle E-Business Suite (EBS) FND messages, these numbers appear after the summary message and not before. There is no Oracle Fusion Applications user preference to turn such numbers on or off or to hide or disclose them when a message is shown. They’re either there or they’re not. The numbers can also be on FND messages used for warnings at times.

Oracle Fusion Applications also uses ADF messages stored in resource bundles, and not just the FND messages ones. The ADF error messages are usually provided for native validation (such as for required fields, validators and converters) or navigation between ADF components. These types of messages do not have the numbers. Neither do any of the so-called common FND messages.

The Oracle Fusion Applications Developer's Guide 11g is your friend for understanding the message types.

How Are FND Message Numbers Used?


The numbers are used as reference indicators for Oracle Support to look up knowledge base information about reported errors or incidents. Because the message numbers are the same regardless of the language translation means that Oracle Support teams do not actually need to have a translation of the message text itself and can cross-reference resolutions from English if necessary.

The numbers are also used by AppsLogger when an incident is created and are included in the text output for logs.

Generally, Applications User Experience (UX) research shows that only internal help desk personnel or other enterprise support representatives want to report issues or message numbers to Oracle Support. Help desk operators do not like apps end users searching for their own solutions externally (apps user profiles are different to DB admins who might Google ORA numbers, for example). Instead, the help desk prefers their users to report issues to the help desk directly (or in the case of app failure by way of an implicit or explictly-raised incident). Frankly, even when end users do look up these numbers on the Internet (assuming they can), there is little they can do with the information anyway.

All said, you may find that some end users are irritated by these numbers and can consider removing the numbers on user experience (UX) grounds.

Which Messages Numbers Could Be Removed?


When might you want to remove the FND message numbers? In my UX opinion, the following types of FND messages are worth considering for customization in this regard:

  • Messages for simple client-side, individual ADF component validations.
  • Messages used for navigation or other UI rules.
  • Warning messages with questions that require confirmation by users before proceeding.
  • Common messages created in a product area that might or might not raise an incident.

I recommend that you never remove a number from an error message, warning or information message that is used for an application failure, or for an incident or log creation (AppsLogger won’t work unless there is a unique number there). Complex business rule messages, at EO level, for example, are also best left with message numbers.

You can use these guidelines when creating new FND messages too. If the message number is not in the FND message table, the message will still display. The number does not have any impact on the rendering.

Removing Numbers: Who Needs To Be Involved?


Successful implementations and customizations require the engagement of end users but also other stakeholders in a requirements and change management process to agree what the user experience will be.

So, if you are considering removing these message numbers, then you need to understand the context of use and identify appropriate stakeholders. These stakeholders may be internal and external to your organization. I suggest the following stakeholders for deciding about message numbers: end users, development teams or consultants who know about incidents and validation, internal help desks, internal training groups, Oracle Support, or other support representatives that you use.

After that, then you can make decisions about numbers changes. Do not just remove the message numbers without stakeholders, or without gathering your use case, assessing the real UX impact of their presence (users just don’t like ‘em or are they actually consuming time dealing with complaints about them and adding no task completion value?), and determining which numbers are really important to your help desk, support representatives and also to Oracle Support.

By the way, FND messages are seed data so changes are patch and upgrade survivable just like in Oracle EBS.

Questions or UX advice needed on any of this? Find them comments.

Tuesday Sep 27, 2011

How to Write Effective Application Error Messages for Users

Whenever I’m asked by technical writers how they should write a “frontend” or a “backend” error message I’m reminded of the old Kerryman joke with the “I wouldn't start from here” punchline (this joke may have been localized for your region).

Starting the error message design process with a frontend or backend categorization is not useful from a user experience perspective. Users don't care for such a distinction. All users care about is how effectively the application messages communicate with users as they do their work!

It’s tough deciding on what a “frontend” error message is, anyway. Is it a client-side validation concept? Maybe they're ADF Faces validator and converter messages?

Hardly, as these error message are visually indistinguishable from other ADF af:messages validation on editable components that require a push of data to the server for validation, and can coded as business rule exceptions deep down in the model layer.

These error messages can also be shown on ADF page components that are then outlined in red, along with a note window with the message and navigation buttons to move between components showing exceptions.

These messages then roll up to a page-level list that includes a hyperlink to the name of the component if the user chooses to address all the component-level errors together. So, that consideration doesn't work either.

ADF messages could also be page-level popups, or inline on the page, and used for messages that don't reference editable fields at all, for complex business rule validation or for UI rules such as unsaved changes, and so on.

And then “backend” error messages, what are they, exactly? Are they all diagnostic logs triggered by the supportability framework when an incident is raised? They could be text-based output logs for sure, but they could be presented in custom ADF message dialogs too. These messages could also use user interfaces (UIs) designed by product teams for third-party application or web services integrations, for errors (usually from the FND messages dictionary) thrown by the execution of PL/SQL or other programs, and so on.

So, this frontend versus backend categorization is problematic as a decision-making concept. Instead, knowing why the message appears (the validation or UI rules fired up in response to user or application activity), and what the raising technology offers in terms of visual display and output, lets you know how to phrase the error message accordingly.

For example:


  • A decision about who (or what) was acting, and who needs to act in response, lets the writer make a decision about the use of active or passive voice in the message text.
  • Knowing if the exception is from an ADF component validation means writers don't need to tell the user which UI component has an issue or how to get there. The component is highlighted in red and the message is presented beside it along with navigation buttons to other components with errors. The name of the component is shown in the page-level list as a clickable link.


  • If it is page-level business rule message dialog not using component-level validation, then the writer may need to explicitly tell the user which components need redress, where, and how.
  • If the message is in a long text output format, writers will need to compose the text in a way that allows for easy online reading, and so on.

Knowing this information also enables writers to discover if ADF Faces provides a message natively, out of the box (navigation, validators, converters, missing values, and so on), saving the writing of a new one.

For a more useful starting point consider to a superior error messaging UX, maybe answer the following questions and then apply error message text composition basics about writing cause and action using the appropriate style, grammar and terminology:


  • Is the exception the result of validating ADF editable components on a page?
  • Is the exception the result a navigation action between ADF pages?
  • Is the exception by the result of validating business rules at a page-or task-level action on ADF pages?
  • Is the exception the result of a process? Does the result of that process need to be in a printable or readable output file and/or need to be indicated elsewhere as a message dialog or even a notification?
  • Is the exception the result of a third-party application or web service integration that requires a custom designed UI?
  • Who or what is acting to make this message appear, and who or what needs to act in response, and how?

Very likely no one person in the development team will know all the answers, so writers and developers must work collaboratively to find out the answers before the message text is written.

Wednesday Jun 22, 2011

Brighton Rocks: UA Europe 2011

User Assistance Europe 2011 was held in Brighton, UK. Having seen Quadrophenia a dozen times, I just had to go along (OK, I wanted to talk about messages in enterprise applications). Sadly, it rained a lot, though that was still eminently more tolerable than being stuck home in Dublin during Bloomsday. So, here are my somewhat selective highlights and observations from the conference, massively skewed towards my own interests, as usual.

Enjoyed Leah Guren's (Cow TC) great start ‘keynote’ on the Cultural Dimensions of Software Help Usage. Starting out by revisiting Hofstede's and Hall's work on culture (how many times I have done this for Multilingual magazine?) and then Neilsen’s findings on age as an indicator of performance, Leah showed how it is the expertise of the user that user assistance (UA) needs to be designed for (especially for high-end users), with some considerations made for age, while the gender and culture of users are not major factors. Help also needs to be contextual and concise, embedded close to the action. That users are saying things like “If I want help on Office, I go to Google ” isn't all that profound at this stage, but it is always worth reiterating how search can be optimized to return better results for users. Interestingly, regardless of user education level, the issue of information quality--hinging on the lynchpin of terminology reflecting that of the user--is critical. Major takeaway for me there.

Matthew Ellison’s sessions on embedded help and demos were also impressive. Embedded help that is concise and contextual is definitely a powerful UX enabler, and I’m pleased to say that in Oracle Fusion Applications we have embraced the concept fully.

Help note on editable field, activated by user focus.

Matthew also mentioned in his session about successful software demos that the principle of modality with demos is a must. Look no further than Oracle User Productivity Kit demos See It!, Try It!, Know It, and Do It! modes, for example.

Oracle UPK Player Try It! Mode.

I also found some key takeaways in the presentation by Marie-Louise Flacke on notes and warnings. Here, legal considerations seemed to take precedence over providing any real information to users. I was delighted when Marie-Louise called out the Oracle JDeveloper documentation as an exemplar of how to use notes and instructions instead of trying to scare the bejaysus out of people and not providing them with any real information they’d find useful instead.

My own session on designing messages for enterprise applications was well attended. Knowing your user profiles (remember user expertise is the king maker for UA so write for each audience involved), how users really work, the required application business and UI rules, what the application technology exception handling framework does, and how messages integrate with the enterprise help desk and support policies will take you much further than relying solely on the guideline of "writing messages in plain language".

Leverage your message structure for all audiences, remembering tokens and context too.

Messages are customer support, so integrate them into the work environment and help desk policy.

And, remember the value in warnings and confirmation messages too, and how you can use them smartly. Messages are not just about errors.

Warnings and confirmation messages offer powerful user assistance, too.

I hope y’all got something from my presentation and from my answers to questions afterwards.

Ellis Pratt (Cherryleaf, a technical authoring company in the UK) stole the show with his presentation on applying game theory to software UA, using plenty of colorful, relevant examples (check out the Atlassian and DropBox approaches, for example), and striking just the right balance between theory and practice. Completely agree that the approach to take here is not to make UA itself a game, but to invoke UA as part of a bigger game dynamic (time-to-task completion, personal and communal goals, personal achievement and status, and so on). Sure there are gotchas and limitations to gamification, and we need to do more research. However, we'll hear a lot more about this subject in coming years, particularly in the enterprise space. I hope.

I also heard good things about the different sessions about DITA usage (including one by Sonja Fuga that clearly opens the door for major innovation in the community content space using WordPress), the progressive disclosure of information (Cerys Willoughby), an overview of controlled language (or "information quality", as I like to position it) solutions and rationale by Dave Gash, and others.

I also spent time chatting with Mike Hamilton of MadCap Software, who showed me a cool demo of their Flare product, and the Lingo translation solution. I liked the idea of their licensing model for workers-on-the-go; that’s smart UX-awareness in itself. Also chatted with Julian Murfitt of Mekon about uptake of DITA in the enterprise space.

In all, it's worth attending UA Europe. I was surprised, however, not to see conference topics about mobile UA, community conversation and content, and search in its own right. These are unstoppable forces now, and the latter is pretty central to providing assistance now to all but the most irredentist of hard-copy fetishists or advanced technical or functional users working away on the back end of applications and systems. Only saw one iPad too (says the guy who carries three laptops). Tweeting during the conference was pretty much nonexistent during the event, so no community energy there. Perhaps all this can be addressed next year. I would love to see the next UA Europe event come to Dublin (despite Bloomsday, it's not a bad place place, really) now that hotels are so cheap and all.

So, what is my overall impression of the state of user assistance in Europe? Clearly, there are still many people in the industry who feel there is something broken with the traditional forms of user assistance (particularly printed doc) and something needs to be done about it. I would suggest they move on and try and embrace change, instead.

Many others see new possibilities, offered by UX and technology, as well as the reality of online user behavior in an increasingly connected world and that is encouraging. Such thought leaders need to be listened to. As Ellis Pratt of Cherryleaf says in his great book, Trends in Technical Communication - Rethinking Help: “To stay relevant means taking a new perspective on the role (of technical writer), and delivering “products” over and above the traditional manual and online Help file... there are a number of new trends in this field - some complementary, some conflicting. Whatever trends emerge as the norm, it’s likely the status quo will change.” It already has, IMO.

I hear similar debates in the professional translation world about the onset of translation crowd sourcing (the Facebook model) and machine translation (trust me, that battle is over). Neither of these initiatives has put anyone out of a job and probably won't, though the nature of the work might change. If anything, such innovations have increased the overall need for professional translators as user expectations rise, new audiences emerge, and organizations need to collate and curate user-generated content, combining it with their own. Perhaps user assistance professionals can learn from other professions and grow accordingly.

Wednesday Mar 30, 2011

Apps-UX at the Aviva with OUG Ireland

I attended the Oracle User Group Ireland meet in Dublin today, invited by new OUG UK (and Ireland) chair  Debra Lilley. There was a jam-packed agenda with lots to interest the 200 attendees made up of Oracle partners, users, developers, and others.

aviva.jpg

Some Aviva attendees polishing their pitch.

I was particularly interested in the big picture-setting keyword by Oracle's Ireland country manager Paul O'Riordan (who had very positive things to say about Oracle apps UX too), and of course the sessions on applications, especially the demo of Oracle Fusion Applications that I knew Debra was going to give (Debra is a Fusion Apps UX Advocate). I was on hand to chat with attendees about how the Oracle Applications User Experience team (Apps-UX) team goes about its work. You can read more about that on the usableapps website. Suffice to say that Liam Nolan (apps development director in Ireland) did a smashing job talking about all the apps, how apps customers should deal with upgrade and maintenance issues, and introducing Oracle Fusion Applications.

Debra handled the Fusion Apps demo like a Eurovision winner - with great enthusiasm and a punchy delivery (no miming was allowed), really getting that UX message across. Afterwards, some of the attendees were interested in the UX process and what it meant for them as customers and partners. Design patterns were a hot topic, there was good insight into natural user interfaces (iPad, basically), and surprise, surprise, error messages were mentioned as something customers could use guidance on (they picked the right guy to turn up, then). Having Grant Ronald from ADF Product Management there helped complete the design to realization picture. In all, an accessible, value-add event with plenty of opportunity to network with smart people, acquire some new skills, share knowledge, and learn from the experience of others. Watch out for the next one in Ireland as it is well worth going to. How super to see the Irish flying the flag for Oracle in Europe, too. We can do it, y'know. Hashtag was #oug_ire11.

Wednesday Feb 09, 2011

User Experience Guidance for Developers: Anti-Patterns

Picked this up from a recent Dublin Google Technology User Group meeting: Android App Mistakes: Avoiding the Anti-Patterns by Mark Murphy of CommonsWare. Interesting approach of "anti-patterns" aimed at mobile developers (in this case Android), looking at the best way to use code and what's in the SDK while combining it with UX guidance (the premise being the developer does the lot).

anti-patterns message about forcing wrong UI

Interestingly, the idea came through that developers need to stop trying to make one O/S behave like another--on UX grounds. Also, pretty clear that a web-based paradigm is being promoting for Android (translators tell me that translating an Android app reminded them of translating web pages, too). Haven't see the "anti"-approach before, developer cookbooks, and design patterns, sure. Check out the slideshare presentation.

Sunday Jan 30, 2011

Warnings When Undo Isn't Possible

Enjoyed this post Never Use a Warning When you Mean Undo  by Aza Raskin. It makes sense never to warn users if an undo option is possible. The examples given are from the web space. Here's the conclusion:

Warnings cause us to lose our work, to mistrust our computers, and to blame ourselves. A simple but foolproof design methodology solves the problem: "Never use a warning when you mean undo." And when a user is deleting their work, you always mean undo.

However, in enterprise apps you may find that an undo option isn't technically possible or desirable. Objects may be shared with other users or part of a flow elsewhere, for example. Undoing an action on an object committed to the database (a rollback I guess), as opposed to just being cached or saved, or on an object that has become locked by another process isn't feasible. Plus, what might happen to a modified object when it moves downstream in the process isn't always obvious. So, the implications of delete (and other) actions need to be clearly communicated to users in advance. So, warnings are important in the enterprise space. Data has a very high value, and users can perform a wide variety of actions that may risk that data, not always within the application itself (at browser level, for example). That said, throwing warnings all over the place when an undo option is possible is annoying. Instead, treat warnings with respect. When there is no undo option possible, use warning messages to communicate potentially dangerous or irrecoverable actions or the downstream consequences of user actions on the process or task flow. Force the user to respond to a warning message by using a modal dialog with clearly labeled action buttons. Here's a couple of examples:

warning_records.png
warning_navigate2.png

But what about mobile apps? I don't recall seeing undo options in apps, which can be frustrating as objects can be easily deleted by an accidental finger gesture (as anyone who has accidentally removed an account from an app--or indeed at entire app--on an iPhone will tell you). Warnings are very important there too for irrecoverable actions.

android_mobile_warning.png

A great article that got me thinking. Let's see more articles like that. And let's not forget there's more types of messages than just error messages. User assistance and user experience professionals need to understand when best to use confirmation, information, and warning types too.

About

Oracle applications user experience (UX) assistance. UX and development outreach of all sorts to the apps community, helping to design and deliver usable apps.

Profile

Ultan Ó Broin. Director, Global Applications User Experience, Oracle Corporation. On Twitter: @ultan

See my other Oracle blog about product globalization too: Not Lost in Translation

Interests: User experience (UX), user centered design, design patterns, tailoring, BYOD, dev relations, language quality, mobile apps, Oracle FMW and ADF, and a lot more.

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today