h1

Wireframe or Interactive Prototype?

March 6, 2010

We often talk about wireframe prototyping and rich, interactive prototyping, which are both powerful techniques for getting conceptual designs into a form that can be explored and expanded.

Where to actually use either approach, though, is something that would benefit from covering off here; a recent email from a reader reminded me that I’d promised to give some tips a while back and so, without further ado, here we go…

Wireframes

Leaving sketches and paper-prototypes to one side, Wireframe prototypes are the quickest way to explore a visual concept.

Wireframe teddy bear

Wireframes are a little bit like the plans for a house; they represent the outlines without getting hung up on the actual implementation.  It’s about deciding on the layout of a floor, if you will, without getting concerned with the colour of the carpet.

By limiting ourselves to essentially static designs, we have to gloss over a lot of the implementation detail.  We won’t attempt to model how a dynamic panel works, or the validation on an order form.  We will, however, be able to quickly create visual representations of designs for forms and pages with a minimum of fuss.  We’ll be able to do it quickly, and because our tools don’t attempt to let us do anything particularly complicated (such as navigating between wireframe ‘pages’), we won’t get distracted as much and can focus on our designs.

Wireframes, then, are ideal for the earlier stages of requirements prototyping, when there are layouts and ‘broad-stroke’ design choices to be explored.

Wireframes are suitable for:

  1. Deciding on what things should be included in a page;
  2. Investigating where things should be placed on a page;
  3. Creating low-fidelity mock-ups to help build the ’skeleton’ of an application without investing too much time;
  4. Comparing and contrasting different layouts;

…and so forth.

What Wireframing doesn’t do so well is allow modelling of paths through a system, or interaction, or the finer detail of design.

Interactive (Rich) Prototyping

Rich prototypes are more commonly used once the basic decisions about a design have been made.  In other words, by the time we switch to rich prototyping, we generally know how many pages, and roughly what will be on each page.  We may not know how the various parts of a page will work, nor how individual pages will inter-relate with other pages, but the basic shape of a design is there.

Prototype car of the future

The move to rich prototyping is borne of a need to explore the specific implementation of designs.  In other words, modelling how functionality works, rather than simply glossing over such detail.  A good example for a rich prototype would be building a tabbed dialog so that clicks on tabs change the content, showing the tab state change and effectively simulating a real tabbed dialog.

Rich prototyping takes a proportionately longer time to do than Wireframe prototype development, due to the need to provide additional detail, interaction with forms, navigation and even simulated data.  Rich prototyping also varies in its complexity – it’s possible to create incredibly rich and accurate simulations of key pages, whilst building lower-fidelity versions of less important pages.  This allows the designer to prioritise her efforts to ensure that maximum value is extracted from the creation of prototypes with regard to ironing out any design gremlins.

Rich prototypes are suitable for:

1) Exploring the finer design details once the basic shape is in place;
2) Providing a realistic ‘finished system’ experience to allow users to get a chance to try out the complexities of a design ahead of the development phase;
3) Really ‘getting inside’ a design of key pages to ensure that a design really does work.

The drawback of rich prototyping is generally in the time it takes to do, and the need to use (often expensive) software.

A combined approach

The purpose of this article was to give a few reasons why a designer might choose a wireframe or a rich prototype approach.  However, the best approach is generally to mix and match as suits the needs of the project.

Crazy prototype gadget

For instance, work with the business to mould the basic shape of a system using wireframing techniques, comparing alternative layouts or page compositions, without worrying too much about how it looks and the finer detail of how each page will work.  Once the major layout and composition detail is stable, select parts of the design which might be either fundamentally important to the success of a design (e.g. a registration process) or involve a slightly unusual layout or functionality.  These are the things that can then be modelled in a rich prototype, and examined in more detail – perhaps by using them as the basis for user feedback sessions.

Whichever method you use, be assured that just by adopting requirements prototyping techniques into your project, you are dramatically increasing your project’s chances of success!

h1

Guided demos…

February 27, 2010

Effective software design isn’t just about designing a thing and then turning that design loose unto the world; it’s also about communicating that design to the people that matter and ensuring that they understand what your design is about, why it is the right approach and what problems it avoids or solves.

When we create a software prototype, we have to make many design decisions of varying importance.  The prototype itself might be demonstrated to various audiences and so a little guidance is worthwhile.

Holding the prototype cardOne tactic which is worth covering is to understand your audience and how they will perceive your prototype.  A technical audience will doubtless look at your prototype in an entirely different way to a business audience, which in turn will probably look for different things than would an audience of end-users.  The key is to tailor your approach to demonstrating your prototype so that:

