Skip to content

Instantly share code, notes, and snippets.

@JessicaG
Last active August 29, 2015 14:08
Show Gist options
  • Save JessicaG/e517fbe6881ed3189f4b to your computer and use it in GitHub Desktop.
Save JessicaG/e517fbe6881ed3189f4b to your computer and use it in GitHub Desktop.
User Centered Design/Programming: Let go of your ego and listen to your users

We have all heard what Usability is, but here is a quick refresher

##What is it## Usability is a measure of the interactive user experience associated with a user interface, such a website or software application. A user-friendly interface design is easy-to-learn, supports users’ tasks and goals efficiently and effectively, and is satisfying and engaging to use.

##Why is it important?## From the user’s perspective, usability is important because it can make the difference between performing a task accurately and completely or not, and enjoying the process or being frustrated. From the developer’s perspective, usability is important because it can mean the difference between the success or failure of a system. From a management point of view, software with poor usability can reduce the productivity of the workforce to a level of performance worse than without the system. In all cases, lack of usability can cost time and effort and can greatly determine the success or failure of a system. Given a choice, people tend to buy systems that are more user-friendly.

##Where is it applied?## Usability is one of the focuses of the fields of Human Factors Psychology and Human-Computer Interaction. As the name suggests, usability has to do with bridging the gap between people and machines. A user interface refers to the parts of software system that allow a person to communicate with it. This includes output devices (the way the computer talks to a user) and input devices (the way a user talks to the computer). Each of these interface components has devices corresponding to the visual (sight), aural (sound), and haptic (touch) channels of the brain. Usability engineering studies these elements of the user’s experience.

##Why do I care?## You may be saying "I'm a back end engineer, why should I care about the fluffly front end stuff?" BECAUSE IT'S A TEAM EFFORT. Good usability is not left solely up to the front end developers; it starts with the skeleton of the application, you the ruby developer begin this experience. It then extends to your front end developers, your user experience testers, your manager, your customer and then loops back to a reflection of your company and you as a developer. Before you can effectively design or test a website or application, you must define the problem you wish to solve. Which brings us back to the drawing board.

##What does this have to do with my ego?## We are all proud of the code we write today and when someone dismisses it or they can't understand what our intention was; we are hurt. This is amongst other developers with our code as well as users. When we hear that, we need to let go of our ego and listen. This is exactly the feedback you need to be a better developer. Be told you're wrong over and over and over and over again, there is always room for refinement. The User testing is ideal, because you know what's going on in your applicaiton and can navigate a website; but a brand new user can truly tell you how your application flows.

#Getting Feedback## The key principle for maximizing usability is to employ iterative design, which progressively refines the design through evaluation from the early stages of design. The evaluation steps enable the team to incorporate user and client feedback until the system reaches an ideal level of usability.

The preferred method for ensuring usability is to test actual users on a working system, ie. a QA team and foreign users to your product. Achieving a high level of usability requires focusing design efforts on the intended end-user of the system. There are many ways to determine who the primary users are, how they work, and what tasks they must accomplish. The best way starting out though would be user testing on system prototypes, a usability audit conducted by experts, and cognitive modeling.

##Improving Usability## There a many ways to improve usability. Starting with integrating your stakeholders from day one, ensuring you are on the same page and iterating over feedback and design. Another option is getting feedback from your QA team; remember to leave your ego out of this. Here is where you will get some tough feedback to swallow and get heated quickly. Put yourself in a user's shoes and try to work on your application.

This same thing goes for your code. Put yourself in another programmers shoes, and see if your structure and code make sense WITHOUT notes all over the place.

NOTES: Individual stakeholders can offer distinct viewpoints and solutions to the design challenges related to a project’s objectives. It is important to include a variety of stakeholders throughout the project’s development lifecycle. Involving stakeholders in the decision-making process promotes their buy-in and support for the project, and the resulting website or application will be more thoroughly designed when everyone’s perspective has been considered.

So, here are the steps: Let go of your ego, and program. Listen to your Users. Improve Your Shit. Repeat.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment