How to Make Money from Software Development

Introduction

Software production is one of the main income sources online. The reason for this is simple. To be online you need a computer of some kind and computers use software to run. Being a marketer, this chapter will give you a complete "How to Earn Money from Software" blueprint. I've kept the tech talk to a minimum while focusing on the overall picture.


How to Make Money from Software Development

This will make it easier for you to turn the information into your new source of income! By creating your own software and having it displayed online you'll be targeting one of Internet's biggest target groups, The computer software users. They come in all ages and shapes from all over the world and millions of software downloads are made each and every day making software a safe bet when it comes to earning money online. 

By having your own software, targeting a need among computer users and automating the selling process you'll have a money making machine in place that can make you $100 and more on a daily basis The information you need to make this happen is being presented in the 7 parts of this chapter. 

All parts are important for you to read before you begin the production of the next best selling software! 

Here are the seven parts of this chapter.
1. Need an Idea 
2. Investigate and Test 
3. Do it yourself or Outsource 
4. Documentation, Help and Presentation 
5. Packaging and Installation 
6. Security and Theft 
7. Promotion and Sales Process.

Using this information you'll have what it takes to start earning a daily income from your own software.

1. Need an Idea!

You can't create a program out of thin air and expect anyone to buy it. You need to use two of the strongest known motivational triggers for humans (Need & Greed) as a starting point for your new software. There are of course a number of other focus points when creating software but most of them can be included in one or both of the mentioned groups. Here are a couple of examples:

1. Need

When you are online sending emails, running newsletters or ezines you end up emailing a lot of people. Writing text is, by itself, no problem as most people have some kind office software with a word processor included. Or you can go the cheap but easy way and use Notepad or even Wordpad (in Windows) as they are included. So where is the need then? As soon as you start sending emails to other people you'll trip over what seems to be a very silly problem, row formatting. 

You know those emails that have rows going way past your right margin or jumping to a new row after just 4-5 words, making reading almost impossible (loosing readers and ultimately sales)? 

This problem has been the starting point for a lot of tools, utilities, scripts and even software. To see an example of a software program created completely bottom up, starting with the row formatting feature as the main feature and then expanding go to http://www.zineypro.com. Ziney Pro was created in its' earliest forms to facilitate text row break formatting based on characters per row and nothing else. The need it has addressed was the need "to format rows based on characters per row". 

Ziney Pro also falls into the categories of helping with complex (or time demanding) tasks, saving time among others. The earning potential here is based on lower priced software with higher quantities.

2. Greed

People love this! Greed, as in earning money is a strong motivator. But what is even better is "earning money with little or even no work"! The demand for this type of software increases by the minute. The demand for software working for you and "earning you money" is what everyone wants! In this category you often see quite expensive software. This category is also the most short lived one as this type of software often targets the use of back-doors into earning money and they tend to be closed after a while. One example of a software that is directly aimed towards "greed", "making money" and "Saving time" can be seen here, http://profitpages.gurusay.com/ . 

This software directly plays on the visitors urge to earn money with as little work as possible as it promises to create product review pages with Adsense in only seconds. I'll end this part with some other starting points for software creation ideas generation. 

Use these phrases as starting points for finding a good software creation idea. 
1. Make things easier 
2. Repetitious tasks 
3. Complicated tasks 
4. Make up for lack of knowledge 
5. To automate tasks or complicated repetitious work 
6. People complaining about something, the software solves the problem 
7. People asking for how-to's

2. Investigate and Test

The next step is to gain a better understanding for the market. Look around, with the new need in mind, and see if a solution can be found elsewhere. If not then you're really onto something! If you find products targeting your need (or reasons for creating the software) search the Internet for more information about them. 

If possible try them out or at least read through the sales page (print it out) to get a better feeling for what they have done. Use the sales page as a base for your idea and thought. Next decide who the customers are, where it's sold, domain names, price levels, features, bonuses, guarantees and other relevant information. Now take a step back and consider your idea. 