1) It uses language and terminology that the audience understands;
2) It respects the motivation of that audience – in other words, what they want to get out of the demonstration, and
3) It prompts for any specific feedback that you, as the prototype designer, wish to solicit from that audience so as to feed back into the design.

The very best approach is a personal demonstration, particularly a one-to-one hands-on tour.  Letting a user have a play with a rich prototype is an incredibly engaging and fruitful technique, which also gives you the opportunity to watch how that user explores the design.  You might be very surprised by the varying way that different users interact with your design.  If you spot any confusion or hesitation in their use of your design, it could be a strong indicator of a problem which you can then fix.

Keeping the audience awake

However, it’s not always possible or even desirable to do a personal demonstration.  Sometimes it’s not even feasible to let users actually use your prototype at all – either for technical or business sensitivity reasons.

In these cases, one powerful method that has emerged in recent years is the use of screen-casting technology, so that a prototype can be demonstrated and a recording of the screen made (along with an audio voice track).  These can then be replayed by any interested party.

The most important thing after all this is said and done is to ensure that you are in regular contact with your end users, stakeholders and anyone who needs to be involved.  Prototyping is all about getting feedback and refining designs based on that feedback, so however you want to do it, getting your audience looking at your designs is one of the cornerstones of effective requirements prototyping.

(I’d like to recommend a very useful tool called iShowU HD Pro, which is a very low cost solution for screen-casting.  I’ll review this at the end of March, but would strongly recommend anyone who would like to try screen-casting to give it a try.)

h1

Reduce Wasted Effort…

February 20, 2010

Far too many software development projects fail to meet deadlines and run over budget.  You’ve possibly seen this first-hand.  In fact, I’d be surprised if anyone working in this industry hadn’t personally experienced at least one development that ended up taking a lot longer and costing a lot more than originally intended.

Watch for ice

Part of the problem is that designs and specifications are commonly put together in a short phase right at the beginning of a project.  Some effort is put into trying to specify the requirements and translate them into a workable design in one swoop.

This is a noble but flawed thing to do.  It almost always fails – and here’s why:

Things change…

things change

Projects can run for weeks, months or even years.  However, such projects don’t exist in vacuums.  They are part of a wider world of business, in which change is an ever-present reality.

By expecting to be able to specify a design up-front, and stick to it right through a development project, we set ourselves up for failure.  Even supposing everything went well, and we missed nothing out from our requirements analysis, the fact is that the world will be a different place in the weeks, months or years it takes to translate those requirements and that design into an actual product or service.

What’s more, if we expect to get our requirements right and then build a single design to turn those requirements into something worthwhile, we’re placing all of our eggs in one very big and rather flimsy basket.  We’re assuming that those requirements are correct, and that they won’t change.  But, inevitably, the requirements will be written by someone who’d rather be out playing golf, and the very busy business stakeholder is really rather too busy to read that requirements specification.  Probably a business analyst is trying to come up with a workable design without having any technical know-how, and in any case they’ve missed a huge chunk out because they didn’t really know how the new widget was going to fit into the existing system.  So, they hide their misunderstanding in a veil of abstract and obtuse language, which is easy to misinterpret and difficult to follow.

To compound all of this, the rather unreliable requirements documentation is then revered as ‘correct’, and management will apply pressure for Real Work to begin.  Which means cracking on with the build phase before anyone has engaged with the end-users to see if the proposed design is going to be up to the job.  Which it probably won’t be.

Fast forward a few weeks or months, and the false assumptions, omissions, bad decisions and flaky designs have become so entangled in the actual fabric of what is being built, that disappointment and failure is a certainty.  As the developers start to question the designs and requirements, it suddenly dawns on everyone that something is not right but nobody knows how to turn this baby around.

Superbaby bib
Effective requirements definition is not a one-shot deal.  It must be treated as an ongoing process, which needs to be shaped by constant feedback from all the right people.  Requirements prototyping, using software prototypes, feedback sessions and constant adjustment, is the answer to ensuring that requirements are up to the job.

By spending a bit more time at all stages, adjusting the design and the requirements to cope with new knowledge and user feedback, we can ensure that there is a much higher likelihood of delivering a quality system which actually does what it needs to do, rather than what was originally proscribed so many months previously.  Expensive development effort is minimised because the design and requirements are clear and unambiguous.

At the end of the day, any additional cost of using requirements prototyping is more than offset by the significant savings by reducing wasted effort.

Try it – you might surprise yourself by how much better your project runs!

h1

Save money: invest in a big display

February 18, 2010

