Ask HN: When are GUIs important?

2 points by dunstad ↗ HN
As a consumer of software, everything I use is GUI-oriented; however, as a newbie programmer, all the emphasis in my reading is on the functionality of the program. When are GUIs important?

4 comments

[ 6.3 ms ] story [ 29.9 ms ] thread
The emphasis on functionality reflects the nature of the job. Software is generally like an iceberg in terms of time and complexity. The part you see is supported by a much larger chunk that's generally invisible. When you're starting out, it makes sense to focus on the larger, supporting part.

How important a GUI is depends on the nature of the program. A significant chunk of the world's businesses depend on apps that have no GUI while more or less everything consumer-facing has a GUI.

It all depends on who's using your software. I work on both the front and back end sides of a product at work. Generally if there is bug it's pretty easy for most to determine if it's the front or back end that messed up, and yet the customer blames EVERYTHING on the front end. It's not their fault either - they just aren't aware of our architecture, and probably never stopped to think about it, nor should they have to.

Keeping this in mind, you need to have a reliable back end, and a functional, presentable front end. The GUI doesn't have to be anything spectacular, just well organized so things make sense. Take this website for example - nothing fancy about this GUI. However, do spend some time making it organized and easy to use since that's what everyone will see. Worst case scenario, hire a designer from a local community college or elance.

Here's some general tips to make your GUI more presentable: 1. Form fields should line up, and generally they should be the same size. Don't have some indented and others not. 2. Try to keep your forms balanced across the page/screen. Scrolling down forever sucks, so distribute placement evenly. Similarly, horizontal scrolling also sucks so avoid that as well. 3. Try to keep user inputs to a minimum. People are lazy. 4. Use colors that work together. When in doubt, leave it black and white. Check out http://www.colorschemer.com/online.html 5. Use colors as indicators. Green = success, red = failure 6. Be consistent.

If you want to read an awesome book about designing GUIs try Smashing Magazine's book: www.smashingbook.com

Wow apologies for the horrible formatting. Another lesson learned the hard way.