Designing good software is far from straightforward. It’s all too easy to simply jump in and hope for the best. Software prototyping is one technique which can help minimise the likelihood of building entirely the wrong thing.
It’s easy for me to sit here and preach about prototyping techniques but much harder to actually use those techniques. There are lots of little questions to get out of the way first, including ‘what tools do we need to prototype’, and ‘when should we use them’.
The Prototyping Toolbox
The following things are basically the core of your toolbox. You may have some of them already, whilst others might not immediately jump out as important but experience has shown them to be very useful indeed.
- A notebook or laptop computer;
- A desktop machine with a decent sized display;
- A portable hand-held audio recording device.
- A decent wireframing tool;
- An interactive prototyping tool;
- A graphics editor;
- A screen grabbing utility;
- A screen-cast capture utility;
- A decent word processor.
- A network or web-hosted share;
- An incident/task tracking system;
- A version control system – either local or web-hosted.
These things form a core of useful tools that will enable you to capture requirements from users (taking notes on your notebook, recording users verbal feedback using either the screen-casting software and built-in laptop mic, or your hand-held recorder for meetings). If you’re anything like me, you’ll end up with print-outs containing screen grabs from your mockup screens; sticky notes can be useful to help organise these, or record feedback.
A fair amount of time will be spent talking with users and clients, and from those discussions many actions will arise. A tracker system (for example, FogBugz) will enable you to capture, prioritise and track actions against design and prototyping activities. This should be visible to the design and development team, management and ideally also to the customer and users, who should be able to submit feedback directly.
Once the design is underway, it’s always a good idea to start out with a light-weight wireframing tool so as to sketch ideas and basic layouts out without getting bogged down in the particulars of aesthetics and interaction. There is plenty of time for that further down the way, when a more fully-featured prototyping system makes more sense. After all, prototyping should be an iterative process and adding detail is time-consuming and best left until the major layout and navigational decisions are made.
Having mentioned that software prototyping is an iterative process, it follows that version control is important to consider.
Rather than rely on some arbitrary file-based versioning, why not explore one of the Subversion- or Git-based online versioning services? Beanstalk is one that is well worth checking out.
Whilst not all prototyping systems offer sufficient file granularity or integration to support version control, it’s available in Axure RP Pro and likely to be added to other tools as systems become more complex and co-located design teams start to see the benefits that this brings in collaborative design.
Gaining feedback on your designs is of great importance. This is generally best done with a demonstration where people are in the same room, but since that isn’t always possible, recording a guided demo using a screen-casting tool is a great way of achieving this.
As a compliment to (rather than a replacement for) version control, it’s useful to have a shared network repository for the various documents, specifications, graphical resources and so forth that are created along the way. DropBox offers a free 2Gb ‘cloud-hosted’ share which works beautifully for this purpose, using shared folders between users. Did I mention that it’s free? Go check it out!
This is just a short look at some of the tools that you might find useful for your software prototyping activities. It’s far from comprehensive, of course, and there are alternative tools that can be used. There are no hard and fast rules to what works and what doesn’t – heck, some people even use PowerPoint for prototyping. Can you imagine?
If you’ve found any useful tools, or even techniques to help work more effectively, please do add a comment below. Sometimes the ideal tool for your next task is just a recommendation away!