Today’s article is a bit of a diversion, but it’s something that I see time and again which unquestionably hurts the productivity of anyone who uses a computer professionally.

Many companies wax lyrical about the need to operate more effectively and do a lot of pondering on matters of productivity and efficiency.  They sometimes pay top dollar to external consultants who come in and analyse this, measure that and recommend changes to processes, systems and so forth.

All of this can be really worthwhile but in my opinion the benefits gained on an organisational level are usually easily bettered by a small change for every computer user.

What am I talking about?  Display size (or, more specifically, resolution)

Big curved monitor

Far too many companies ‘go cheap’ by providing their users with small, inexpensive monitors – say, 19″ os a typical example these days.  These small monitors might well have been considered ‘luxurious’ by the standards of the Windows 3.1 days, but those days are gone now and our increased reliance on windowing systems has raised the bar and companies need to understand that they need to move with the times.

Take, for example, a small software house I spent some time at a year back.  They were doing some fairly cool things with the latest tech, and there were some really good developers working there.  However, each was hamstrung with the sort of budget display that meant that even when an application was maximised, the actual ‘workspace’ was tiny after the various toolbars and panels took their cut.

Even assuming that these budget displays were completely free to the company, their cost was far higher than that of a pair of 24″ displays would have been, or even a 30″ display.  The low resolution meant that developers were frustrated and had to keep shuffling things around to make enough space to accomplish anything.

Let’s look at the ‘mid-range’ compromise of a 24″ display.  That will provide a desktop of typically 1920×1200 resolution, as compared to a typical 19″ offering 1280×800 or similar.  In numerical terms, the 24″ display has around 2.3Mp to the 1Mp of the 19″ display.  In other words, its ’screen real-estate’ is over twice as capacious as in the smaller display.

What this translates to is the ability to see more code, or more of that spreadsheet, or the opportunity to place two Word documents side-by-side for comparison purposes, or the option to have an email client open and visible at the same time as the web browser, and so on.

Every time a user is forced to reorganise windows on the screen to cope with limited screen real-estate, they waste valuable time and it can snap them out of ‘the zone’ of real productivity.  These context switches will, over the course of a day, a week or a month, have a cumulative negative effect on that user’s ability to perform.  Lower performance is opportunity lost; opportunity lost is money wasted.

I don’t feel the need to wheel out complicated equations or calculations to justify this stance; it should be obvious to anyone who has ever done anything on a modern computer.  However, lest I disappoint, if we assume that (over the long term) a restrictive display reduces productivity by even 5%, bear in mind that 5% of most any professional computer user’s salary buys several 24″ displays!

On top of that, a larger display gives that user a more enjoyable computing workflow experience, reduces mistakes due to excessive context switching and reduces the need to reduce font sizes so as to make it all fit.

Any company which skimps on decent displays for its employees is needlessly wasting money – and that’s a fact.

h1

The iPad As Quorn

January 28, 2010

Yesterday, Apple announced their long-rumoured and much speculated-upon iPad.  The world, it would seem, waited with bated breath for confirmation of the “Jesus Tablet“.

What we got was a competent looking, stylish device that many have already deemed a disappointment and doomed to failure.  I wanted to try to down-play the physical iPad somewhat and think about its place in the society of the (very) near future.

The key to the iPad is to think of it as one would Quorn.

The iPad as Quorn

If you don’t know Quorn, let me elaborate: Quorn is a mycoprotein-based food-stuff made from eligible fungus and high in protein.  Doesn’t sound too tasty, no?  But wait, there’s more.  It is healthy and forms the basis for an entire industry of vegan-compatible meals.  Everything from sausages to meatballs to scotch eggs, minced beef and chicken fillets.  Except they’re not.  Quorn is most commonly regarded as a substitute for these non-vegan/vegetarian foods, and favoured, shaped and marketed as such.

However, as someone familiar with Quorn, I’ve personally found that when you treat it as a meat substitute, it is often found wanting.  I’m not vegetarian – I do enjoy the occasional piece of chicken or beef, and I know what they taste like.  I know the texture, I know the mouth-feel, I know the taste.  When I eat a Quorn ’substitute’ for any of these, I am only too aware of the differences.

My success with Quorn has been to treat it as its own category of food.  Work with its characteristic flavours and texture – don’t fight against them to make them into what they’re not.  If you do this, you end up appreciating Quorn for being its own thing; a versatile and healthy alternative, not a substitute.

So, thanks for bearing with me whilst I’ve seemingly lost the plot.  There is a point to this, and I’m getting there.  We were talking about the iPad and I was trying to give it a fair hearing.

