views:

254

answers:

12

Imagine that you have the next silver bullet software idea and you are a terrific programmer but you don't know a thing about Photoshop and colors stuff.
Do you hire a graphic? Do you steal from some free templates?
Do you have any advice to handle this common problem?

EDIT:
My question is on GUI in general: Web, Desktop or Mobile.

A: 

I guess this depends strongly on the type of user interface you want to create.

  • If you want to create a UI experience akin to e.g. Ableton Live, you'll most likely need some graphics / designer people. In the case of Ableton's Live, it shows that the UI designers knew what they were doing... it's an awesome UI.

  • If, on the other hand, you are creating some business software with a fairly standard UI (i.e. some forms, tables, data grids etc.), you'll probably be fine doing it yourself.

stakx
+4  A: 

Build a command-line application and make it so your programs have an API that have enough hooks to allow other people to write a GUI application just from the API. Someone else would build the GUI for you. At least that have worked for a good many open-source applications, so open-sourcing your program might be a good idea as well.

Lie Ryan
This is exactly the approach I prefer (particularly as a user of other people's software). Provide a rich CLI and API and let others build other UIs (Web and GUI) around that.Where possible offer the option (in the other UIs) to see the command line that corresponds to a given chunk of the UI (i.e. a "user add" dialog could show you the `useradd` command that would equate to a submission of the form). Also having an index "fast access" dialog in the UI (enter a command keyword to bring up the correct dialog/panel, whatever in the UI) would be nice.
Jim Dennis
@Lie That's a pretty good advice, but if you have a good good idea probably you are going to think twice before open source it; in other terms, your approach does not solve the problem :).
systempuntoout
@Lie: Well, the same layer separation holds for non-open-source programs. Just that in the latter case you have to pay people to work on the GUI.
It's great advice, look how successful Linux has been on the desktop and how many people secretly wish they had Linux machines.
Frank Krueger
Nobody wishes to get a Linux machine because people that wished one can *easily* download and install one, wish solved. I have Linux laptop and use it for day-to-day usage; while the Vista install that comes with my laptop is collecting dust in the harddrive.
Lie Ryan
A: 

Depends on what you need. If it's just icons for menu items and buttons, there are plenty of free resources out there and even one or two search engines. If it's a fully blown marketing website, you better hire someone who knows what he's doing.

shoosh
+5  A: 

From my experience, if you want professional-looking software (specially in the web), hire a pro designer.

Carles Barrobés
From your experience, are you going to spend much for a pro designer?
systempuntoout
How much you spend in development as well as in design depends on your expected profitability or how much economic risk you are willing to take. Depends a lot on how you want to distinguish your site from others, how complex the site is, your expected audience...IMHO, if you do web applications, using a template or trying to do the design yourself by copying ideas from a few good-looking pages will probably make your site look average at best, or amateurish at worst, compared with the look of a good custom design. An amateurish design may drive people away from your site.
Carles Barrobés
Non-web apps (e.g. desktop GUIs) tend to be more standard-looking and not so visually striking... for that environment, an app that looks "correct" and is usable may cut it. Creating a great personal GUI (like the Ableton GUI mentioned below) tends to be much more costly (custom GUI components) and therefore fewer companies invest on that. It depends a lot on the target audience (big difference between "business" or "arts"...).
Carles Barrobés
A: 

Typically the design is not that important. Take an application like the terminal or Firefox: Users expect the standard colors and standard design elements. You can always look at other programs and let them inspire you.

But if, for some reason, colors and design are really important for your application and you don't know much about it then of course you should ask around and get a designer to do the job.

@Dehmann I agree, is not that important (Delicious.com had poor graphics since V1 but it's a multimilions worth idea) but gives appeal to the application and makes it look more professional.
systempuntoout
I can agree with it too. Look at google, you can tell that's a developers site. All functionality, little design. Beside's i worked for a web firm for a year and the designer I worked with said that simplicity is always better then a over complicated design. Even the most simplist design. You can see alot of it in the most professional designs.
numerical25
@numerical25: Yes, I think simple designs are the best, but I think creating a beautifully simplistic design (like Google's) is actually pretty hard.
Firefox default is plain because if they had shipped with a default graphic too fancy, corporate users may dismiss Firefox as personal-use browser. But, as always, with Firefox's addons and themes and Persona, you can make Firefox as fancy as you like. Simpler is better in GUI design.
Lie Ryan
Why the downvote? My answer pretty much says exactly the same as Kirk's accepted answer.
A: 

There are tons of premium templates you can by that wouldn't be neccesarily stealing as long as you pay for them. I know there are tons of Admin templates out there that look absolute amazing.

numerical25
A: 

Consider implementing your software as a service. Perhaps a web service but even something that home baked with a socket based interface can do well.

frankc
+1  A: 

Creating GUI applications doesn't always require graphics design. The buttons, checkboxes and scrollbars are built in to the OS. Of course you do need to determine how to lay them out, which can be very difficult to get right. I'd try to create the GUI in the programming language you're using, and then ask for criticism from other people. You can always decide to hire a professional GUI designer later. It will save you and him/her a lot of time if you already have a GUI. It's much easier to get your ideas across if you have a prototype to show.

Jules
I know that you have out of the box widgets.But then you have to lay them out or even worse, customize them with theming and so on.
systempuntoout
A: 

Since you don't say if it's desktop or browser based, I'll take a stab at desktop.

I liked Lie Ryan's suggest to make it a command line program with a really good api, so that others can build a gui. A very unix-like approach, which also allows the input of other programs to pipe into yours and the output of your program to pipe into others.

If you want something extremely professional, Microsoft have spent hundred of millions watching how people use programs and refining their interface. Recommended reading is here http://msdn.microsoft.com/en-us/library/ms993296.aspx I guess that would go for platforms other than windows.

Now, that refers to design/layout of controls and, to some extent generic program operation. I am not sure if you want that, or just a program to help you build GUIs.

Whatever you do I would *strongly*advise you to keep your program like pothers - like people have gotten used to. E.G a "file" menu on the left, even if you don't do anything with files. It probably ought to have been called "application", but it's too late now, people expect "file". "Help menu on the right". Dialog boxes with Ok on the left (as default) and cancel on the right. Hot-keys for the rodent-phobic, etc, etc.

Now, if what you want is just a RAD GIU builder, then check out the free edition of Borland Delphi 7 if you like Pascal or are afraid of C+ (I personally prefer Borland products because of the thousands of free components available; I am unaware of any competitor with so many, but would be happy to be corrected).

If you are comfortable with C++, check out MS's free C++ RAD GUI at http://www.microsoft.com/express/Downloads/ or QtBuilder, which is free and cross-platform.

Of course, if you want cross-platform you can also use Java. In any case, look at NetBeans, which supports many languages.

And if you use Linux exclusively, I would recommend KDevelop, even if you use the GNOME desktop.

I may have answered the wrong question here, as the original was not very clear, but I hope that this has been of some use to someone.

Mawg
+5  A: 

Build the GUI so that it is functional. If it works well - simple, quick, intuitive - then that is the best UI you can hope for. If it's a successful idea then you can make it pretty later on.

If you need to make it pretty, then get a designer to help you. Either to give a design that you can then follow, or to actual develop the whole UI (which will be more expensive).

Kirk Broadhurst
And make it simple ;)
M28
+1  A: 

User Testing.

I cannot emphasize how necessary this is. Build a prototype GUI, put placeholders everywhere you need to, and get everyone you can to try it out. Listen to what they say, add or remove what they want, and repeat.

Nikwin
A: 

You can go very far on your own with tools such as Interface Builder or QT Creater. They help you follow some basic rules: how to space controls, buttons, text fields... It's super-easy to move things around, so you can iterate and find out an arrangement that is pleasing to the eye.

If that's still not good enough, try to get help from a designer. I'd try to find a friend of a friend, or a student. You don't have to spend $10K for a pro to fix your GUI, unless you can afford it.

I somewhat disagree with other advice saying that you should just provide a great CLI and let others add a GUI to it. Imagine how that advice would have played for iPhone touch-heavy apps :-) Unless you are designing a batch-mode video compression algorithm of course.

Alain