Let us take each of these and work through different parameters such as ease of preparation, specific needs and customization abilities, and so on, including the cost of doing these.
The 4 main types of software release mechanisms that can be made are (others can be a type of customization of these):
- Release on a media such as CD/DVD. These are a continuation of the earlier strategy of releasing the software on floppy disks and the like. The software application needs to be made in a manner that it fits the DVD mechanism, typically some kind of ISO disk based structure. The software products that I have seen take a typical software installer and create a DVD installer from this structure (would need to even create different mechanisms for Win and Mac if required). CD/DVD are seen as something that are required if you are trying to sell your product through the normal retail mechanisms (through electronic retailers and even through online mechanisms - for example, you could go to Amazon.com and order a copy of the software you want, and the software DVD gets shipped to your address). The customer experience is the simplest in this kind of mechanism, whereby the customer pops in the DVD into the computer, a window pops up asking the user to click on a button (or a number of buttons), and the software gets installed onto the computer of the user.
A problem with this mechanism is that even after the software installer has been tested, there needs to be more testing of the DVD installer, which means that there is an additional level where problems can happen.
- Release through download. Preparing a DVD for the customer to buy has a certain cost. There is a cost to the media, there is a cost of the retail mechanism whereby the DVD needs to reach the customer, and software makers have come up with a mechanism whereby customers are invited to download a copy of the software from the website of the software maker or from other sites. Consider whereby Amazon.com has an option where the customer can opt to download the software from the site rather than asking for the DVD to be shipped to the address of the customer. This ensures that the customer does not have to wait for the DVD to reach their address, and then the problem of saving the DVD in a safe location for re-installation does not come into the picture since the installer is already in the computer of the customer.
Even in this case, the base application installer does need an additional mechanism to provide an interface for the software download process. This is even more important when the software is huge, greater than 500 MB, since you would need to provide a mechanism for the customer to be able to resume the download if it fails during the download process. On the other hand, if you are making a software that is small and is available on websites that provide a large number of software, there may be the need to make some customization in the software installer to be compatible with such mechanisms.
- An option for both the first and second mechanism is to provide a check whereby the software will only work after there is some online verification of the software. These are part of the steps to prevent piracy of the application, and depend on the software application reaching out from time to time to a online verification mechanism on the website of the software maker. Such a mechanism ensures that the software maker can keep on verifying that the software has not been installed on more computers than required. In fact, if you read the recent announcement from a large maker of software, Adobe Systems, it will stop providing users with a physical software mechanism and only use a combination of online delivery with online verification.
- Another distribution mechanism is to provide the software with other software. For example, anti-virus software and other software such as Adobe Reader are available on most new computers and even available with other software that you install. In such cases, the installer that the software makers provide has to have a mechanism for customization. A simple example is where an anti-virus software is distributed along with all Dell machines. These are trial versions of the anti-virus software, and when you decide to purchase, Dell gets a cut of the cost of the software that the customer has paid. For ensuring that this sort of mechanism is in place, the software installer needs additional options, and this means additional effort during the development of the software as well as the testing of the same. However, since such distribution can be a good proportion of overall sales, it is necessary to do the same.
- Another recent mechanism of distribution is the App Store. The app stores for Android and iPad / iPhone are most famous, but there are others as well. Even software for the Mac can be sold through the Mac App Store, and to be available on this distribution mechanism, there could be the need of making significant changes in the software installer. In our case, because of the restrictions that were in place, it was an altogether new project which leveraged what we were doing but needed significant new effort. However, the additional revenue was worth it.