Friday, December 29, 2006
Wednesday, December 27, 2006
From the project page:
"Search is part of the fundamental infrastructure of the Internet. And, it is currently broken.
Why is it broken? It is broken for the same reason that proprietary software is always broken: lack of freedom, lack of community, lack of accountability, lack of transparency. Here, we will change all that."
Nobody believed that community powered encyclopedia would work, but it did. But will a community powered search engine work?
Friday, December 22, 2006
Tuesday, December 19, 2006
Sunday, December 17, 2006
"Why is this important? If I have a small screen I can't see as much at once, so to see different things I have to keep popping windows to the front. With my two screens I can put a whole bunch of stuff on the screen at once and all I have to do is move my head. My eyes can flick between the text I'm typing now in Emacs and the rendered result in firefox. I can keep open an IDE with lots of subwindows and have documentation in a browser right there. I don't have look around on the task bar to see where I put that terminal window, I just mouse and type. It's often hard to imagine the improvement before you try, but I can really feel the difference since I doubled my screen."
Saturday, December 16, 2006
"The designers of Netflix.com have a smashing success on their hands, but we didn't find them resting on their laurels. They want to get even better, and for them that means iterate, iterate, iterate."
Wednesday, December 13, 2006
Tuesday, December 12, 2006
Sunday, December 10, 2006
The Theory of User Motivation: Applying Maslow’s Principles to Build Better Software Products (Part 1)
Ever been part of a software project where you have had to choose between time to market (read ‘schedule’) and the right thing to do (usually translated as ‘content’)? I’m sure you have. It’s a tough decision, and most people just follow their gut (also known as ‘top management’) and go one way or the other.
How else does one go about in a situation like this? Can any tools be used? How can one arrive at the right course of action?
In this article I would be proposing the use of ‘User Motivation’ as tool to evaluate a situation such as this.
What is ‘User Motivation’: Motivation generally refers to the desire or willingness to get tasks accomplished. It is generally identified by initiation, direction, intensity and persistence of behavior that will lead to the completion of the desired task.
Similarly, user motivation can be referred to the desire or willingness to use a particular piece of software in order to complete a specified task.
Readers familiar with the theories of human motivation would be familiar with Maslow and McGregor’s theories of ‘Human Motivation’. The theory is based upon the ‘Hierarchy of needs’, and it argues that as humans meet their basic needs, they go on to seek and fulfill higher needs one after another. The human needs as per Maslow’s hierarchy start with physiological needs, safety needs, enjoyment needs and going up to esteems and actualization needs. This hierarchy is usually denoted in the form of a pyramid as shown in the diagram.
For the sake of defining ‘User Motivation’ we can use Maslow’s hierarchy as a basis for defining the progressive set of needs user look to when it comes to a software product as well. This ‘Hierarchy of user needs’ is what forms the basis of evaluating ‘User Motivation’. For each level in Maslow’s Hierarchy, there is a corresponding set of software requirement. Let’s start at the very bottom.
Physiological Needs (Functionality): This is the most basic of human needs and takes the utmost priority as far as humans are concerned. Generally this consists of the need to breathe, eat and anything else that is almost important for us to survive. The corresponding category of needs in ‘User Motivation’ would refer to the basic software functionality. Without meeting this need every other need takes a lesser priority. Let us take the example of a user who wishes to use a word-processing document to write an article. Suppose instead of being provided a word processor, the user is provided with a best of breed image editing software with one piece of functionality lack: The ability to set text. This would be a case where the user has been deprived of the most basic functionality; that is word processing. Note here that the user would hypothetically be able to use tools from the image editing software to draw text, but it would require an inordinate amount of time, that would not justify the use of computer for the purpose. Hence the basis for satisfying user needs has to be that the goal that the user wants to accomplish should be easier to accomplish than it would be without the use of computer system.
Identifying Physiological needs: There are a number of methods and processes that can be followed to identify these needs for the particular software. The most common one is to do a competitive analysis of other software that are available in the market. However this is not often a reliable method as most people tend to over-design and it does not give an idea as to what is the bare minimum feature set the user is looking for. A far more effective tool would be to conduct a contextual enquiry and arrive at the bare minimum feature set that the user would require to complete the task. This would need to be updated frequently using either surveys or other voice of the customer techniques.
Safety Needs (Trust): The Human need for safety corresponds to the user's need to be able to trust the system. Generally trust is built by having a stable software product that is free of defects and does not crash inordinately. If the nature of the software involves the privacy of the user's data, then security also plays at this level. Taking the same example of the word-processing need, a user would only be compelled to work at this level if the software satisfies the functionality need of being able to type words and is also stable and defect free. Given the choice between a bug free product and one which is still alpha code, the user will choose a bug free product. Apart from traditional functional defects, at this level, users would like the software to be free of usability defects as well, though they would not lay an emphasis on ease of use.
Along with a stable product, documented and live customer support also works at this level, providing users with a sense of security that they have help available. But there is an exception that can be made for the early adopters who can be made to use the software with minimal support or documentation.
Checking for the level of safety: A formal QA process along with a Beta testing process will ensure that most of the safety needs for the software are met prior to release. Apart from this, including usability techniques like card sorting and usability testing into the development process ensures that no blaring usability flaws are present in the system which might cause the user to perceive the software as being possibly defect prone.
Belonging Needs (Social/Responsiveness): Software that satisfies the first two levels of needs, now has to vie for the next level which is that of social acceptance. A software that is used by a number of highly visible people in the community makes it more acceptable for the user. Thus building a user community and a way for users to share experiences and learn from experiences of others plays an important role at this point. If the software tool is aimed at technology savvy community, exposing APIs is also a good way of building up the community.
Apart from this need to be part of a community, at this level, the user expects the software to be responsiveness as well. The is where qualities like performance and slickness of the design in terms of handling user errors comes into play. Software scalability also works at this level.
Easy ways to fulfill this need: Today engaging the user community is an important part of any software, and a simple effort like having a corporate blog that communicates and receives inputs from the users goes a long way in building this kind of a relationship with the user.
Esteem Needs (Experience): Most software available today, do well with the earlier three sets of needs and it is at the next level that they tend to falter. At this level the user expects the software to provide them with an end to end experience, right from the point of purchase up the point where they are ready to go up to the next level.
How to get there and measure the experience: Developer and user conferences are a a good way of engaging the user community at this level. If the software is in the enterprise space, then customer relationship management plays an important role and customer satisfaction surveys play an important role in measuring the effectiveness of efforts put into meeting this level of user needs.
Self Actualization (Pride): The last and final level is the holy grail of software development, where the user no longer needs any more motivation to use the software, but with each use, there is an actual sense of pride that is associated with the use. At this level, the users will come back and give feedback on the software without the developer actually having to make an effort.
Having understood these levels of user needs it would be easy to prioritize the software requirements so that depending upon the urgency of the time to market, one can actually analyze and decide upon which pieces of functionality can be taken up. In the next part of this article we will take a look at how we can take those decisions.
Saturday, December 09, 2006
Friday, December 08, 2006
Thursday, December 07, 2006
1. Low Training Investment
2. Low Customization Investment
3. Easy Experimentation
4. Better Results
These are precisely the reasons most users moved to Google in the first place. In any case, general search on the net is a commodity that can no longer be leveraged on its own. The future trend will be towards integration of search into other interactions on the desktop, the enterprise and the net. And do these points hold good in those scenarios as well?
Tuesday, December 05, 2006
Ajax is handy because it avoids needless browser behavior such as page reloads, but it can also be dangerous because it avoids useful browser behavior like error handling. Gone are the “Server not found” error messages and that familiar escape hatch, the Back button. When Ajax circumvents useful behavior, we have to make sure we replace it as well as we can.
I played around a bit with the Community Technology Preview of the expression suite which I'd downloaded a few months ago and used it to create a few designs. The Graphic Designer module was interesting while the Web Designer module seemed very similar to Dreamweaver and quite good. But the interactive designer/blend/sparkle was the odd boy of the lot. It borrowed a lot from Flash, but you had to do things differently to get it working. And although I have been using Flash for over 10 years, using MS Blend/Sparkle/ID was not quite straight forward as Mano would make you believe in his presentations. As a result I never got around the learning curve, and since my job as an interaction designer is not tied to the tool, I don't think I would really invest much time in it. At least, not now.
If there is a following in the future, it would possibly go up the same curve that Flash did in its early days, but maybe a bit slower as there is not that much of a 'disruptiveness' associated with the product.
Interestingly of the three, Blend is the only product that was designed and developed in-house, the other two were acquired. One more observation I had about the Expression Suite (at least the CTP) was that it did not gel together as one suite of applications, but more like a hotch-potch.
I'm sure things will improve in the future, and it is always good to have more than one option when it comes to tools to work with...
Monday, December 04, 2006
Growing use of the web is stripping people of their personal privacy. The number of passwords and logins web users need makes it inevitable they will re-use phrases, and Re-using these identifiers puts people at serious risk of falling victim to identity theft.
Biometric Authorization still has a long way to go, but it may be a necessity in the future...