Tuesday, October 23, 2007

Thoughts on Product Design

In coming weeks, I'll be writing a series of blog postings on the topic of 'product design'. Being in software industry for almost a decade now, I have come across software products fitting in the range from 'mediocre' to 'blow your mind' kind of products. I've also have avid interest and keen eye on design for non-software products too. I have always liked to import ingenious design ideas and get inspiration from them to apply it in the context of my work. I also like to debug the design thought process that goes behind great products. I'll be sharing my insights from such experiences in weeks ahead. Below is the first of ten part series of postings that I have planned.

Product Design Part 1: Keep Context in Mind. Let bigger picture define the smaller picture.

Let me ask you a simple question about designing a chair for kids in age group of 2-4 years. Should a kid's chair be designed to bear 50lbs or 200lbs? And no, I am not referring to designing chairs for obese kids who are weighing 200 lbs. This question is purely from a design standpoint taking into consideration the context in which the product, in this case - the chair, will be used. The logical answer to this question is a kid's chair should be able to bear about 50 lbs of weight because a kid of age 2-4 years would normally weigh in that range. But, if you take a step back, and see the usage of the chair in a bigger context, the answer would be 200lbs. Let me explain why. If you question the overall context in which the chair would be used, you would discover that the kids chair will not only be used by the kid himself. It would most likely also be used by an accompanying adult (parent, teacher, elder sibling). It would be inconvenient for the accompanying adult if the chair was not able to bear his weight. He would be either forced to kneel down to bring him to the level of the kid who is sitting on the chair, or bend from waist down. On the other hand, if the kid's chair was designed so that it could also bear the weight of an adult, it would make it so much more convenient. Had the context not been considered, the chair would not be able to deliver a 'wow' experience for an adult user.

While designing products, be it a kid's chair or enterprise software or whatever you are designing, it is necessary to extract the design requirements keeping the bigger picture in context. Context not only guides you to extract 'practical' design requirements, but it also protects you from feature creep. Any and every feature of the product has to make sense in the context of the bigger picture, the bigger context. Context helps you uncover features of the product that otherwise might not have been discovered with conventional way of thinking. This is as shown in the example of the designing kid's chair. Conventionally, a kid's chair would not have been designed to bear 200 lbs of weight. Only when you consider context, do you uncover such requirements. And it is such requirements that go into making products that deliver 'wow' experience to your dear customers.

Saturday, October 20, 2007

Is it just me or do you think that wikipedia could use better presentation of information?

Don't get me wrong. I am a big fan of wikipedia. I treat it as a good source of information, and hang out frequently devouring information on pages after pages on wikipedia. However, after reading some number of pages, it just starts to drag. Again, don't get me wrong. The information is wonderful, but the presentation needs some work. I can't tell exactly what is wrong. Maybe using a different font or maybe line spacing or maybe page layout might make the difference. Maybe all the pages have too many links and these links are blue and are underlined, which starts to hurt the eyes after some reading. I cannot precisely pinpoint what's wrong in the presentation of pages, but all I can tell that there's something missing.

In general, that's something I've always felt about software applications. Great applications have features that you won't even notice because such features just gel naturally with usability. However, when such features are absent, its just hard to define them. I guess that's what separates good applications from great ones.

Example:
1. In the browser, you use CTRL-F to find text on a webpage. In Internet Explorer, CTRL-F opens up a dialog box. You have to keep juggling this find dialog box as you search for the text on the webpage. In Firefox, CTRL-F makes search textfield and related buttons viewable at the bottom of the browser window which is just so convenient. Moreover, as you type the text in the search textfield, it changes background color of the textfield to red if it cannot find the text, or green if it can.