Anti Patterns Two
Usually I write about my experiments with object orientated programming in ABAP, but today I encountered something at work which prompted me to write a short blog abut another of my obessions, which is trying to design a user interface which can be used by humans.
One of our key criteria for satisfying the users is response times, so Web Dynpro is right out of the window. It may be just the way we have things set up here at my company but I wonder. What I am seeing is SAP GUI transactions with no time lag that can be seen by a human, yet when I do a leave request on the portal in a Web Dynpro application, or even configure BRF plus, I spend ages looking at a little whirling circle every time I press enter.
I have high hopes for the Netweaver Business Client, but I am only on 7.02 and I think I probably need to upgrade before I can get the full benefit, and in any event that would mean a rollout to all the users PC’s, so while this may happen, it will be 5 years away at the minimum.
SO, I am stuck with the SAP GUI. You work with what you have got, and I like to think we have down a wonderful job designing front ends which hide the complexity of the underlying SAP transactions from our users. It goes like lightning and we have spent ages minimising the number of button presses – our customer service agents don’t use mice, it is faster to type, they wear headsets so they have both hands free – a person has to do to acomplish any given task, but there is always room for improvement.
99.99% of user interface articles on the internet are about web applications of course, or mobile ones naturally, but the underlying principles are the same – to do what you want / need to do quickly and easily and with the minimum of training. our trainers were so proud of their SAP help cards and then one of the web people had to tell them that if you need a help card you’ve failed as it means the application is not intuitive. It was not their fault, they didn’t invent SAP, and then it occurred to me he was talking about some front ends I had written. Blue Ruin!
So, waht can i do about this? I am looking round the internet for guidance. I found a company called Human Factors International http://humanfactors.com/downloads/subscribe.asp which has a free newsletter I subscribe to, it is very off and on, but every so often they come up with a gem. If anyone can point me in the direction of anything better I would be more than interested.
Another trick is to look at what NOT to do. It is all very well to ***** about SAP applications not being user friendly and then go and write one that is even worse, but I am going to try and avoid that if at all possible.
So, I keep a list of the worst things I encounter on the web and in SAP which drive me bonkers when I try and use them and look at it often to make 100% sure I am not doing exactly the same.
Here are some examples. I am going to start with the one I encountered today which is transaction SOST. I wanted to find out why a system generated email had not gone out to a user.
I did not find what I was looking for, so I thought I will restrict the selection to today and in the last few hours. I was surprised to find that afer I had changed my selection criteria and pressed <EXECUTE> the result list did not change at all. This is known in software terms as the “principle of least astonishment”
I was astonished that changing my selection criteria did not restrict the result list, as in most SAP reports the selection screen choices do exactly that. As an aside, I am also astonished that whilst writing a blog on SDN when I try to insert a link 9 times out of 10 the link is inserted at the start of the blog as opposed to where my cursor is. ANYWAY, going back to SOST I found out what needed to be done. You go to the “options” tab.
Then you can click on the checkbox at the top which effecticely says “I did not enter my selections as a joke, I actually want you to take notice of them” which naturally is not the default option. That is the textbook defintion of “counter-intuitive”.
Next we have an ICON which does not do what you may think it does. This is transaction MIRO for invoice verification.
The circular image third from the left usually means “refresh”. It does sort of here, but if you hover over the ICON it says “delete unselected items” which is a bit scary. Luckily it does not actually delete anything, it just removes things from the display, but usually the refresh ICON just updates the current screen with the latest data from the database. Maybe the “dustbin / trash can” ICON is better for removing things from the screen? or maybe the “delete” icon from SM30? The SAP Design guild itself warns about using the same ICON for different purposes.
This next one is about wasting peoples time.Here we have transaction KP26 which is about maintaining acitvity prices ( a controlling function, we call controlling management accounts in the UK, a bit less of an oppressive term in my view, but that’s just me). Anyway, in the below example I have blocked the profit centre so when I press <SAVE> I would like the computer to tell me the profit centre is blocked.
By the way, “STRIPPING” refers to what we do on a quarry to remove excess soil, before you get all excited. Anyway,Ii don’t get the error message my test would have forseen instead I get:-
All right, it’s not going to tell me what the error is, but I have a clue – the error is in the log. After I bit of casting about the user sees that under “Extras” there is indeed an option called “error log”. Then it all goes horribly wrong.
Oh dear! There are lots of error logs and you don’t know which one to choose. You end up going through each one until you strike lucky. Production orders are even worse may I say, there are LOADS of logs there, and would it really be such an imposition for the developer wh wrote teh application to say “look at the XXX log” rather than just “look at the log”. This is what I discussing earlier, minimising the number of button presses, this is not just an all out attack on SAP, fun though that might be, the point is to look at these things and then avoid them when coding your own appliactions.
This next one is just for developers, and so that does not hurt the business that much, developers have feelings too. I am now going to talk about the good old worklfow builder. I love workflow, I have even given speeches about it at SAP events in Australia.
First of all you choose the workflow builder transaction. Just like ME23N you do not get asked what you want to look at, the display defaults to the last thing you looked at, which it is possible someone might want to do, on workflows maybe, on purchase orders – not a chance.
OK, now you want to change the workflow defintion you are looking at to the one you really want. You try to press the drop down arrow. Hard luck. It doesn’t do anything.
If you hover your cursor over the down arrow it does say “F4 Input Help” but pressing the down arrow has no effect, as indeed pressing F4 does nothing either, so the comment is a little misleading.
We can however take a menu option “Other Workflow / Version” wich gives you a pop-up.
Now we have the opposite situation. the “task” box does not have a dropdown arro,w but F4 works on that. The important point is that the technical name defaults e.g. WSxxxx in the example.
I say again I did not enter that value, nor the asterisk that came after it. The system did this for me.If you then press the green tick no values are returned because the search is not on the technical KEY but rather on the text NAME. Now, this was in 4.7, I am sure this has all been corrected by now, and anyway, as I said this is not supposed to be a slag of SAP – after all where would I be without them? – the point is that it is so easy to make a user unfriendly application, you have to fight against ths constantly.
I wrote the programming guidelines document for our company, and half of it was about usability. I found a wonderul article on the internet and I cannot find it again for love nor money. Here is an extract from the orginal which I based my document on:-
I stress again, this is not mine, this is from Bluenote Consulting Group in 2003, and even then they were giving this out free, so I think I am probably OK. Some people might say that’s AGES old, but I say some things never change,
To sum up, the point I am trying to make is that I suspect there are a lot of ABAP programmers out there still using DYNPRO / ALV and will be for some time, and often we cannot be sure the best way to do things, but maybe we can avoid the worst?
There was once a quote:-
“Those who do not study history, repeat the mistakes of the past. Those who do study history invent new ones”.
I hope am in the latter category…
Right from the beginning, I was laughing. It really is hard to write a UI that can be used by humans. Even working with users and functional analysts and asking "what screens do you want to see?" gives a good idea of requirements, but often bad design. What it comes down to, is that you need to know your users better than they know themselves. Especially know their assumptions about how a program should work. Design and development are both very technical issues.
One example of a bad UI you mentioned - a parameter in the selection screen called "Directory to Save File". What non-sap program has a UI anything like that? None that I know of. What is the user's unconscious assumption? A file save dialog.