Can you fill the need in such a way that your product is something more than a mirror of the one (ones) you have already found? Make a plan covering how you and your product will be able to distinguish itself from the competition. Make sure you have your "future customers" in mind when you do this. Because you want to be different and use your special features as something important. 

This will give you a better branding position and it also shows  your customers you're unique in your own way. When you have a plan of the features, price point, and possible customers you should make sure you write everything down as a business plan. 

Operating Systems and Program Types At this stage you'll have to consider what your target operating system is. Targeting multiple operating systems is harder with a desktop application than for scripts like java or php. The most commonly used operating system is windows and should be the primary target unless your product targets a niche where your future customers use other operating systems. Choosing windows as the target platform will give you the largest possible customer base. 

The last versions of Mac operating systems and Computers will allow their users to run windows program quite well with windows emulators and this increases the market even more. When it comes to windows most versions will work in more or less the same way. Do note that there are differences between versions of windows as NT 4.0, Windows XP and Vista. 

And for each version you'll find differences between the normal customer version of Windows and the Server versions. But there's not room in this chapter to go into all the differences, so if you want to learn more, visit Microsoft's homepage. The rest of this chapter is primarily focused on windows as your target operating system.

3. Do It Yourself or Outsource

Now it's time to have the program done!

Do you program yourself?

If you do, then make sure you use a commonly used development language like Visual Basic, Delphi or C++. (note! There are many different types of these languages, for example C++ but I'll leave that choice up to you!). Use your previously created "business plan" and the list of features to plan your software. IMPORTANT! When you code (or if you outsource the coding) make sure the code is extensively documented. 

I recommend buying a book where best practices in commenting source code are taught and that you document accordingly. I can promise you that code you create today will look strange in just a few months from now. And some software projects lives on for years and have new code added to them for each new version. Not having documentation will kill you and your project.

Why do it yourself?

You might be good at programming or just very interested. Just to be clear here, the simpler code a program has, the easier it is to keep it working well. Modern software is largely built by pre-made code that is included automatically by the development package (Visual basic, Delphi, C++). This makes it easy for you to create small simple programs with a minimal amount of work. 

Actually the idea is the biggest part of the creation! Doing it yourself will get you a better feel for and give you more control over the project. This can be good or bad depending of the type of person you are.

Why Outsource?

Outsourcing saves time (maybe) and it's easier to agree on deadlines for others and have them meet the deadline than actually keeping your own deadlines. Do not forget that outsourcing requires more detailed pre-coding work. If you think about it, you are going to ask people that have no knowledge at all about your ideas to give you a quote based only on your description.

A detailed and correct description of the project includes deadlines, choice of language, usage of third party libraries, exact description of what the program must do (and shouldn't do!) Guidelines on how commenting should be done is a must and you will still often end up bouncing messages to and from the coder to change and correct things that were badly explained or misunderstood. A final piece of advice is to take an extra look at the legal aspects about source code rights. 

Your project must clearly state that the coder must hand over all source code and rights to you and that he/she doesn't retain any rights to it after the payment is done. Always ask for 
the complete source code (in readable form, not encrypted) and it should be well documented. This way you'll be able to revise the code and fix bugs as well as continue developing the product. More information about finding people to do the coding for you as well as help on the legal aspects can be found at http://www.elance.com/ and http://www.rentacoder.com/

4. Documentation, Help and Presentation

Most software will need some kind of documentation to explain what it is and how it should be used. One way to make this work faster is to actually use the "business plan" you created earlier and the part you should have done about what your program should do. As you get better at this you'll cut time enormously with this trick.

How to ship your Documentation files.

Documentation and/or help files can be shipped and handled in many different ways. Here are some of the most commonly used. · As pure text files · As pdf files · As chm or hlp files (windows help files) · As html files (shipped with the product or online on your product's domain) Normal documents to include with software are, a short welcome and introduction about the setup; a document stating the user rights normally called the EULA (end user license rights) shown during installation if the installation process is done using installation packaging software, (see the next part of the chapter), a start up guide and possibly some kind of tips & tricks document or section.

Presentation

The presentation is important. The domain name, the sales page, graphical elements on the sales page, the visual aspects of your software (try to follow industry standards on how menus, layouts and other technical aspects of the software is used), possible startup splash screen, the way installation is done, the order among the files, the file names and the overall feeling of the product when the customer has paid and begin the download - all of these elements should be presented professionally and in a consistent way. 

Do not forget everything between the moment the customer clicks the "buy" button on the sales page and the actual first start of the program. Your customer will have to pay, possibly fill out some kind of registration information, download the software/package, save it, find it and finish the installation before they can start using it. During this process the customer will jump between a number of web pages and be doing a number of different tasks. So check out the complete sales process and make sure it works, looks good, is easy to go through and do not forget to let your customer know how they can get in contact with you if they have problems. 

In fact this should be part of the sales procedure directly at the point of download or earlier. Decide early on if the product should come with support and if you'll be offering free upgrades. Many small software projects will be so simple that there's no real need for a normal support function and this is something to aim for in my own humble opinion. At least until you start making a more stable income that allows for a larger amount of outsourcing. What can become an important income source of support is a forum for your products users. Some products lend themselves very well to this while others will not produce even one forum signup. Trial and error can be the way to go. This can create additional sales and more customers.

5. Packaging and installation

There are several things to consider when you start to prepare the packaging of your new or upcoming product.

1. Is it a single or a multiple file product? 
2. Can it be run straight from where it is saved? 
3. Are there special files that need installation? 
4. Files like dll files, services and more will in many cases require special registration in the operating system as well as re-boots?
5. Will you offer an installation package where all files are contained in one package and is installed into the control panel with an install/uninstall option? 
6. Can a zip file containing all the files of you product be shipped and have the user simply unzip it to get going?

Ease of Use and Perceived value

I and many like me would say that much of a products value can be found in the installation process as well as in the first start of the program. If the user has to read lengthy instructions and do a lot of manual labor (often quite technical in nature) the new customer tends to perceive the product value to be lower. This is not very strange. Compare 1 hour of reading, unpacking files, copying files around, creating shortcuts with double clicking on the installation file, answering yes a couple of times and end up with a nice program group with menu alternatives for starting the program, reading a help file and even uninstalling the product. 

This problem is more common when you sell scripts. Often a script will need database access with MYSQL being the most common database to use. Many scripts are packaged in zip files with instructions on how to manually (using a ftp program) create a file structure on the server and copy the files there. User rights will almost always have to be changed and the user will have to create the database and database user manually. This is a slow and for many, a very complicated procedure. There are ways to automate this or at least as much of it as possible. It should be considered. 

Here are a couple of commonly used tools for creating installation packages for software of all kind. Installshield, a market leader for many years. Quite Pricey. http://www.macrovision.com/products/installation/installshield.htm Advanced Installer, comes in various shapes and prices. Have a free version http://www.advancedinstaller.com/ Conclusion, make the installation as easy as possible for the buyer and they will feel like you have taken care of them and your product will retain its perceived value (or even raise it) all the way to the first start.

6. Security and theft

Should you be worried over people pirating your new product? The answer is yes. If you create a product that works and have a wide pull of customers or if it's very expensive you'll end up seeing people copying it and sharing copies. Or even worse watch other persons selling your program as if it was theirs. So how can you protect your software? 

I'll measure each way of protection on a scale from 1 to 10 with a 10 being completely secure.

1. Package it inside a password protected zip file. Easy but gives you almost no added security. Security level 1.

2. Store it inside a password protected directory on the server + inside a password protected zip file. Harder to spread the download url and a very limited security level. Security level 1.

3. Use some kind of third party product to include security inside the program itself. This allows for creation of serial numbers based on user information, hard disk serials, motherboard bios and other computer related numbers. As you include the security checks inside the program you as the creator can use it in many more or less complex ways to ensure security. This serial number calculation is run once on start and as soon as the correct serial number and related information is entered into the software it runs without any further questions. Security level 3.

4. The same option as 3. But with the added twist of having the software connect to a server on the internet on each start (there a lot of options here to allow for running without an internet connection) and having the registration information and serial number checked. This requires added code into your software + some kind of third party service for the server storage and verification of the registration. Security level 6

5. Using a file certificate based file encapsulation software with anti debugging protection combined with 4. Above. Security level 8.

6. Adding the whole tamale here. Combine 1-5 with hard ware locks (dongles) and your getting as close as it gets within any normal cost limit (i.e. Extremely costly). Security level 9. 

Note! No method was labeled a perfect 10. There's hardly any software that has been able to survive without being copied and to even try to reach that level you'd probably have to be selling a software for several thousand $'s or more to have the back end profits to take the costs. Now to the fun part. Some examples where you can learn more about the security options above!

What you need for each security level above, 
1. All you need is the ability to create zip files. All software capable of creating a zip file can add a password as well. 

2. You need the zip file creation program + the knowledge of how to password protect a directory on your server. This information can be found for free on the internet. 

3. Third party libraries you can use to protect your software will make life much easier for you. Here's an example of a product for Delphi, Borland C and Active X, http://valega.com/ 

4. Take a look at Digital River. http://www.digitalriver.com/ They can help you with this and more! 

5. Silicone Realms Armadillo and Passport products can help you reach close to perfect security. They have great products and they are quite easy to use. http://www.siliconrealms.com/ Their products can also be combined with Digital River saving you a lot of time and money if you're aiming for an expensive product where great security is needed. 

6. Combine everything above. One thing I haven't included above is that the best way known to man to completely blow "thieves" selling copies of your software out of the water is... Updates! They only have a copy to sell and will have to "steal" a new version every time you update for them to compete. So keeping in touch with your users, creating updates as well as tips on how to use the product mixed with a gift every now and then will pull buyers to you! As a closing tip here I'd like to show you a site very few have seen! 

You could almost call it a trade secret if you want. Visit http://www.esellerate.net/ and check them out. They are a combination of PayPal, Clickbank, Digital River and many other services online. You can host your software with them and they will create the needed serial numbers for the armadillo security products on the fly. You can be sleeping while people buy your product and have Esellerate calculate unique serial number for each and every one of your sales, completely on auto pilot. I do have to say that the affiliates are not as responsive as the Clickbank affiliates but that can depend on the niche your product belongs to.

7. Promotion and Sales process

You'll need someone to take care of your credit card handling when you sell. The most obvious choices for this are http://www.paypal.com/ , http://www.clickbank.com/ and http://www.paydotcom.com.

How to make sure your program is seen!

Depending on the type of software the path to start selling can be quite different. If your program is more mainstream you should submit your program to as many software directories as possible. Some well known examples are http://www.downloads.com and http://www.tucows.com/ You can look around for these directories and submit your program to them by hand, one by one or try submitting software like http://www.softwaresubmit.net/details.htm to make the submission faster and easier. 
These sites also have more detailed information on what you need and how to do the actual submissions. 

If you have a more "niched" software or if it's directly aimed towards earning money, internet marketing and similar the old proven affiliate way will probably work well. Add the program to Clickbank, esellerate or set up a sales page where you use PayPal to charge the buyer and some third party script to handle the affiliate tracking. Information about this can be found in this blog as it's the same as for selling any other digital product.

Now my Final Advice!

When you have gone through all steps in this process and have everything in place you have the basic setup ready for your $100 days (and more). To really get the ball rolling read about list building, traffic generation and Search engine optimization and other related subjects to start pulling in possible buyers to your new site. 

Read up on copywriting (for the sales page) and see if you can get something to use as a bonus (or create it yourself). Test with different price points and you'll be well on your way towards your new software empire online!

Get "Make Money" Tips and Idea in Your Inbox
For More Cool Tutorial and Guide