August 12, 2005 | Filed under:
Some thoughts on software design:
1. Use-cases: I have only just begun to viscerally understand this even though it is a simple intellectual concept to grasp. Is it easy for real users to do real things with the software? Once you have designed your cool new feature-set, go through the process of imagining a user clicking through the experience. Does it get confusing? Can a user do something the quickest and simplest way? We recently designed some features which are extremely powerful and our first approach was to quite directly map this functionality into the UI. As soon as we started using the new tools we realised that the functionality needed to be abstracted through a use-case process. What the functionality actually did needed to be hidden (why do users care about how it works?) behind a task based UI.
2. Eco-systems: It is easy to design software as though users are only running your software on their PC and that your software is the only thing available on the internet. The truth is that today there is a cornucopia of choice and many of these choices are connected through APIs, webservices, remixed applications and hacks. Will your software be hacked? Is this good or bad? Can this be accepted and recycled as a positive? Why would you hack Flickr when it has such a rich API? Why spend days reverse engineering Skype when you can just use its public API and get straight to the fun part?
How else do users work on a particular thing? For example, it is no use designing software today that allows users to express themselves through media without allowing that tool to connect to blogs. If they can’t connect it to what they already do then they will not bother.
3. Aesthetics: Many software products are comparable in terms of doing what they need to do… but users will always go for the one that looks good.
Like what you're reading? Subscribe to my feed.
TrackBack URL for this entry:
http://www.morle.net/mt/mt-tb.cgi/88