50 Ways To Improve Your Software Project

You may be thinking in starting programming something, for work, for your studies or as a hobby. You may also have a software project that is quite successful, but need to go beyond.

This list will help you to reach what you need.

Improving your software will make it compete better with other similar projects, attract more users, and be more widespread.

Bookmark this list and use it for future reference.

Here they are, in no particular order:

Fix Bugs -
This is a must-do update, as bugs annoy your users. This kind of updates don't make new users, though, as new users that are told "Bug X was fixed" tend to think that your software is buggy. If your software is really buggy, your users will really celebrate this.

Not all bugs look so good. Photo by Aussiegall.

Make It Multiuser - A way of giving new life to an application is to make it multiuser. We all like to do things with others. A drawing application can be modified to draw with others, and a coding tool can also be improved so users can code together, as Gobby does.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Make It Web 2.0 / Make It Social - Social bookmarking and communities are very popular nowadays. You can modify your app to work with some social site or use their API to extend your application. One example is the Twitter plugin for Netbeans

Make It It Web3D -
You can make your application include 3D content that is shareable between users. This is an enormous task that requires a lot of work, but it's very stunning for users. An example: classical games in 3D that become mmorpgs.

Add A New Feature -
Users will also like that you add new features. It also gives you a great advantage over your competitors if you add something that they don't have.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Add Automatic Updates -
Automatic updates make your software more secure and easier to use, as users can update it without having to do it by hand.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Make It Modular -
A modular architecture is a good idea since your software can be installed in parts. People can install what they want, and you maintain an independence between components, so you can improve them independently and it keeps a neat structure. An example is my X3DV Module Suite (read also this article).


Integrate With Another Application - If your license and that application's allow it, you can make some kind of feature that communicates with another app and that way you two may benefit of mutual promotion.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Create A Related Firefox Extension - A Firefox extension that works with your application or maybe a small version of it that runs as a Firefox add-on, can be a great feature. To learn how to write Firefox extensions, read this guide.

Add 3D -
Many applications may benefit of a 3D view of what they do. For example, think in garden or floor plan design applications, but also app that display balances, graphs, etc. Wouldn't be better to display what your app does in 3D? One good way is to use X3D, and if you're using Java, the best way is to use Xj3D.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Improve The GUI Usability -
Your application may be fantastic, but it can be so complex for new users that they won't even start to learn how to use it. This may be the most important improvement. Spend more time making your app easier to use (more user-friendly).

Add Buttons, Toolbars And Menus -
People like buttons and toolbars because they allow to work faster. But don't underestimate the value of menus, as many people still need them and are not prone to use toolbars and icons.

Relate GUI Elements Between Them -
Your software project will be more usable if you give the same functions to toolbars, icons, and menus. That way, no matter what the user wants to do, he/she will find it anywhere.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Make A Google Gadget For It - Here you are a starting tutorial on doing Google gadgets. Some big applications have done Google gadgets. People can insert these gadgets on their pages, so it's an excellent promotion tool that also improves usability. Activeworlds, for example, has a Google Gadget.

Google Gadgets. Photo by Silwenae.

Add Autosave - Autosave is highly valuable, specially when your app is a code editor or a text editor. But also other kinds of software can benefit of this. Think for example in the log of a chat application, or autosave in a 3D modeler.

Add Config Options For Performance -
Your user's computers may be very different, so you may add configuration options depending on their hardware. This is highly valuable in graphics applications.

Add A Customizable GUI Option Tab -
People like customization of the software they use. Just being able to change the colors is always welcome. Without having to create or add support for pluggable themes, you can just add some customization this way.

Add User Profiles -
Your application may be used by more than one person at a home. So why not create some support for this? Some examples of apps that have this are Firefox and Trillian.

Add A Chat -
You can add a chat to your application. That way, people may work together or share ideas, and also have fun. Seamless3D is an excellent modeler that was improved adding chat and other multiuser features.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Make It Cross-Platform -
This can be achieved in two ways: recompile it for other platforms, or build it in a cross-platform language, like Java.

Improve Or Extend Already Existing Features -
A way of improving that your users will surely like is extending what it already has. This is a mix of bug fixing and new feature creation.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Make Its GUI Fancier -
Some applications have a very fancy graphical user interface, for example, Spaz. If you're using Java, don't miss this book about creating rich client interfaces.

Improve The Loading Time -
Techniques like lazy loading can improve the loading time of your application. Some applications can offer the option to be loaded at startup and that way they run faster. Netscape 7 did this. If you reduce the loading time, your users will like it, as patience is not too valued as virtue nowadays :)

Improve The Documentation -
Specially if your project is opensource, making better docs is not loosing time. You may also remember to make understandable comments. Read these 10 tips for better documentation.

