company products services news blog contact page
SDP LOGO
December 11, 2009
November 22, 2009
November 13, 2009
November 10, 2009
November 01, 2009
July 06, 2009
June 22, 2009
June 17, 2009
Apps That Work
Nov 22, 2009

We as developers sometimes forget that the typically end user does not think like a programmer. If the user did, we’d have stopped progress the user interface at with the command line. Users like an app that is easy to use and just works. Apple as a company has been very good at getting users to love their products. Why? Because their user experience is simple and it works, performs just as advertised.

What does it take to make an app that works? I believe it all boils down to testing.

User Experience

Most applications developed have a user interface of some sort. The user interface can be a command line, a web application and actual client application that is installed on your desktop (who writes those any longer?). All have one thing in common, the user interacts with the application through this interface. This user interface is the most visible portion of your application, and therefore to the end user the user interface is your application. It won’t matter if your application contains the most eloquently written routines, not a single line of code duplicated anywhere, comments to explain perfectly what the code is doing; none of that matters to the end user. If the user experience is terrible so is your application.

How do you make a good user interface? Test it! I’m a programmer by trade, my user interface development skills are terrible to say the least. I’m no good at coming up with a UI the user loves right of the box. However I’ve discovered that iterating through several different designs with a few potential users I can quickly develop an interface a user will love. To test your UI:

1. Develop the application with a rough draft UI. You don’t have to spend weeks laboring over getting the first pass just right. Just include the functionality necessary for the application and continue to step 2.

2. Put it in front of real users or at least find some friends and family who don’t have the same understanding of the application domain that you do. Give the testers specific tasks and see how they fair. Make note of any problems utilizing specific functionality and make notes about what the testers are able to figure out quickly as well.

3. Review your problem notes from step 2, think about solutions and change your UI to address those problems. Go back to step 2 and repeat until you AND your potential users are happy.

Functional Testing

So you’ve got a user interface that your users will love. What now? Make sure it works! It’s very important to ensure your users will love your software, it’s equally important to be sure your application will work as it’s designed. If you’re following any sort of formal development process you should have a requirements specification. Utilize that specification to create automated and/or manual tests.

Automate as many tests as possible. You should create a full suite of tests that can be be run following each major change to prove your app still works.

In situations where you’re unable to create an automated test, create a documented testing plan. This documented plan should include details on the feature being tested, steps necessary to execute the test procedure and clearly define the result the constitutes pass or fail. Just like the automated testing run these manual tests with each major change in the application.

Testing, when done properly, is time consume and worth every minute spent to ensure you find any bugs before your users do.

Comments
Name:
Email Address (not displayed):
Comment: