Usability - Productivity - Business - The web - Singapore & Twins

The best way to fix software problems

The natural enemy of any software project is warped communication. To minimize damage all agile software development methods use short cycles and close interaction with the user. Over the year I learned (partly the hard way) that what users say hardly correlates with what user do. So the final verification usually happens during the User Acceptance Tests (UAT). The problem here: the project is mostly concluded when UAT commences and conflict between users and developers are guaranteed. I yet have to encounter a specification that wouldn't allow for explosive ambiguity (or is so detailed, that when implemented is 100% not what users actually need (memento bene: need not want).
Ideally users should be able to test software before any code is actually written. This is usually accomplished using prototyping tools. The catch: to get reasonable result the prototypes take almost as long to build as the real product. But there is a solution. Do this:
  • Use an open process to gather requirements. IdeaJam is great to collect and vet ideas from a broad basis of users. You only need to be careful not to run into the say/do or want/need trap.
  • Create low-fidelity prototypes. Paper is a good start, but hard to distribute. Balsamiq Mockups or Denim are suitable tools. Denim is good to visualize links between screens and flows, while Balsamiq Mockups shine when it comes to UI creation. In a perfect world Balsamiq would release an add-on for IdeaJam (wink wink)
  • Develop Effective Use Cases to define the interaction users want to complete with the system. (Use Cases have Pattern too).
  • Test the screens!
  • Test the screens: Let users interact with the mockups (you want to print them then) using Paper Prototyping (you want to read the book. or its newer cousin). The interaction reveals missing or complicated steps. If you find a missing item you can fix it in 3 seconds using a pen. Nothing beats that. It is great fun.
No idea how a session could look like? Nigel and I once recorded a session with a simple webcam (you see the tripod in the recording ), have a look:

Posted by on 29 January 2009 | Comments (2) | categories: Software


  1. posted by mark vernon on Friday 30 January 2009 AD:
    you might want to check out iplotz.com as well for online wireframing and mockups
  2. posted by Tony Palmer on Friday 30 January 2009 AD:
    I was only thinking the other day that IdeaJam would make an great tool to manage a scrum/agile product backlog.

    Also in agile methods, user testing can be performed at the end of iterations and/or release phases. That way the team and product owner can identify areas that might need change earlier rather than later.

    If you are only doing UAT at the end of the project (or product roadmap) then you're not really doing agile - more like waterfall.