1.
Less is more. Don't let your
application be overwhelmed by hundreds of nearly useless options. This doesn't make for a better application. It simply makes for a more confusing
application.
Microsoft Word, (for example), has more options settings and features than any human could possibly need for simple
word processing. As does
Emacs.
That is why I tend to use
Notepad under
Windows and
Pico under
Linux.
(Bad Programs for this category include;
Sun Star Office,
RealPlayer, and
Netscape). (Good programs in this category include;
Netpositive,
Notepad, and
Tux Racer).
2.
Include the features that people really want. Think about the things that annoy you most about your application, then come up with a simple
solution.
If you are coding a
web browser you should have a button to toggle the loading of
images, and another button that toggles the loading of
pop up windows. No web browser I know of has both those features. Most of them can do it if you dig through several menus, (sometimes requiring to
restart your
browser or even
OS).
(Bad Programs for this category include;
Internet Explorer,
Windows Media Player, and
AOL). (Good programs in this category include;
Winipcfg,
Nesticle, and
Wordpad).
3.
Hide features that don't work. I can't tell you how many times I have seen something like this on a menu, "
Double Mongo Render (Doesn't Work Yet)".
Comment out the code that puts that option on the menu instead of adding the "doesn't work yet" part to the menu. Once you get it working you can
uncomment that part of your
source code.
(Bad Programs for this category include;
DGEN, most
Linux programs, and most
video game level editors). (Good programs in this category include;
MAME,
Winamp, and
AOL Instant Messenger).
4.
Install your application in the right place.Not in the
root directory. Not in a
subfolder of a folder named after your company.
Under
Microsoft Windows the game "
Monkey Party 3" should install to "C:\Program Files\Monkey Party 3\" not to "C:\Games\Coconut Software\MP3\".
(Bad Programs for this category include;
Lucasarts Games,
Sun Star Office, and
AOL). (Good programs in this category include;
Winzip,
Quicktime, and
PC Anywhere).
5.
Set the good options by default.
People should not have to turn off your "
Message of the Day", "
Office Assistant", or "
Database Generation Wizard".
Instead make a clearly labeled button so new users can turn on the "
Features" if they wish to use them.
I sadly cannot think of any applications that are good in this respect. (Bad ones include;
KDE,
Microsoft Office,
Winzip, and
Norton Utilities).
6.
There is no reason for your software to run all of the time unless it has to.
Software that should not run all of the time includes;
Media Players,
Instant Message Programs,
Office Packages, and
CD recording software.
7.
The uninstaller for your program should remove all traces or your program.Including all
registry information,
Log Files,
dlls, and the
directory of the application itself.
8.
Don't invent file formats for no reason. Use
Wav,
Html,
Png,
XML,
Mpeg,
.txt and other
cross platform standards. The only reason you should invent a
new format is if your programs data cannot be represented by an
existing standard.
9.
Don't write software that is jealous of competitors software.Everyone hates browsers and Media Players
battling it out for supremacy on their desktop.
10.
Listen to your users.You shouldn't worry about object
Foo if 9 out of 10 people you speak to have a
concern about item
Bar.
11.
Don't be afraid to try something new. Just don't take it personally if the
Shareware/
Open Source/
Corporate IT Department doesn't like your new idea.
You can always release it as an
add on or
plugin.
< ************** the great self imposed rewrite***************
A very wise editor had started to audit me, and I quickly realized (from his msgs), that I have a lot more bad nodes then I thought. So I am going to rewrite almost all of my nodes (at least the first 500 or so). I will starting at my very first node, and redoing them in order. I will list them here as I redo them. Even my best nodes could probably use a bit of work. So I will leave no node unturned (except my daylogs, which I will simply spellcheck). Comments with stars next to apply to this writeup.
This node was
rewrote
reformatted****************
added to
glared at
untouched by human hands
smiled down upon with great joy and happiness
at server time
Friday, March 29, 2002 at 10:50:37
UPDATE UPDATE
server time
Thursday, May 27, 2004 at 10:32:35 PM
Removed final line that asked people to node their own comments
******End commentary*******>