In my previous post I talked about why we have a Software Bill of Rights and described in detail the first Right. Let’s talk about the second Right.
1. Clients have the right to working software, at regular intervals, throughout the implementation life cycle.
2. Clients have the right to usable software.
3. Clients have the right to clear, non-technical communication about the software being developed and the development process.
4. Clients have the right to the best solution available.
5. Clients have the right to be regularly involved in the software development process.
Good software should work well, but you’ll notice it doesn’t say clients have the right to working software. “Working” software means different things depending on who you’re talking to at the moment. To some “working” can mean the software works if you do things just right, if you enter all the correct information, you remember the correct order of operation or you’ve read the instruction manual ten times through. To others “working” means a piece of software should do everything they can think a user will ever want, everything they can dream up or everything a competitor is doing.
“Usable” means something different and gives us the right foundation. It implies a balance between over-engineering vs. under-engineering and feature creep vs. under-development. Usable means the software does everything that it needs to do, nothing more and does so elegantly.
The key to “Usable” is that it puts the focus where it should be, the end user. While most of the time the client and the developer have great ideas and intentions, neither can be the objective third party necessary to create great software. By focusing on exactly what end users need inorder to accomplish their tasks we get an unbiased judgement about that button placement, this workflow order or the proper number of navigation elements.
Without fighting for this Right, a project will only be a success for the end user through pure luck. Watch this video for a hilarious but oh so true example of what happens when you don’t value “Usable”: http://www.youtube.com/watch?v=jVb8EC1Y2xM




