Posts Tagged ‘Design’

Creating User Experiences – An Entry Point for Developers (Billy Hollis)

In his user experiences workshop, Billy gave us a look into the user psychology and brain wiring that make design concepts work. He has a lot of visuals and explanations in his workshop that I won’t be able to translate well into this blog post, and I have no intention of attempting this. If you have the chance, I highly recommend that you attend one of his speaking events on this subject. If you are interested in learning some of the key points discussed in his workshop, please continue reading…

 “As our case is new, so we must think anew and act anew” ~ Abraham Lincoln, 1862

Coming up with solutions involves creativity and imagination whether part of the detailed analytical side or the big picture. Software development has always been about making something possible that wasn’t possible before. However, this way of thinking is coming to an end and now it is really about making it easy.

Something that we fall prey to is inattentional blindness. We can’t see what we are not looking for. To see this in action, here is a website with a famous awareness test.

We need to be sure to put visual indicators very near what it pertains to such as an error message next to the error instead of at the very top or bottom of the screen.

A few Design Principles to keep in mind:

  • Archetypes – certain objects and actions have a universally understood form or theme such as buttons are normally round and a round object signifies a button that can be pushed.
  • Fitt’s Law – the time required to locate and use an object is less if the object is bigger and closer to the user such as moving a larger submit button on a form closer to the last form entry.
  • Hick’s law – the time required to locate and use an object decreases as the number of objects decreases such as fewer menu choices takes less time to decide where to go than longer and more detailed menus.

Fear of empty spaces…horror vacui. When a user asks us to put everything on the screen, they are asking for this because they are afraid that we will screw it up and they won’t be able to find what they need. However, a crowded screen comes across as poor quality and bad design. We don’t need to use every piece of screen real estate – we need to have more whitespace in our applications.

Good software design will increase productivity, reduce the amount of training needed, lower the number of errors, and ultimately increase sales. Extra investment in design will improve the end product and reduce the number of bugs. Good design requires collaboration.

How do we break loose from the standard file menu and rectangular designs? One place to look to for inspiration is video games.

Users prefer beautiful, curved things over sharp, unattractive things. Curved objects are perceived as safe whereas sharp objects are perceived as dangerous. Beautiful software appears more usable to users.

Users resist change and it can be difficult for users to accept changes to existing systems that have poor design because they feel the changes will make their job harder. Some users even feel that they have better job security when the software sucks and they are the only users who know how to use it. In order to get users to accept change, it is recommended to create new applications that are completely different from existing applications than to merely make enhancements to the existing applications.

Error messages should be as text on the screen with some sort of visual. We can use pop ups…but only as a last resort. In WPF we can create buttons using the ellipse tool. By layering a couple ellipse objects, we can achieve a button that appears indented.

Did you know that in VS we can right-click on an object’s property and reset it to the default value? Or that Ctrl I gives us the ability to do an incremental search?

Questions to ask in discussion of building a new system:

  • What is needed in a new system?
  • Where does the old system fall short to meet the business needs?
  • What has changed that we need a new system?
  • What are the platform and environment needs?
  • What technologies will be used?
  • What are the older applications that will still need to be used and need to work with the new system?
  • How much is available for investment in a new system?
  • Are there any arbitrary deadlines?
  • Do we build good enough software? Cost-benefit and satisficing
  • Do we build based on performance or preference?
  • Where can business value be added?
  • What affects revenue/cost?

To sharpen our “designer’s eye”, observe our surroundings, take pictures, carry a notebook to sketch, visit places with excellent design like museums and upscale shopping malls, and read books related to design principles and philosophy.

The collaboration team should be made up of 3-4 team members including business analysts, developers, and designers. The design process begins with blue sky visioning. Don’t have too much structure at this point. The details gathered will bring about the structure needed for the project. The more ideas generated the more we can let go.

The team needs to gather enough details to have a general understanding of the business needs. The general design begins to take shape with visioning and storyboarding. The team will draw up illustrations and paper mock-ups, and start the interaction prototyping.

The interpretation phase involves mapping out the major activities and task flows. In this phase, the team is doing the contextual inquiry and field observations, and building the work models.

During the contextual inquiry, watch what the users are currently doing. Ask the users to give running commentary as they do their work explaining what they are doing and why. Take pictures of the work environment such as sticky notes all over the place. Look for trends.

Don’t over invest in storyboarding and illustration. Do more than one prototype to give users options. If users are presented only one prototype, they tend to be nitpicky on the little things.

End stage in the design process is empathy. We should have empathy with the user and understand where they add value. We understand where the current system is constraining the user and are able to evaluate ideas that will appeal to the user.

If we know what we are doing is valuable, we will be happier. Being creative can be highly rewarding.

Recommended Reading:

Recommended Websites/Videos:


Read Full Post »

%d bloggers like this: