Subscribe by Email


Showing posts with label Software releases. Show all posts
Showing posts with label Software releases. Show all posts

Sunday, July 21, 2013

Processes of the last few days and weeks of a product release schedule ..

As part of a normal product cycle, the last few days and weeks are the ending points of all the hard work, frustration and rewards of the schedule. It is a critical time period in the schedule with the following properties:
- The team is doing their final set of testing / verification. Towards this end, the entire set of test plans and cases would not be running since that may take up more time than is available. For shorter time periods and for quick verification that everything is running fine, a subset of the test cases would be made ready to execute. If automation is made available, then these should be running on a regular basis.
- Any changes to code or defects fixes are being monitored very closely and thoroughly to ensure that there is no risk from these changes to the code. In some cases, when time in the schedule is short, only defects that are deemed very high severity will be fixed and that too when the impact of the changes can be safely evaluated
- All the release documents including the Help file and release notes are all ready and reviewed
-  External testers / pre-release testers have been using the software for some time and all of them have verified that they have been using the product and a majority of them have also deemed the software product ready for release. This can be critical. When the software is near the release period, people not belonging to the team and who are an approximation of the customer base of the product should be comfortable with the quality level of the product and the set of features in the product.
- In many cases, during the testing process, features that require connection to an online server are typically connected to a test or staging server rather than the live server. During the last few days, these connections are changed to the live server and the product is testing with those rather than with the staging server. There is a possibility that this kind of change may bring about some instability in the system and hence the changes need to happen before the release date (atleast a few days before the release date).
- When the product also needs to be released on DVD and on the product web store, there is a need to do final verification on such systems to ensure that everything is working fine (which includes generating actual DVD's and installing from them to ensure that everything works as it should).
- Defect stats are monitored very finely to ensure that there are no surprises at that end.


Thursday, May 16, 2013

Experimenting with different delivery media for software release

In today's world, software applications can be released in multiple ways. A software application can be released on CD, can be released through a download from a website, can be made such that it is available to be distributed through various partners. All of these are possible configurations, but all of them need some amount of design and effort, and need to be part of the overall strategy for the release of the product.
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. 


Facebook activity