Improve your docs. Photo by Nufkin.

Make It Faster - You may think patience is a virtue, but... no one has that virtue, believe me. So making your software faster is good. Everybody will like it.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Make It Opensource -
You may see making your software opensource as an advantage specially if you want it to be very widespread.

Make A Premium Paid Version -
As money doesn't grow on trees, you can make a paid version of your free application that adds some features that are worth paying. People may start using the free one and if they have special needs, buy the paid version. For example, the great organizer TreeDBNotes.

Monetize It -
Adding a graphical banner to your free application that displays ads can be a way to monetize it and pay the expenses generated. Many software projects use something similar to this. If the ads are not invasive, users won't complain.

Make It Fun -
An example of this is CloneDVD, in which a sheep eating popcorn appears while a movie is being read. Fun details have a viral effect. People will show others the application.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Add An API -
If you offer a public API for your software, other developers may use it to communicate with your application and create related software. You'll benefit of their success.

Make It Themable -
For example, Firefox has themes, as everybody knows. If you also create some way for people to develop their own themes, it can be a very powerful promotion tool and will also free you from a lot of work.

Resizable Window Components -
Not all monitors are of the same size. Never assume that they are. So if your users can resize them, they will like it and don't complain for this.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Transparent Window Components -
An application with transparent message boxes or dialog components looks more modern and neat.

Another kind of windows. Photo by Torley.

Add Drag&Drop Support - Some users like this and others just don't use it. Add the ability of being able to drag something to the window of your application so some action is done with it.

Draggable Window Components -
Another way of letting your users adapt your application to their needs is letting them drag the components inside your application's window and place them where they like. For example, like Photoshop.

Recompile It With Last Version Of Your SDK -
This removes some bugs that may not be your fault and can be fixed just recompiling with the last fixed version of your SDK.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Use The Proper License -
Think if your application uses the right license for what you want. Change if it's needed. Create other versions or multiple licensing. For example, an application can have a freeware license and a paid license for commercial uses.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Complete Rewrite With Another Computer Language -
The reasons for this may be that you've realized that another computer language is better for what you're doing, or that you want to make it cross-platform with less effort, for example, changing to Java.

Create A Mobile Version -
Mobile phones are something that many people have, so a mobile version will be appreciated, and also makes your app more popular.

Add Brandable Components -
For example, with virtual pets like Clippy. Yes, many of you hate him, but it's fun at the beginning. Think in things that may make your software more personal, warm, emotional... and viral.

Oh, no! Clippy in SecondLife! Photo by Protozoo.

Add Other Output File Formats - This can add a big number of users if the file format added is used by many people.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Add Or Improve The Installer - Add an installer for unexperienced computer users. Improve it making it more automatic or easier to use. Don't let too many things for the user to choose.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Add Or Improve The Splash Screen - Splash screens improve the appearance of your application, they make it more "professional". They also distract the users while loading time. But always allow an option to disable it, as some users hate them.

Splash screen of OpenOffice. Photo by Charl Van Niekerk.

Add Or Improve The Help/Tutorials - Having integrated help is valued by all users. Improving it is also highly valued. Improving the help is making it easier to understand.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Add Or Improve The Wizards -
Small routines that guide the users to use your software are useful and all users like it. Netbeans has many of these.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Add Or Improve The Templates - Templates can have many shapes. If your application is a coding one, they can be templates of new file types. If yours is a design tool, it can be templates for printing. In an AI application, it can be patterns of behavior.

Add Or Improve Palettes And Macros - A macro that allows users to automate tasks, or palettes that free them from typing are highly valued. X3DV Module Suite has a palette of X3D code.
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Add Artificial Intelligence -
AI can always be added to any application. Sometimes it helps you, sometimes annoys your users. For example, in Microsoft Word, Clippy annoys you with what he thinks you want to do. In many multiuser 3D worlds, some artificial agents may assist you and help you.

Agent Smith. Photo by Jimmyroq.

Find New Uses For It - This is a marketing update. You just think in what can be your application be used for, and you show it to your users, for example with a tutorial. Less work than programming. How cool is that?
STOLEN POST. ILLEGAL COPY DETECTED. news.hiperia3d.com
Add Custom Sound Effects -
And I say CUSTOM effects. You may think that something sounds good, but some users may dislike it and uninstall your software just to not hear it again! Let them choose their sounds.


Now that you've reached the end of this list, you can help us all by suggesting more ways to improve your application in the next update.

-Jordi R. Cardona-


© 2008 by Jordi R. Cardona. Link to this post without copying the text.

If you liked this post, get updates of Hiperia3D News for FREE

Be the first to comment!

Post a Comment