I think everyone can agree: it's important that any software shares a common user interface consistent with the operating system environment. Nothing is quite as awkward as attempting to do something as standard as drag and drop, or double-click, and not getting the expected outcome, leaving you fumbling around to figure out how a particular piece of software has decided you should interact with an object. Especially in the realm of Professional PCB Software which can cover a spectrum of Operating Systems, and because many have existed long before our current operating paradigms existed, or rather, changed.
Within Windows, I expect the software to exhibit at least a basic understanding of how an application should operate within this environment. If I click and hold on something, I expect to be able to pick it up and move it. If I select items, I expect CTRL+C to Copy and CTRL+V to Paste. If I right-click on an item, I expect a Context sensitive menu to appear, with Properties at the bottom. When I scroll my mouse wheel, I expect my document to scroll, and if zoom is a possible action, I expect a modifier of CTRL or ALT to be used with my mouse wheel so I can zoom in and out.
I expect modern professional PCB software to understand its own CONTEXT and make reasonable assumptions about what I am doing, or at least demonstrate the most common functionality I would expect from an interaction with an object. I should not have to invoke a move command to move something already under my cursor. Likewise, I should not have to invoke a delete command and click on various objects; when I have already selected them, I expect my delete key to clear them.
Beyond expected control paradigms and functions, it is also important to understand the features of an OS and harness them when possible, such as the use of Multiple Monitors, and the expected ability to utilize as much or as little screen real estate when available. I expect modern applications to allow me to create additional windows for placement on my various screens. I expect them to still be running on the same executable so they can communicate with each other even though they are separate functional windows. Within professional PCB software, I want to be able to drag and drop documents between these windows, as well as be able to cross-probe, and cross select, and arrange my tools and panels in a configuration that makes sense to me.
I think sometimes this gets taken for granted until we are faced with an application that goes against the grain of what you have come to expect. Maybe it’s an older application that just didn’t keep up with the new ways of doing things, or maybe it’s an application which was originally developed for another OS or interface paradigm and couldn’t be bothered to adjust itself to its new home. Regardless of the reasons, it’s difficult using applications which do not fit their environment and having to remind yourself you’re in “alien space” each time you have to go and get some work done.
If you have no choice and must use an esoteric control system in a common environment, you plow through and get it done, keeping yet another set of functions and procedures in your muscle memory. But when you have a choice, and there is an alternative which aligns with your everyday behaviors, you can save yourself a lot of time and frustration simply by being able to use your software in a natural way. It is definitely worth considering, even if you have built up that esoteric knowledge and are reluctant to relegate it to the bin of wasted time. Understanding that it is difficult to leave a mental investment like that behind, you have to ask yourself why that investment was required in the first place, and if there is a better choice.
Sometimes it goes beyond just the consistency with the expected OS behaviors and can show inconsistency between editors or point tools. Maybe the point tools are linked together somehow through a file transfer, but they were developed by completely different companies and the subtleties in usage differ, this has been quite common in professional PCB and schematic capture software. How many times have you found yourself pressing a sequence of keys or clicking on something, expecting a particular and common behavior, just to slap your forehead and say to yourself, “Oh yeah, it doesn’t work that way here,” and only after remembering the required key or sequence are you able to continue?
This consistency also lends itself to whether an application is considered “intuitive”. We expect things within a given environment to work a certain way, and when it goes against this intuitive assumption, friction is created. Whether something is intuitive really is a matter of perspective and how you expect something to work. Common actions should not require conscious reasoning. Muscle memory should be able to rule the day by keeping your momentum going and your forehead slap-free.
About the AuthorFollow on Linkedin More Content by Colby Siemer