Anti Patterns
A very common cliche is “what does not kill you makes you stronger”.
Today I was stung very badly financially by my banks website behaving in a very strange manner which nobody could have predicted, and it makes me wonder not only how many other IT applications are behaving in a random user unfriendly manner, but more to the point, is anything that I have written in SAP causing similar problems to the users in my organisation.
So, how can I turn this around? Often people use “anti-patterns” in training, often seeing something that is clearly wrong is a better way to steer people in the right direction than just showing them things that work well.
At the risk of using a blog to describe what I had for breakfast, I am using as an anti-pattern example what happened to me today AFTER breakfast. For the last ten years I have only had one bank account and used that to pay bills. Naturally on the web site the bank account to be used defaulted to the only possible entry. Last month I made the mistake of opening a savings account. You can’t use that to pay bills, nor would you want to, but that is the account that now defaults.
So, of we go, let us try to pay a bill. Let us say I have a bill from the ambulance service for taking me to the hospital to have my brain removed so I can write user interfaces.
You go into the option to pay a bill. The account defaults to the one that it is impossible to pay a bill from. You would not expect this. As it is an impossible choice you would not expect it to even be on the list, let alone default. So as you are not looking for such behaviour you don;t notice it, and proceed to enter the company you want to pay, the amount and some reference numbers.
You then proceed to submit this, and naturally since the wrong account was chosen you get an error message.
You are taken back to the screen where you can do a drop down on the account. There are two options, so you take the only one that will work i.e. the one that should have defaulted in the first place.
Oh dear! The amount and timing and reference details are left unchanged but the company to whom the money will be paid has changed. No-one in their right mind would expect this, so once again you don’t look to check. When you review the details you check the account it is going from, the amount, date and references, all looks good, you submit it and off goes the money to the wrong place.
Naturally, when I complain to the bank they say this is “working as designed” just like SAP do on the service marketplace when you try and notify them of a bug in standard SAP code. The second answer is that this is “user error” which of course it is, the problem is that the system guides you towards making errors rather than away from them. Then the bank tries to sell you a credit card, which thankfully the SAP service market place does not do.
Now, you might think nothing else could work as badly as what I have just described above, but thinking about it I can think of some standard SAP transactions which have behaved in odd manners.
It has been fixed now, but once upon a time fixed asset reports would only work if you put certain dates in the selection fields, but the fields did not default and you had to guess what the correct values were.
In MB51 lots of fields default using the PID mechanism, often you don’t want most of them and have to manually clear some values out.
Again fixed now, but when downloading to excel from SAP a pop-up box appeared with one radio button, saying “excel”.
In SE11 you cannot enter the enhancement category for a table or structure without first getting an error message saying you have not yet entered an enhancement category.
In the SCN as the “blog” is the first entry when making a post, most of the “hi gurus” people use this to post a question.
All of the above are minor annoyances rather than things that actually hurt you like the bank can, and as I said most of them in SAP get fixed eventually.
The question is, if I hate being on the receiving end, am I, as a developer, unwittingly doing the same to my users? I was happy to see that in ECC 6.0 the code inspector has a lot more checks on ergonomics, but how many people out there actually even run this check, let alone respond to it?
I recall many times, on drop downs for Z transactions, we used the standard search helps which let the user put in the standard SAP values for assorted fields, values which we did not use. It occurs to me this really needs to be looked at. If a value will result in any error, then why are we putting it on the list of possible entries? Often the answer is, although this is programatically possible, it is too much like effort, and after all does it matter? It matters to the users as can be seen above.
To sum up, whenever I encounter a problem like the one that stung me above, I wonder if I am equally guilty, and will query our key users / testers to see if they encounter similar problems in our system on a regular basis and have just learned to live with it.
If anyone else has any similar examples of badly behaving transactions in SAP, or usability lessons learnt they want to share, I am all ears.
Cheersy Cheers
Paul
P.S. I found another one today, on a website, but you could commit the same crime to your SAP users if you wanted, and maybe some developers do.
I was entering data for my German tax return into the website of a leading accounting company (one of the big four) and I had to enter various amounts relating to various receipts and expenses. The problem was I was in three countries during the year, and you can only have one default currency (naturally) so for half the amounts I had to change the currency from AUD to GBP.
If I was allowed to over-type the default AUD entry it would be take me three presses of the keyboard. However the only means of changing the currency ffrom the default is via drop down, from a list of every country in the world, so you need one mouse click and dozens of clicking on the down icon to select the one you want. And that was only getting from A to G, thank goodness I had not been working somewhere with a currency starting with Z.
Since the aim of the game is to let the user enter information as easily as posible you would want them to minimise the amount of key presses or mouse clicks, and this is the opposite of what is happening here. The simple solution is to allow direct entry as well as drop down, plus validation to make sure the value actual is a currency. To be fair to SAP, if this was an SAP search help I could use a personal value list of just my currencies, but even so overtyping would still be faster. Also you could have the system remember the last value entered via a PID.
So, after you create your SAP application, try the boring test of filling out your screen twenty times in a row, and see if any fields are harder to fill with data than others….
P.P.S. Today I found another application where you could only enter a value from a drop down of one million values, and direct entry was not allowed. this was on the SAP service marketplace, registering an object for modification.
31/05/2013 – Today I used SAP transaction ME22N and was horrified at the box that popped up after I added another line to the purchase order.
That is so wrong on so many levels. The message in the “old fashioned” transaction phased out in 2000 to make way for this “enjoy” transaction told you right away that the PO needed to be re-released. This box is TRYING to tell you the same thing, so why doesn’t it?
Instead it invites you to press a button to see what the message is, without making that fact obvious at all, where does it say “press this button to see the secret message I have described?”
If the text describes the options SAVE or PROCESS then there should be two buttons called SAVE and PROCESS.
This is like the old Microsoft thing “Do you want to CONTINUE or EXIT? followed by two buttons saying YES/NO”
I put it you, that the average user would see the SAVE button and press that and not care two hoots about anything else.
In effect the box above is saying “there is a warning message which you really need to see – do you want to (a) ignore it or (b) do some incomprehensible thing you do not understand?”
Am I being too harsh on said box? Is there any way anyone thinks a user could make sense of it?
Moreover have you seen a worse one in standard SAP? I am bursting to know? Have you written a worse one yourself? Even more troubling have I written a worse one? I hope not!
Also, in the many months since I originally wrote this blog, the bank still defaults the account to the one that cannot possibly work.
Hi Paul
I enjoyed this post. I subscribe to the point of view that as developers, we often take the easy way out, to the extent of subjecting the 'poor user' to the same negative design patterns that we ourselves have been subjected to in the past. Somehow we have to break out of the paradigm that the user interface and ergonomics has to be just 'good enough' (though in the short term this can be expensive).
In my SAP development team, there is increasing focus on how we can improve the usability of the standard SAP UI, how we can address this 'gap' between SAP business applications ('solutions which work') and the best applications that are commonly used on the web ('beautiful, elegant solutions which work').
I have to say I lifted these terms from the following video by Jesse James Garrett, "The Elements of User eXperience", which is the best thing I have ever seen on the design principles of the User Interface (though with a more general approach to just software):
http://playertv-octo.pad-playertv.brainsonic.com/web/index.php/player-preview-fdfbabcbe7bfed4d7c8a683f0711b58c-490-316.html
Cheers
Ged Hurst
My favourite is error messages that are presented as success messages.
Hi Paul,
I know you wrote this a LONG time ago. But I just read it, and I have to comment.
HAVE to.
This is a great blog. It works hard at making people like me step back a second and think about the application they are designing. I have lost count of the amount of "enhancements" I've done to remove messages. Even a lot of success messages.
Recently, I have been developing some RF screens. I have to think about what they are doing as the screens flow. My mind goes something like this "I'm standing in front of the box and scan it in. I want to create and print an RF label." Two hats, so separate out the two different functions as a developer. It makes sense because I would scan it. Get my HU number, and then tag. So now I think as the actual person. I have an RF gun. I need the HU I really don't care what HU. I want the HU only to slap on to the box. Ah so it's one screen - scan in the material/quantity - one screen. Stay on that screen and automatically print the HU label. I'll let you in on a fact, this was one of the many enhancements I had to do. The person scanning in and out materials just wants to do things quickly. So I have to really think about not just messages but how the screens will flow and what I can combine together.
Another side note - in my long reply. I have heard that normal ABAP programmers should not design Web screens. We don't have the knowledge to make them look nice and function easy. So.... it's about time we really start to look at these things.
This is an "Old" post. But still so very ture.
I enjoyed it,
Michelle
Every so often I feel the need to mention some wonderful experiences I have had online, just to remind myself never to inflict such things on my users.
Last week my wife and I were trying to book some theatre tickets on an Australian website and apart from the normal things like forcing you to enter an area code for a mobile phone number, my favourite bit was when you wanted to confirm the order and the screen went black apart from a white box in the middle which said "please check all the information you have entered".
That box had two options - confirm and cancel. If you confirmed your order it went through with all the information you could no longer see in order to check it, if you cancelled everything you had entered was blanked out.
There was also an Australian government website where you could change your personal details and there was a screen with several sections each with different sorts of information you had entered previously e.g. phone numbers, address etc...
You could not just edit any box directly, you had to enter into the top of the screen which one you wanted to change, and then that box came up as a pop up. That was not so bad, but after editing the data you had three boxes "cancel", "confirm" and "save".
The game then was to try and choose which of the latter two buttons would do the job of updating the data you had just entered. I chose "save" and how wrong I was.
Lastly in the past week one of the banks here in Australia (St.George) changed their ATM screens. I know that is not a web site, but it is still a computer application.
I was sort of used to entering a PIN number and then getting a series of squares on the screen e.g. withdraw money, show balance etc.. In fact in recent years you even get a "favourite withdrawal" box where you can request the same amount of money you withdrew last time.
This time the boxes were all over the place and it took me a while to work out what was going on. Eventually I figured it out and what used to take one or two button presses took ten million.
To add insult to injury when I had finished the ATM flashed up a message saying "we have improved our ATM screen flow to make it easier to use!"
I screamed at the screen "NO YOU HAVEN'T!"
I thought it was just me, but throughout the day various colleagues who used the same ATM (it is at the bottom of the building where we work) mentioned their similar experiences.....
Every so often I feel the need to mention some wonderful experiences I have had online, just to remind myself never to inflict such things on my users.
Last week my wife and I were trying to book some theatre tickets on an Australian website and apart from the normal things like forcing you to enter an area code for a mobile phone number, my favourite bit was when you wanted to confirm the order and the screen went black apart from a white box in the middle which said "please check all the information you have entered".
That box had two options - confirm and cancel. If you confirmed your order it went through with all the information you could no longer see in order to check it, if you cancelled everything you had entered was blanked out.
There was also an Australian government website where you could change your personal details and there was a screen with several sections each with different sorts of information you had entered previously e.g. phone numbers, address etc...
You could not just edit any box directly, you had to enter into the top of the screen which one you wanted to change, and then that box came up as a pop up. That was not so bad, but after editing the data you had three boxes "cancel", "confirm" and "save".
The game then was to try and choose which of the latter two buttons would do the job of updating the data you had just entered. I chose "save" and how wrong I was.
Lastly in the past week one of the banks here in Australia (St.George) changed their ATM screens. I know that is not a web site, but it is still a computer application.
I was sort of used to entering a PIN number and then getting a series of squares on the screen e.g. withdraw money, show balance etc.. In fact in recent years you even get a "favourite withdrawal" box where you can request the same amount of money you withdrew last time.
This time the boxes were all over the place and it took me a while to work out what was going on. Eventually I figured it out and what used to take one or two button presses took ten million.
To add insult to injury when I had finished the ATM flashed up a message saying "we have improved our ATM screen flow to make it easier to use!"
I screamed at the screen "NO YOU HAVEN'T!"
I thought it was just me, but throughout the day various colleagues who used the same ATM (it is at the bottom of the building where we work) mentioned their similar experiences.....
Every so often I feel the need to mention some wonderful experiences I have had online, just to remind myself never to inflict such things on my users.
Last week my wife and I were trying to book some theatre tickets on an Australian website and apart from the normal things like forcing you to enter an area code for a mobile phone number, my favourite bit was when you wanted to confirm the order and the screen went black apart from a white box in the middle which said "please check all the information you have entered".
That box had two options - confirm and cancel. If you confirmed your order it went through with all the information you could no longer see in order to check it, if you cancelled everything you had entered was blanked out.
There was also an Australian government website where you could change your personal details and there was a screen with several sections each with different sorts of information you had entered previously e.g. phone numbers, address etc...
You could not just edit any box directly, you had to enter into the top of the screen which one you wanted to change, and then that box came up as a pop up. That was not so bad, but after editing the data you had three boxes "cancel", "confirm" and "save".
The game then was to try and choose which of the latter two buttons would do the job of updating the data you had just entered. I chose "save" and how wrong I was.
Lastly in the past week one of the banks here in Australia (St.George) changed their ATM screens. I know that is not a web site, but it is still a computer application.
I was sort of used to entering a PIN number and then getting a series of squares on the screen e.g. withdraw money, show balance etc.. In fact in recent years you even get a "favourite withdrawal" box where you can request the same amount of money you withdrew last time.
This time the boxes were all over the place and it took me a while to work out what was going on. Eventually I figured it out and what used to take one or two button presses took ten million.
To add insult to injury when I had finished the ATM flashed up a message saying "we have improved our ATM screen flow to make it easier to use!"
I screamed at the screen "NO YOU HAVEN'T!"
I thought it was just me, but throughout the day various colleagues who used the same ATM (it is at the bottom of the building where we work) mentioned their similar experiences.....
Oh yes, and in the SAP "master data governance" application the buttons for edit and delete are right next to each other, and if you have fat fingers and want to edit some vendor data (for example) and press the delete button instead of the edit button the data is deleted with no "are you sure?" confirmation.
You do get a "that data is gone forever" message, just to rub it in,
You may wonder why my comment was repeated three times.
That is because when I pressed the "add comment" button at the bottom of the page I got a big red error message in a big red square saying "we could not post your comment, please try again in a few minutes".
So I waited a few minutes, pressed the button again and got the same error message.
So I waited a few minutes, pressed the button again and this time got a success message.
Can anyone see the irony in this, given the nature of the ranting in this blog/comments?
It is the opposite of one of the comments above - this time instead of an error message pretending to be a success message we have a success message pretending to be an error message.