image I’ll never forget my first NAV project. I was helping a customer migrate data from their old COBOL-based application, and was spending most of my time with a mid-aged lady who at first fascinated me with her mastery of their old application.

That was until I found out she actually had no clue whatsoever about what she was really doing.

What I perceived as her masterful dexterity with a character-based user interface of a DOS application, in fact was total cluelessness about both her business and her software.

Since it was a COBOL application with an arcane data format, we decided not to mess with direct data access; instead we loaded an LPT-to-TXT redirection, so we can “print” the reports directly into text files.

- “I need customer list with their open balances” – I said.

She went Ctrl+P, 5, L, Tab, Tab, Enter, R, Tab, Enter, R, Shift+A, Tab, Tab, Tab, Enter, Enter, all of these in under a second, and there it was, my customer list.

(I wished I could have been able to produce the same in NAV in the same amount of time.)

- “Now I need the same but for vendors.”

There she was at the keyboard again, and after a lightning-fast series of obscure shortcuts I’ve got my vendors out.

- “Can I now get only those customers who had open balance on May 1st?”

- “Uh, what?” – she gave me a 404 Not Found stare.

- “I need you to filter those customers with open balance on May 1st.”

- “How do I do that?”

- “There is a screen with filter options. Instead of just accepting the defaults, you type the date, and set the filter on Balance field.” – I saw that screen flash for a nanosecond during her prestissimo assai performance a minute ago.

- “Can I really do that?” – she asked, as if she discovered she could do psychokinesis.

- “Well, yes. Start the export procedure, and then stop for that screen, fill in the filters, and complete it.”

Ctrl+P, 5, L, Tab, Tab, Enter, R, Tab, Enter, R, Shift+A, Tab, Tab, Tab, Enter, Enter… and before I got a chance to yell “STOP!” the customer list was already exported, with no filters applied—of course.

- “Did I miss it?” – she asked.

Of course you did. (I kept it for myself, though.)

- “Just before you press your final series of Enters, you need to stop, fill-in the filters, and then get me the list.”

- “Aha.” – as if she understood.

Again she kicked off here keystroke recital, and once again she missed the filters and got the whole list out.

- “Sorry, I’ve missed it again.”

After a few retries, we managed to stop at the filter screen, and I showed her which filter fields she should fill in. And so she did.

- “Now what?” – she asked.

- “Now you complete the export.”

- “But how?”

- “How do you mean how?”

- “I mean, how do I complete the export from this point?”

- “I suppose you position the selection on the Print text over here, and press Enter.” – I guessed.

- “You know this application well, don’t you?” – she tried to save the situation.

At this point I got it. She could get it through the procedure only if she could follow her memorized sequence of keystrokes. If you did anything to interrupt her, she would forget the sequence, and the only way for her to be able to complete it would be to repeat it from the very beginning.

She actually had no clue what she was doing in her software, she was merely following a cookbook!

And in fact, she had it—her cookbook—right  there, hand-written on a piece of paper:

  • Creating an invoice: Ctrl+R, Tab, Enter, N, Enter
  • Posting an invoice: Ctrl+R, Tab, Tab, Enter, K, Enter
  • Printing an invoice: Shift+R, Enter, I, Enter, Enter
  • Etc.

I asked her about these recipes. And she explained. Basically, the user interface was so complex, truly unmanageable to her, so she wrote down everything she had to do, so she could complete her job faster. Now she could be fast, and complete her tasks quickly, because even if she doesn’t know by heart what keys she needs to press to accomplish a task, she could always look it up in the list.

Oh my.

Basically, instead of performing “Invoices, Menu, Create New, Ok” she did her Ctrl+R, Tab, Enter, N, Enter cipher. What each of these keystrokes really did specifically? She didn’t know. And she didn’t care.

In seven or so years that she was using the system, she was a slave of the application: she never understood it really, she merely did a specific abracadabra to make this computer thing do this or that.

And the blame most certainly wasn’t only with her. The application indeed was complicated: a labyrinth of on-screen options, often lacking some systematic or even logical arrangement, and without any consistency; finding anything there by knowing the function, and not knowing what exactly to press, would simply take too long, hamper productivity and prevent the user from completing all the work in time. It was much easier to simply solve the puzzle once, write down the solution—the recipe—and then follow the recipe every time. The good recipes were passed forward around the company, from department to department, from user to user, so not only people started forgetting about how they initially came up with these recipes, there were people using them, but not knowing anything at all what in fact they did behind. “I just need to press this to do that, over and finished.”

This is one of the problems that is completely taken care of in RoleTailored user experience of Microsoft Dynamics NAV 2009: it is very easy for users to truly master the application. In fact, the RoleTailored user interface is so simple and intuitive that users understand it the moment they see it; they don’t need to try hard (and then fail).

There is absolutely no doubt that of all topics you’d like to read on this blog, Microsoft Dynamics NAV 2009 is on the top of the list (according to the poll), so I’ll write about RoleTailored user experience and productivity a lot. Until then, click here to read one of my previous posts on the topic.