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.

Console app (my favorite), quick & sloppy form, MS Paint (for GUI); what works best most of the time for your standard application? why?

share|improve this question

closed as primarily opinion-based by gnat, Kilian Foth, MichaelT, Dan Pichelman, GlenH7 Aug 10 '13 at 12:59

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

add comment

5 Answers

up vote 16 down vote accepted

Believe it or not, PowerPoint.

I know you may laugh, and I definitely did at first, but there are a lot of great things about PowerPoint that make it a good prototype tool.

  • Easily Deploy-Able - Everyone has PowerPoint almost, so you don't have to worry about unneeded set-up just to get someone to be able to use a prototype.
  • Easy mock-ups - Everyone pretty much knows how to get around in PowerPoint, so it's about as easy as drawing when it comes to creating the UI fast.
  • Interactivity - This is where it gets good. PowerPoint lets you create links on slides that take you to another specified slide by clicking on an area. If you use this metaphor for buttons and other links for your proposed UI, you can set a user down in front of a maximized PowerPoint presentation and have them click away as you watch and take notes.

You can get add-on tools like this to make it look better.

share|improve this answer
    
thats a great idea! –  Morgan Herlocker Sep 28 '10 at 20:42
    
What you describe sounds similar to Hypercard; I didn't know PowerPoint could be used that way. Man I miss Hypercard, that would have been a great prototyping tool. –  jhocking May 25 '11 at 14:19
    
@jhocking - That's pretty sweet. So it's a mockup tool that can turn into an actual app? Is it anything like Microsoft's Sketchflow?: microsoft.com/expression/products/sketchflow_overview.aspx –  Ryan Hayes May 25 '11 at 14:32
    
Hypercard? Oh that's a really old Mac program, as in pre-OSX: en.wikipedia.org/wiki/HyperCard It's a pity that software died because it was useful for so so much, I'll have to look into the options you're pointing out. –  jhocking May 25 '11 at 14:34
add comment

For me hands down it is Balsamiq I love it for a number of reasons.

  • Easy to use - The interface for Balsamiq is incredibly simple and fast for me to pull things together.
  • Looks like a mockup - When showing it to clients/customers/vendors it looks like a mockup, so there isn't confusion that "I'm almost done" or something like that.
  • Looks professional - In addition to the previous point, yes, it looks "hand drawn" but still looks professional.
  • Common UI Controls - Are all available, to quickly build out mockups that resemble real apps.
share|improve this answer
    
+1 Oh, Snap! Mitchel, this is a ridiculously awesome find! Thanks for posting this! –  Ryan Hayes Sep 28 '10 at 23:07
    
thanks for the link –  Morgan Herlocker Sep 29 '10 at 3:28
1  
@Ryan - Yeah once I found this about a year ago, I haven't been able to use ANYTHING else, it is just so good –  Mitchel Sellers Sep 29 '10 at 13:42
    
Oh Ye GODS! This is the best. –  MVCylon May 25 '11 at 14:15
1  
@jhocking - Yes this is possible, all with a nice export to PDF functionality –  Mitchel Sellers Jul 8 '11 at 5:38
show 4 more comments

SketchFlow in Blend is a neat idea:

  • The styles reinforce the idea it's a prototype to stakeholders to manage expectations
  • If you know Blend, you know SketchFlow - there's just one extra thin layer on top that allows you to create "screens" and navigate them easily.
  • Since it's all in real XAML, you can enable interactivity and spend time developing real features that are crucial to the look-and-feel or functionality of the app, like important animated transitions or DataTemplate prototypes (Blend's sample data functionality is great for this). It's got built-in behaviors that plug into the "screen-map" layer of Blend - making a button or link navigate to another screen is as simple as drag-and-drop and selecting a value from a dropdown.
  • It's very tough to reuse a SketchFlow prototype and turn it into a real app - you can usually recycle some visual layouts but only at a basic level. I consider this to be a good thing, because prototyping doesn't put you in the right state of mind for building a real app.
  • You can export the prototype to a self-contained "player" app that only needs Silverlight to run. The player enables all the interactivity and lets you navigate through the app's screens even if you haven't wired up interactivity, and stakeholders can provide feedback through notes or ink markup right on the prototype.

The main problem with it is that it's not purely visual drag-and-drop like Balsamiq, PowerPoint prototype tools or other visual tools, so you need to know at least the basics of Blend/XAML.

share|improve this answer
add comment

I'm a big fan of MS Paint. I like that the poor quality of the doodle makes it easy to throw away and start over. Having used more sophisticated diagramming and visualization tools, I found myself spending too much time trying to figure out how to represent a complex idea when the idea itself should have been simple enough to sketch.

I think it's the same dynamic as a napkin - just getting a rough glyph of the idea is enough to set things in motion. For me, I don't want to touch a diagramming tool until the diagrams are already well thought out.

But may be just me and my strange ways.

share|improve this answer
add comment

Probably depends on what platform you're going to build the app with (A web app? Desktop? C++? Java?), but I usually go directly from paper to the actual platform. Benefits: looks like the real thing because it is, and after you've figured out how to lay out the GUI, just add the needed functionality, and your app is done.

That's called Rapid Application Development.

share|improve this answer
add comment

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