Cookbook user experience, anyone?

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.


Vjeko has been writing code for living since 1995, and he has shared his knowledge and experience in presentations, articles, blogs, and elsewhere since 2002. Hopelessly curious, passionate about technology, avid language learner no matter human or computer.

This Post Has 7 Comments

  1. Vibor (

    Hey Vjeko, this is really interesting article. But now when you are mentioning RoleTailored UX and “keyboarding” – what is your view on our current support for shortcuts and keyboarding features in RoleTailored Client – talking about MS Dynamics NAV 2009. I’d be really interested to hear – also feel free to little “r” me if you would like to go deeper into this topic.

    Besides that, I really liked your “cookbook” experience – It makes me wonder should we go and try to create some kind of text-based UI/UX instead sticking with GUI, and not it’s not a joke or provocation… for some specific tasks, that actually might have sense!

  2. Vjekoslav Babic

    Well, keyboard shortcuts are a great thing – they save you time, and you are definitely faster keying shortcuts than moving the mouse and clicking around – provided you know the shortcuts.
    I myself have relied on shortcuts a lot in previous versions of NAV. Now I am somewhat pissed off, but getting along gradually, with the new shortcuts in NAV 2009 – because they are all changed! (I still don’t get why non-standard shortcuts for operations such as Show Statistics, or Post, had to be changed).
    Shortcuts are great to do things faster. But learning shortcuts can cost you understanding the application over time–as it actually happened to this lady (and not only her, I’ve seen similar behavior with other users, but this specific occasion was extreme, and I didn’t even overdo with this description). The moment you start remembering that you are doing F12, Ctrl+2, Down, Right, 4 times Down, Enter, F5, PgDn, Enter, F11 and start forgetting that you are actually doing Sales, Order Processing, Orders, showing a list of orders and picking one, then posting it, is the moment the system became the owner of the process, and you became a slave. With NAV it is difficult, because although you can do everything using keyboard, the UI is intuitive, but with some other systems I’ve seen there is no intuition you can apply, and users just start memorizing shortcuts.
    It reminds me of the time when I first saw a listing of a computer program. I saw it as some arcane hocus-pocus that wakes computer from some idle state and makes it perform some pre-defined complex task; all those code lines represented some random pattern which is then recognized by the machine (okay, I was an 8 year old kid at the time). But if you approach a programming language in this way, you can memorize a listing and always have computer perform some task for you, but that specific task, that task only, and always that task, if you wanted to have it do something else, you would just be able to stand clueless. So – the computer owns you, not vice versa.
    But if you turn it around, and you understand what code means, then you can make the computer do whatever you want, not only just those things that you memorized.
    Apply this to shortcuts – by having a UI which is complex, and forces you to memorize a sequence of shortcuts, rather than understanding what you are really doing, you force users to willingly not understand the system, which means they’ll ever only be able to do the tasks that, well, the system “programmed” them to do, i.e. they will not own the system, but the system will own them.
    Ohmy, what a philosophy 🙂
    Anyway, I prefer the way user interfaces look today, than back then years or decades ago. RoleTailored UI (but also the previous NAV UI, but to a lesser extent) helps you understand the application and the process, and doesn’t have you memorize some obscure shortcuts.

  3. Erik Ernst

    Hehe, great article! It reminds me of my first job (before getting into IT, I was actually a trainee within accounting and sales). Whenever I started learning a new area my supervisor gave me a page from her “System Cookbook”.
    The last time I heard about it was a few years ago, when one of my friends told me about her first contact with SAP. She was used to work with Windows based system, where she could use her intelligence to find out how the system worked. But according to her, that was completely impossible with a system like her SAP. All she had to do was to remember her cookbook, with all the “codes” on how to enter a purchase order etc.
    So hurray for the great UI of NAV. Remember Navision’s old slogan: “The beauty of simplicity!” (10-15 years ago)? That slogan could really be used today also.
    My only fear about NAV 2009 is that each user can change their individual UI so much that the users in support will a lot more to do in the future, when the users are trying to explain how their screen looks! 😉

  4. Dave Roys

    Hi Vjeko, fantastic post. Well written and very funny. I’ve definitely experienced a lot of this when training users and doing systems analysis – it’s definitely a warning when people distill a thought process into such a stream of key presses that get executed on auto pilot. It’s just a shame we can’t create macros in NAV that would allow the computer to remember the process for us. Maybe one day this feature will come.

  5. Christina Belding

    Vjeko-this was great post (and had several of us in the office absolutely howling because we could totally relate)!!

    I just love it when I come in contact with users who have adopted the mentality ‘my job doesn’t require me to think…like ever’. These poor souls actually forget that they even know how to think because they aren’t required to, because ‘that’s what the system is for’.

    Seems that many times we over-engineer applications to accommodate for the lower end user when it might be better to teach them how to do something a little more challenging. (It’s the old, “ignorance is expensive”).

    Thanks so much for your fantastic writing!!!

  6. Vjekoslav Babic

    Christina: it’s almost like that old wisdom: “Give a man a fish; feed him for a day. Teach him to fish; feed him for a lifetime”. Overengineering is bad because it only achieves limited benefits, and causes trouble down the road (support, upgrade…)

Leave a Reply