Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm currently working on throwing together some basic prototypes, partly to gather requirements and partly to design the final UI.

At the moment I'm trying building up the screen using Post-it notes, with yellow notes for information and pink for actions (buttons or menus). The idea being that you can easily move, remove and add information. But I'm sure there are more efficient methods out there.

What is the recommended way for developers to efficiently create non-interactive UI prototypes?

And why?


I tried some pen, paper and Post-it note versions and they went down like a lead balloon (likely my drawing skills). In the end I used Balsamiq, which thus far is liked by most users and they get it is prototype. Alas, some people are still having problems with the idea that first one should get an idea of what the application should do via some lo-fi prototypes and really want to "see something on the screen" before committing to anything.

share|improve this question
1  
"Alas, some people are still having problems with the idea that first one should get an idea of what the application should do" - actually a dialog editor can be the fastest way to prototype a user interface. It's not always ideal, but so long as you're willing to throw away the first few versions and your customer knows that a screen layout doesn't mean you're 99% done... –  Steve314 May 7 '13 at 12:37
1  
Hi @mlk, I see your question got closed because it was a poll, so I made an edit to the question to change it from a poll asking how everyone does their prototyping to a solid SE question about how to efficiently prototype non-interactive UIs. If I've changed it too much, feel free to edit it further or roll back the changes. I've voted to reopen it, but it still needs some other votes from the community to get reopened :) –  Rachel May 7 '13 at 13:22
2  
Thanks Rachel. It reads much better now. –  mlk May 7 '13 at 13:25

10 Answers 10

up vote 12 down vote accepted

I prefer a whiteboard.

It makes it easy to change as you make decisions without redrawing the whole thing. It's easy to share with other (nearby) developers. It's easy to annotate using sticky-notes or other colors.

share|improve this answer
1  
+1. Get (and then try to hang to ;) two (or more!!) colors of marker. When you switch gears in the discussion (say, when you switch from talking about where the widgets should go, to talking about how they should interact, change colors.) Keep them fresh, so people can actually read. –  Mike Clark Nov 5 '10 at 15:45
    
+1 as well, it doesn't look nearly as fancy as Balsamiq, but the freedom more than makes up for it - no searching for a widget or being limited by what that program has available. –  Izkata May 7 '13 at 16:08

Balsamiq mockups are usually the first port of call, almost as quick as using a pen and paper and reusable.

Plus you can add some degree of interactivity if you wish, linking pages together for example.

http://balsamiq.com/

share|improve this answer

The Pencil Project is a Firefox addin that does nice and simple mockups.

Pencil provides various built-in shapes collection for drawing different types of user interface ranging from desktop to mobile platforms. Starting from 2.0.2, Pencil is shipped with Android and iOS UI stencils pre-installed. This makes it even easier to start protyping apps with a simple installation.

Popular drawing features are also implemented in Pencil to simplify the drawing operations...

share|improve this answer

I use a combination of MS Paint and Visual Studio. I use VS to drag/drop all the controls I want onto a form, then screenshot it into MS paint to rearrange them until I like the way it looks.

This way I can use simple, familiar, free, and always-accessible tools (for me) to mock up my UI, and the client can see the UI as it will probably look once the application is finished. In addition, often VS ends up containing the beginning of my project for me.

Edit: Toby's answer lead me to Balsamiq, and that is now my primary tool of choice for UI mockups to present to other people.

I still pull out MSPaint or pen/paper on occasion, but that's usually only when I'm sketching basic UI design for my own reference, or if I want to present the client with two options for a completed screen (ex. "Do you want the buttons Here or Here?")

share|improve this answer

It sounds like you're using good methods, but you're running into resistance having people accept the utility of rapid prototyping. Everybody loves to code, but if a half hour in, they're still fighting with JScrollBars and you've generated 12 mockups, they might understand that the strength of these tools is in rapid iteration.

