How Do You Feel About Your Software Product?

Thursday, July 23, 2009 10:30 AM

By Alex Yakima

There's only tiny little fraction of people who ever use software they right. And that's natural, unless you work on development tools or general-purpose office software. Most likely you don't.

Did you ever think about the feelings users have when they use your software?

Pretty fair question, isn't it? I remember my big surprise of how users comprehend the system you developed... it's absolutely different from what you think as a developer or developer manager or product manager... it's way different. Users do not know or care about how difficult this or that feature was to develop and it thus is not influencing the way they use or think of certain piece of software. They do not care how difficult was it to make this or that feature compatible across different browsers or tuning response time took 2 month. Did you think about what your users really care about? Usefulness... usability... overall product quality...

Here's little questionnaire that helps refreshing the understanding of the quality of your work from the end user perspective:

• When using some tool or application, how often did you (as a user) think about "who on earth could develop this... system"? What kind of exact wording did you actually apply to it?

• What's the best piece of software you ever happened to use? Which of software products that you developed (you think) could be evaluated the same way and people would say that's their best software system they ever used?

• How often did you think about some software product (say web browser or text editor or anything else...) that it should better do this or that faster or more reliably or more straightforward? How often did you think about your software like that?

Right, it's not that easy to not accommodate yourself to what you work on. But the fact doesn't imply you shouldn't give it some thinking. I remember the story someone told me many years ago about his colleague developing a form, pretty simple one (about a dozen data entry fields). It was specified overall, what function should perform within that system but the screen layout wasn't specified. Guess what was the result?.. A screen with a dozen of data entry controls... and no "submit" button! Why? Because in order to test it, it was 100% enough to simply press "Enter" on your keyboard.

I strongly believe there's always something you can do about the problem. I know what was helpful in the teams I had pleasure to work with and I'm glad to share this simple algorithm:

Constantly learn from product managers that specify the product you engineer. Ask yourself questions about the product, not just write the code. Often use and browse thru entire system you work on, especially scenarios you didn't develop. Request information about user testing (if it took place) and carefully learn the results. Participate or even initiate informal discussions about the product, not the code base. Shift the understanding of what you do from software development to product engineering concept. Think in terms of product...

Bookmark and Share


alsor said...

Just like we can develop good internal design by using TDD, we can create good user interface by usability-testing. And it is surprisingly easy to carry out such tests. You need about 4-5 peoples who aren't involved it the project development. You just ask them to perform some important operations and watch them. Even better if you ask them to pronounce every step they take. And of course, just like you say, you be surprised by the problems that testers experienced and you are not, as a developer. And what is more important - you will obtain a lot of ideas and suggestions.

Alex Yakima said...

Absolutely true, Alsor! Such user testing sessions was big revelation to me once I participated in one and was surprised how users judge product features. It was so cool seeing when they like some features and so dissapointing but at the same time promsing to know that something isn't of value to them. And then you just start realizing that your mind is completely around that product but in some bizzare way.

Although the point is that development teams, especially in outsourcing, are often devoid this luxury of being somehow involved in user testing sessions... as organizers let's say.

Label Cloud