TOP 10 LIST FOR DEVELOPERS
(1) (a) Be prepared to lose, and don't think you have to be #1 to win. Success takes time.
(b) Take the time to study your competition thoroughly before writing any code. See what problems they're most focused on, and figure out where they're falling short and missing the mark.
(c) Write applications you will actively use. If you're using your own software every day, you’ve got a far better chance of building something solid. Otherwise, developers tend to soon ignore or eventually scrap their creations.
(d) Leave enough energy to actively market what you've written.
(e) Don't think your customers are just like you. The one feature you think superfluous might be essential to an entire group of potential customers looking for the edge your software could provide.
(f) Don't spend all your time adding new features when you should be refining and simplifying existing ones.
(g) If you plan to do this for a living, focus on building tools that make people's lives easier or more interesting, and chances are you'll last longer and find your work more fulfilling.(2) Check for logic and differentiation among keyboard shortcuts in both dialogs and menus. The most common mistake I see with shareware is keyboard shortcut conflicts among menu options and within dialogs. The ALT+key menu letters are easy to forget about. But never use the same keyboard shortcut twice in the same dialog or menu. I'm surprised how many developers use the same letters as many as three times in the same dialog or context menu! Keyboard mapping takes time, so don't be afraid to change or update them in new versions, and always provide a keyboard shortcut map within your Help file.
(3) It's the small stuff that sets you apart from the crowd. For example, (1) consider making your keyboard shortcuts customizable. For good examples, see Bradbury Software's FeedDemon, or Emurasoft's EmEditor and EmFTP. For those of us who can type, the mouse only slows us down. (2) If your app involves text — and this include blogging tools — add a word count button on the toolbar. Many of us who write copy need quick access to a good, accurate word count dialog, especially when your limited to 200 or 800 or 1500 words. And if yours is an app that stays open on my desktop all day, make the program engine fast and its user interface efficient like the XYplorer File Manager. Users notice creativity like is found in apps like XYplorer and the Squeez archiver.
(4) Make your licensing options clear and provide a version update history on your website. A version history lets users get an idea of how often the program is updated and upgraded. The last thing a user wants to find after purchase is that they've stumbled upon abandonware. Time-limited upgrades are a big red flag to users. They feel ripped off by 12-month upgrade limits. They want to feel as though they own the software, not rent it for twelve months. If you upgrade on a 12-15 rotation anyway, there is never a need to alienate customers with time-limited purchases. The money you make will even out over the same time. Subscription licensing should never be considered. Let me repeat. Subscription licensing should never be considered. Users hate the idea and begin looking for alternatives. They also are constantly reconsidering whether they really "need" your subscription with every renewal. Charging for upgrades is expected, but building an app that functionally expires at the end of a subscription period shows a disrespectful indifference to your users.
(5) You are not your code. Remember that the entire point of a review is to find problems, and problems will be found. Don't take it personally when one is uncovered. Still, ignore jerks and trolls because life is too goddamned short. Don't take constructive criticism as personal and stop being so defensive about your app. It is the nature of software that it is always evolving and is never perfected. You wouldn't expect your website never to change or upgrade or even have the occasional misspelling, so why do you treat your software as if it is perfect? Relax and keep planning for the next version.
(6) Actively seek feedback. You built a great app on your own. Now let your users take over and give them what they want (within reason). Most of all, be responsive. If you can't include what users want, at least let them in on your plans for the next upgrade. This will reduce their rant levels and temper their anxiety, allowing their patience to work in your favor. Note: I know many users can be rude jerks. But find a handful whose knowledge and consideration you trust and pick their brains. Most of all, seek diversity of opinion.
(7) Copy the best features of other programs as a start, then go from there. No need to redesign the wheel. Don't focus on a small, virtually insignificant feature at the expense of adding a feature that no one else has. Make what you already have better. For example, dialogs can always be reconsidered and improved: Is your Search, Find/Replace dialog as good as it should be?
(8) Reconsider cost. $59.95 for a single-purpose app is simply too much, as is $79.95 for most budgets. If your application does essentially one function, then it should not cost beyond $15-$30 at most. You will sell twice as many licenses at $30 than you will at $50. If however, you are selling a Lifetime license to your app like WinRAR or the XYplorer File Manager, then by all means, charge more, or even triple the price. UltraEdit offers both a 1-year license and the option of a Lifetime license. If your app stays open on the desktop most of the day, then by all means charge a fair price compared to your best competitor in your software category. Sadly, when you charge too much, it invites piracy and sends users rocketing toward freeware and open source substitutes, no matter how good your app is. (And the jerks who pirate software will continue to — it's part of every business since the dawn of time.) Odds are you won't become fabulously wealthy writing code, so if you want to make money over the long run and not kill the golden goose, make it on the upgrade, not on the initial sale. If your app is good, I will be happy to pay 40-50% for a substantive or periodic upgrade. Also, don't forget exchange rates when calculating prices. The Euro is the world's strongest and most preferred currency online, but when it costs twice as much to buy in CAD or USD, it forces users to look for more affordable alternatives.
(9) If you want to limit the trial version of your program, select a usage over a date limit. That way, if I leave town for a couple of weeks, I'm not screwed out of testing your app, and you're not screwing yourself out of a new (registered) user. If you choose a date-limited trial version, be generous: 21-30 days is fair. Also, consider offering separate .exe's between the trial and registered versions of your program if you suspect piracy or find your app cracked and uploaded to a Warez site.
(10) Finally, never disable or limit the features of your trial versions! This prevents users from comparing your program's full features against another. Users have lots of choices in every category of software. If you pre-emptively decide what features they cannot test in the trial period, then there's no reason to take your software seriously. No "handicapped" trial software ever makes it onto The Great Software List. Better that you restrict the trial period rather than limit functionality.
x
TOP 10 LIST FOR USERS
(1) Communicate and donate! If you use freeware or Open Source software, make a donation in support of its continued development, and simply in appreciation. Few users realize how much blood, sweat, and tears goes into any good program — especially one that is actively developed. If you use it through an upgrade, make another affordable, modest donation to encourage its continued development. In other words, donate what the program is worth to you, not what it costs you. We all love freeware, but stable, useful software is worth supporting, and by donating small amounts — $5-$20 — you won't notice it in the pocketbook. Many Open Source projects have to pay for wiki and site hosting costs even though they're considered "free," but a good rule of thumb is to give what the program has saved you in the cost of commercial software. And if you cannot afford to donate a small amount, write the author a brief note telling them how you use their program and how much you appreciate it. Feedback is always welcome, but as Gerald Weinberg instructs, remember to critique code instead of people — be kind to the coder, but not necessarily to the code. As much as possible, make all of your comments critically honest amidst a positive tone, and always oriented toward improving the program. Relate comments to specified bugs and omissions, local standards, program specs, increased performance, etc.
(2) It's okay to download a program to test, but if you are going to use the program beyond its trial period, pay for it. Piracy hurts the small developer most because they lose enormous of money because of it. Shareware developers can't afford to track down and sue everyone who steals from them, let alone track down people in countries like Russia who host entire websites of pirated software. We don't want all our software to come from Microsoft and Adobe, now do we? So stop that behavior when you see it.
(3) If you're wary of trying new software, write tech support or customer service to find how long it takes to receive a response. Ask a legitimate support question about the software itself or their licensing options. Be brief, but descriptive, and always include the version number and the specific OS version you are using. If the company is unresponsive, do not buy from them. Also visit their support forums to gauge their activity and honesty. Some software companies do not allow criticisms of their programs to be posted in their forums. If this is so, then caveat emptor if support is essential to your assessment.
(4) Test, evaluate, and compare! Don't buy the "Pro" version if you don't need it or are not going to use its features. Also, if an app is on version 3.91, wait until 4.0 is released to purchase if you can.
(5) If you find a good program and like it, visit the download sites such as CNET, FileForum, Version Tracker, and SnapFiles and write a review of it. Also, share what you've found and what you know with others in forums, such as DonationCoder.com. And never, ever write something that conveys no information, such as: "This program sucks. It trashed my system." Consequently, read a wide number of reviews to get a feel for how others like the program, and to discover its shortcomings.
(6) Consider your skill level and budget. Don't buy Adobe Photoshop if you're a beginner. On the flip side, though, don't buy crap. If it's an application you will use everyday, buy well. For example, if you're going to use a text editor for a variety of tasks such as I do — from email composition to copying/pasting to lists and outlines to stripping HTML code, then don't settle for the freeware version. Consider the best: UltraEdit, EmEditor, or even PSPad. Same for other software categories.
(7) Use software to expand your skills, save you time, make your life easier. This is especially true for add-in programs such as Visual Thesaurus, Power Utility Pak, statistiXL, and select file utilities.
(8) You're not a hammer, so stop seeing all software as a nail. In other words, don't use a desktop publishing program like PageMaker as a word processor, or obversely, a spreadsheet to do note-taking and outlining, or a spreadsheet like the one included in Microsoft Works to do database work. And for vishnu's sake, don't expect your PIM to double as an FTP client. Be realistic.
(9) Learn about the software you use! I know hundreds of people who "use" Word and Excel, and have done so for more than ten years at work and home. But they can't "bother" to take time to learn about the programs enough to solve many of their own self-caused problems. Buy books and read them cover to cover quickly — in airports, the bathroom, while waiting in long lines and so on. Mark the pages you want to come back to and work though once back at the computer.
(10) If you find great software, share it with others — not the registered or cracked version, just the trial version. Tell the world what you've found. Support great ideas in software, and do so by helping others become as sharp as you are at finding great software.
© Access Foundation 2008