That being said, the various low-fi approaches have different strengths:

  • Whiteboard prototyping is useful because anyone can participate and it helps ground ideas, but it's only a discussion tool. You want something one step further if you're going to iterate on a design, if only because it gets hard to erase old marker. ;)

  • Paper prototyping is useful because people understand it is impermanent and open to change, and you can iterate quickly, and you still can get very good results. Do a usability test with some users on a paper prototype and you can get great feedback on a design very rapidly, at quite low cost. People get really engaged when they can see and feel the interface on paper.

  • Balsamiq is a shortcut for rapidly making paper prototypes that are reusable. I print out screenshots and use them as paper prototypes. I also use it during meetings to help mock up ideas as we have them--similar to whiteboard prototyping. I've also used Visio and OmniGraffle for this.

  • Cut and paste prototypes are good for iterating on an existing design--take a screen shot, chop it up in an image editor, and mix and match with new controls (from Balsamiq or elsewhere). Once again your goal is rapid iteration of the prototype, not something that looks good.

I never do prototyping with users. I do it with the design team, based on the user data we have. Users are not designers; if you treat them as designers, you end up with watery tomato sauce, bitter coffee (thanks Malcolm Gladwell), and The Homer car. Gather user input to your design and use it to refine the design with the design team.

share|improve this answer

My first mock-ups are always pencil & paper or whiteboard, but once the basics are nailed down I usually move to HTML. I have a bunch of placeholder images that simply say "Header", "Banner", "Image", "Chart" and the like. Some simple CSS for laying things out somewhat sanely and I'm done. A little JS tacked on to a control can give you some semblance of functionality, and people just seem to "get it" better.

The only problem with this is that I'm probably the world's worst living UI designer, and sometimes have to remind people that I'm just gathering requirements, not showing them what the completed thing will look like. I often set the background to pink or something, so whenever anyone asks "Does it have to be pink?" I can counter with "This is just a mock-up, the real thing will look different" (or "You'll have to discuss that with the designer").

share|improve this answer

I use pen and paper first, then after drawing the UI a few quick times, I try to make it in powerpoint 2 or 3 times. Having 5 or 6 iterations before getting into the actual editor helps me cut down on unworkable UIs (such as generating content Y based on textbox X when the user has not even seen X yet). I see it as a chance to get out the stupids right away.

share|improve this answer

Pen & paper / whiteboard, and you can also use Visio or something similar (Visio comes with UI templates for common controls). Sometimes I take shots of existing (similar) UI that we have and cut and paste the new UI onto it using a paint program like Paint.NET.

share|improve this answer

I've done rapid prototyping in Delphi several times. It makes it easy to very quickly throw together a screen layout, much quicker than in powerpoint or visio. The resulting exe can be attached to e-mails without requiring any dependencies. Since I use it to prototype web apps, there's no danger of people confusing the prototype with a halfway finished version.

I've tried to do the same with Sencha Ext Designer, but the layout system of Ext JS is harder to use, and it felt like more of a burden than a convenience to rapidly iterate ideas.

share|improve this answer

I don't always use the same approach. Some of the techniques I use are (in rough order of frequency):

  • Whiteboard (for prototyping interactively/discussing. Take a photo afterward!)

  • RAD-style GUI designer (Visual Studio, NetBeans, Delphi)

    • Get good at this, and it can actually become one of the fastest ways to create prototypes of a "windows, widgets, and forms" application. Bonus: the prototypes can end up looking really pretty professional, depending on how quickly you throw it together. They can sometimes even serve as a launching point for creating the real thing, once a prototype is approved.

  • Paper and pen/pencil (usually for brainstorming to myself)

  • Static HTML/CSS/JS files on disk

    • I'd imagine a WYSIWYG design application wouldn't hurt here, but I usually just hack on the raw HTML. I don't do a lot of these, anyway.

  • Vector drawing tools - Illustrator / Inkscape / Visio / PowerPoint / Impress

  • Raster graphics tools - Photoshop / Gimp

  • ASCII art ;-)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.