I think the iPad should be treated in the same way – not as a substitute for anything, but more as a new device – and it should be thought of simply as a piece of a larger system, rather than as a device unto itself.  This is where it’s connectedness is key.  The iPad v1.0, then, is simply the first generation conduit into a wider ecosystem of premium content.  iTunes for the publishing industry, if you will.

Something which finally facilitates a workable model for book and magazine publishers to really exploit the possibility of paid content.  Sure, Amazon has its Kindle and a pedigree in online publishing retail (not to mention the beginnings of an e-book empire) but this is limited by the Kindle reader itself.  A fine device, it sadly falls short of providing an interactive, ‘added value’ reading experience – a void which Apple is keen to fill.

How Apple will achieve this will be down to its clout, established and new business agreements and the fact that it has made a (huge) success of doing the same within the music industry, perhaps even saving said industry along the way.  The traditional publishing ecosystem will be looking to Apple as some sort of savior, a means to finally offsetting the decline of conventional publishing with a new emergent marketplace.

Perhaps nobody else can do this – who knows?

So, whilst the masses may quibble about little things such as the size of the device, or the lack of this or that, the key here is how this ‘first attempt’ device will place the final link in the chain of a truly viable premium content publishing model.  I believe the initial iPads are largely irrelevant in the grand scheme, much as were the original iPods.

The next few months will be interesting times!

h1

Many words saved

January 20, 2010

Thought for the day:

If a picture paints a thousand words, think how many words you can save by creating an interactive prototype of your next software development. Think of how much easier it will be for people to understand what it is that you’ll be creating. Think of how the process of creating and demonstrating your prototype will highlight shortcomings in your design. Think of how much misunderstanding you will avoid, and how that will help your actual development set off on the right path. Think of the how much time will be saved by not building that feature that your users really don’t want. Think how much time will be saved by not missing that key feature that your users really do want.

Many people view software prototyping as something that’s only really worthwhile on larger projects. This couldn’t be further from the truth: prototyping brings benefits to almost any non-trivial software development.

h1

Distracted by Shiny Things

January 11, 2010

This blog likes to talk about ways to improve your chances of delivering a successful software project.  One of our mantras is the use of software prototyping, but a recent conversation got me questioning whether building a software prototype might end up creating its own problems.

“Whoa!” I hear you cry.  Take a second to pick yourself up the floor; calling prototyping a liability on a site hosted at softwareprototyping.net might seem like a rather chilly day in hell.  And you’d probably be right, but I try to present the upsides and the downsides with a (relatively) impartial hat on.  Or at least that’s the plan.

So, software prototyping creating its own problems?  Surely some mistake?

Well, to answer the question: generally, no, software prototyping is usually a highly effective way of steering the early stages of a software project, therefore increasing your chances of success. 

However, if we widen our brief and consider requirements prototyping – i.e. the use of prototyping techniques as a core part of the analysis and specification of a new system – we hit across a small problem.

This is illustrated best with the story of Jeff*, at the time a divisional director in a large financial organisation. 

I was involved in the design of a considerably wide-scoped prototype.
Using the techniques of requirements prototyping, I was able to bring in feedback from users, stakeholders and technical analysts to help shape the design.  This was going rather well; hard work but with each revision showing real progress towards a killer design.  Along the way, however, Jeff started to sniff around in an example of classic hit-and-run micromanagement. 

Despite concentrating on building up the shape of user journeys, exploring the effectiveness of our interface and so forth, Jeff really wanted us to devote our time to ‘making it look just fantastic‘.  Which, unfortunately, involved endless fiddly adjustment to such things as the precise placement of fields, the exact colour of text, whether this image looked professional enough and so on.  All very interesting, but somewhat missing the point of the prototyping process.  All this served to do was divert significant time and effort into polishing the finest details of a prototype whose main purpose lay elsewhere.

On reflection, and in Jeff’s defence, it was pretty clear that he believed in making everything look as slick and professional as possible.  He knew that the project could gain support from his superiors only if the prototype gave the illusion of completeness, and so in a way he was right to push for consistency and professionalism in the appearance. 

Our failing (as a project) was in letting him do this at far too early a stage.  After all, we hadn’t decided if we were going with User Details Capture Journey A, B, C or D at that point, so polishing them all to a high gloss was always going to be overkill.

What I learned from this was that the production of any tangible output – be it a paper design or a full interactive prototype – invites attention from those who don’t understand its role, its place.  Even though they may be senior, important people, they may not be important to the project itself. 

