I’ve recently had to use some “improved” applications (one of which was internet banking) and it made me realize how different GUIs are these days compared to when I were a lad, and you only had a choice of text colours green or bright green. (I remember a banking customer being shown the pre-release 3279 displays which could display 8 colours. The customer asked “why do we need so many colours”, and someone said “you can show overdrawn balances in red” – the banker was convinced; and put in a big order).
You need to know your audience for example
- People who only use the app once a week, for example internet banking. You want the user to do things easily and without problems. They may just want to look at the top few entries in their bank statement
- People who use the interface 100 times a day – for example, programmers and administrators. These people want to do their job – and one key press is better than multiple key-presses. They need to process large numbers of items(hundreds) and take actions.
I feel that modern interfaces try to use one interface for both sets of users.
As a professional programmer I wanted any interface to be efficient. For example
- small movements – press just one key if possible
- have important fields together. For example for a list of left justified items, have the action field/icon in front of the list instead of at the right hand side, being the wrong end of the line. They eye should only have small movements.
- display “more” – with one key press
- use screen space efficiently
I thought the ISPF interface on z/OS was very good.
- I could efficiently move around it, for example, when looking at job output, I could type =L;3;4;(enter) to get to the place in the GUI hierarchy to list the files.
- You press F7 andF8 to scroll within the file
- You have a local command area in front of each item in a list and you can use E to edit, B for Browse, D for delete etc.
- You can have thousands of entries in the list, and can you the “find” command to locate entries of interest.
- I can could organise fields in the display, so I can display the start of job/file/queue name, and %cpu/depth/depth and so the important information was in the left 20 %of the screen – and then stack up 4 screens from different systems all showing this information.
Compare this with “the modern GUI” in a web browser
- Often you have a big picture or icon at the top of the screen – wasting valuable space. The first thing you have to do is scroll past it. To get to the top you press “home” and “page down” – two key strokes
- Lines are widely spaced – for example one row of output per centimeter of screen space, showing 10 lines per window, a third the density compared to the mainframe
- “Actions” icons are at the right hand end of the lines – it is harder to match up the line of interest with the action icon – coloured backgrounds help with this. Sometimes the “Action icon” is off the side of the screen – so is invisible. It would help to have an action icon at each end to make it easier. (I remember a “new” tool in IBM that we had to use, which had the “save” button off the side of the screen. It was only visible if the window was very wide. I lost a lot of data as I foolishly assumed the lack of a visible “save” button meant the tool saved automatically! – and pressing the “help” button lost what you had typed.) The minimum you want displayed is the item, and the action. Having the action icon only at the right means you will lose it if you make the window narrower.
- Can we have “right click” for data rows?
- I tend to work with a “messy desk” with several narrow windows displayed, many on automatic refresh. This allows me to quickly see if things have changed. If I am forced to have wide windows, then I need an even wider display which is less efficient
- You have to click on “Next” and “Back” to navigate. Some times “Up” is at the top of the screen, and “Down” is at the bottom of the screen so you have to move your mouse a large distance to be able to scroll. Having up and down buttons adjacent, is much more efficient as it means you need a small movement to be able to scroll.
- Some times the “next” or “back” button move as you move through the pages. This means you have to move the mouse, and so slows you down!
- It displays a small number of items at a time (up to 50) to display more, you have have to scroll – for example I have 500 user queues on one of my queue managers – that would be 10 “next page” actions to get to the end. Personally I would allow up to 1000 items on the page.
I remember watching some Chinese programmers who could drive their systems properly by chaining all of the commands together and they could type faster than the eye could follow.
Ive seen other people who program their 3270 emulator so Alt+Ctrl+6 logged on to another system, issued commands, copied data to a clip board, jumped to another session and pasted the data in a file. This was a joy to watch.
Ive seen other people who use the cursor to scroll up and down a web page to get to the bottom, to find the “next” key, and it takes them 10 seconds a page. I did not show my frustrations but suggested they use the “home” and “end” keys – for which they were very grateful.
On my laptop I use Ctrl+up instead of the home key and Ctrl+down instead of the end key, as my hands to not need to move so far, which means it is more accurate. I doubt if modern web GUI designers think about this sort of design.