• Blog
  • News
  • The key to successful software design: getting inside the user’s mind
  • The key to successful software design: getting inside the user’s mind

    The key to successful software design: getting inside the user’s mind

    There has always been something of a disconnect in software development between the technical aims of the developer and the needs and preferences of the end user. This, inevitably, ends up being unsatisfactory for both parties.

    When prompted by UX experts to create user-friendly and intuitive programs, it can lead to complicated, costly and time-consuming solutions for the developer. But when the latter has the upper hand it often means that there is an elegant and technically perfect piece of software that is neither simple nor user-friendly – and sometimes, plain confusing in its interface even to advanced users.

    Given that the success of any program is heavily dependent on being practical and intuitive for the end user, there is an ever-developing school of thought that the people who will be using the software should be involved in the various stages of its creation.

    User-Centered Design (UCD) has become quite a buzzword in the world of software development and the principle behind it is straightforward. In its briefest terms, rather than requiring users to adapt and refine their behaviour to effectively use a piece of software, it relies on designing a system that supports users’ existing attitudes, behaviours and beliefs as they relate to the objective of the program.

    Following the principles of UCD, the first step when approaching any new programming task is to create the narrative “As an A, I want to B, so that C”. To break this down into its constituent parts, the letter A defines who the user is. In this case let’s say they’re an accountant. Letter B is a description of what the software actually does – in this example it can be to work out the tax due on the estate left in a will. With C we are talking about the end result which would be the ability to tell clients how much tax they will have to pay from their inheritance. While this may sound like a very simple approach it is very surprising just how often it is overlooked as a key stage, not to mention a starting block, in effective software development.

    When it comes to the development of the program, then the introduction of the practical arm of UCD – User-Experience Design (UXD) comes into play. This involves conducting research with real-life users as they interact with the software. This can take various forms from observing them as they use the program, holding face-to-face interviews and setting tasks and tests to expose emotions, motivations and standard behaviors to truly understand the psychology underlying their actions.

    Often it can be the subtlest of influences that can affect the way people act and react, and this may have not been part of the considerations of software development for long, but it has certainly been a central concern in other industries. Retail is the obvious example, as the bigger brands have been famously looking for ways to engage customers with their products and brands for decades. There’s more, however. Applying to the research findings of the social sciences has even allowed ambitious poker players to slightly gain an advantage. Factors that may affect a poker player’s behaviour include the fact that that low lighting encourages underhand actions and hearing an unfamiliar song in the background can seriously hinder concentration.

    Even the slightest change in an environment can change the reactions and emotions, the overall experience a person has, and that also applies to software design – from needing to click rather than drag to basic graphic design principles like color. Even seemingly minor variations, for example in the colours used, the inclusion of video elements and even the typeface can have a disproportionately large effect on user behavior.

    Having discovered what these are, the developer can introduce and refine elements that have been highlighted in the process. It also has to be an iterative process if the results are to be truly successful so it needs to be continuously examined and assessed in use.

    But by taking everything step by step and constantly sense-checking that the program is meeting the users’ needs one can be reasonably confident that the resulting application will be one not only meets but exceeds expectations.