Sometimes, these people get distracted by shiny things, colours, minor details.  This isn’t a problem if they remain as observers or on the fringes of the project, but can be a serious risk if they attempt to push their way into the proceedings.  As prototyping practitioners, such people really slow down the responsiveness of the prototyping process and dilute the benefits of prototyping.  In other words, these people cause more harm than good. 

The skill is recognising these people and finding a way to either educate them to the purpose of the prototype or reducing their involvement/exposure to the team.  If they really must have their fully polished, ’slick’ design ideas visualised, then at least explain to them that it simply isn’t realistic to do this over the entire prototype.  Offer to ‘polish’ up a portion of the prototype once the fundamentals are stable.  In other words, don’t wallpaper the living room until you’ve finished building the walls…

As a final word, don’t take this article as a negative reflection on the use of software prototyping techniques – there are far more benefits than drawbacks…

* name changed to save on blushes and prospective lawsuits…

Here are some links to other articles which might be of some interest if you want to know when software prototyping is appropriate:

h1

Thought for 2010

January 4, 2010

And then one day you find
 ten years have got behind you
 No one told you when to run,
 you missed the starting gun

  - Pink Floyd, “Time

Once again, another year ‘gets behind us’ and another presents a new set of challenges and opportunities.  I’m fairly sure that Roger and the boys didn’t exactly have effective software project delivery in mind when they penned those immortal lyrics, but the sentiment rings true in this field as in many: time passes. 

I don’t mean to be negative, though: whatever your history of software project delivery, that’s in the past, history, done.  The present and the future are the only things you can change, so why not take a critical view of your software development processes and resolve to do things in a smarter way?  Perhaps your change process is a bit flaky, or scope creeps uncontrolled into unknown places.  Whatever your situation, I strongly recommend making a conscious decision to try something new – and software requirements prototyping is one such technique which might make all the difference…

Make 2010 your year of effective delivery.

h1

New Year Challenge

December 31, 2009

If you’ve reading this, there’s a fair chance that you’re involved in the software design and/or development business.  Maybe you’ve read some of the many articles on this site which promote the use of prototyping techniques as a way to deliver projects more successfully, but despite this you’re not yet convinced.  We’ve led you to water, so to speak, but cannot force you to drink…

Well, why not resolve to actually try these techniques on a smaller project in the new year?  Perhaps try the use of prototyping techniques and direct stakeholder and user engagement.  I’m willing to wager that you’ll find it at the very least a stimulating and energising experience, and it might just help you deliver software projects in a more organised and effective manner.

All you have to do is to approach this with an open mind, and give it a chance. 

You shouldn’t just take my word for it – give it a go, and get in touch; I’d love to hear of your experiences (good and bad)!

Have a fantastic Hogmanay and New Year – best wishes for a prosperous 2010!

h1

The Tragedy of Software Development

December 18, 2009

Did you know that less than a third of all software projects are delivered successfully?  By that, I mean on time, within budget and meeting the requirements of the users?  It’s not a great statistic at all.  As an industry we ought to be somewhat ashamed by this. 

The really sad thing about it, however, is the extent to which the remaining two thirds – those projects which fail - might have been avoided.  It’s pretty clear to see that a significant proportion of these failing projects fail for the same reasons, time after time:

  • Inadequate Requirements;
  • Poor Estimation;
  • Low Stakeholder Engagement.

Of course, within each category the usual suspects crop up: lack of understanding of the context of a system, poor communication, scope creep, lack of organisation, corporate bureaucracy, and so on and so forth.  All of these things are common to almost any software project, so an outsider would be forgiven for wondering just why we don’t learn from our mistakes and do something smart to help reduce their impact.

That smart thing, of course, is the process of Requirements Prototyping.  Which is, as you will probably know by now if you follow this blog, the process of creating interactive models of designs and using them to solicit constructive feedback from business stakeholders, users and basically anyone who needs to have a say in the outcome of a project.  Sure, there’s more to it than that, but in essence it is not overly complicated and the benefits in operating this way outweigh the additional costs – significantly, in the case of larger projects.

So, it’s a real tragedy that doing this smart thing is still so rare in modern software developments.  Many companies might toy with the idea of building a prototyping in a half-hearted way, getting too bogged down in the stylistics without really using it as a powerful medium for evaluating designs, facilitating change and clarifying requirements.  Like driving a sports car in a traffic jam, it’s a waste of the potential and a real shame.  To get the real benefit – to get out of first gear, if you will – is to use a software prototype as a living, breathing specification and actively evaluate and refine it, involving all stakeholders.

If you do this, you will certainly increase your chances of finding yourself in that 1/3 of projects which are delivered successfully. 

To pass up the opportunity would be a real tragedy indeed.