I have been programming professionally for a long time now, and I have rarely had an opportunity to meet with customers who are buying and using the products that I make.
My first real customer experience
About 5-6 years ago I was working at a company and one of our user experience people was able to get a real user to come into our office to use the software that I had helped develop. It was the first time I had really seen an external customer use anything I had created.
The software was designed to help cancer researchers visualize how gene expression and drugs play a role in cancer. My role was to simply observe while my colleague gave the user some tasks to complete with the software. I thought the tasks would be fairly straight-forward. Heck, I could even accomplish most of the tasks fairly easily, and I knew next to nothing about cancer research.
As I watched, I was amazed to see some of the ways the user was trying to interact with the software. Some tasks that I thought were very straightforward were baffling her, and she didn’t really know if she accomplished the task she had set out to do.
What was going on?
After taking copious notes and reflecting on what I had seen, I realized that the act of building the software had made me an expert in the software, even though I was not an expert in the cancer biology and research field. I knew how to get the answers, because I was intimately involved in creating the tool.
We had a filter-tree in the application that had sub-filters. You could click on a parent and add that general filter, or you could click on the plus icon next to the word to expand it and select a more specific filter. I thought this was straightforward, but our user was double clicking on the terms. I was baffled at first, but then I realized that she was using her experience in the old Windows Explorer where you would see folders with a plus icon next to it, and you could double-click to open it up.
We had not run any of the user interface by real customers, only internal stakeholders. If we had, we likely would have discovered some of the difficulties the users would have with our design.
I would suggest that if you are developing software for other people to use, you should try to get some real users in front of it, give them some simple tasks, and watch what they do, even if you have already gone live.
– talking to the customer uncovers assumptions made by everyone
– talking to the actual user uncovers flaws in the solution
– easily identify small changes that can really improve customer perception and user experience