Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Software

Journal c0d3h4x0r's Journal: Software

All software should be simple and painless to install and use. There's no good reason to make it more difficult to use than it has to be, even if your target users are smart. If your program cannot be easily used without having to invest longer than about 30 seconds reading something, then you haven't done your job right.

There's a huge difference between making a program try to outsmart its user and automating mundane tasks. Microsoft Word pisses people off by trying to guess what you want and getting it wrong. But Word also makes it painless to quickly search-and-replace all occurrences of a phrase throughout a document. Software should always automate, but it should never try to be smart.

All software should be responsive. There's no excuse for making a user sit and wait 30 seconds after they've clicked something for the software to finally come back and tell them anything useful. Adobe Photoshop is a great example of how to do this right: some processor-intensive operations will just have to take a while, so put up some kind of responsive and accurate status indicator to let the user know that the program is actually working on it and to give them an idea of how much has been done and how much is left to go. Don't just stick up an hourglass and then let your entire application UI appear hung while processing. Ditto for disk access or any other time-consuming operation.

Source code should be cleanly organized so that it's feasible for a human being to easily maintain it and visually verify its correctness. There are no validation tools in existence that can guarantee a program is bug-free, so we have to rely on human visual code inspection for quality. So make your code readable and understandable. If you have to do something clever or hacky to optimize performance, add comments liberally to explain it to a newcomer.

Form should follow function. This is true in all types of software development, from video games to web pages.

There's nothing wrong with demanding compensation for your hard work. But you should also always keep your users in mind, and give them every freedom that doesn't directly conflict with your right to be compensated. And if it really wasn't much trouble for you to write the software, or you did it sheerly for the love and learning of doing it, you should really release the source code and use some kind of GPL/BSD-styled open-source license to guarantee that your source code will remain available in the future for the benefit of humankind.

This discussion has been archived. No new comments can be posted.

Software

Comments Filter:

"I've seen it. It's rubbish." -- Marvin the Paranoid Android

Working...