How To Prevent Wastage Of Money Invested On Software Application?
Here are some very clear and interesting ideas to keep your software application updated over a time period.
Often projects that come across our desks are in neglected state. Simple reason being the situations arising due to lack of support from the vendors who have developed customized software solutions but are now in no position to support that application. These clients who are in very awkward situation have very little in terms of documentation and original code which can help them in maintaining their solution. These very clients are now our clients.
Though for most of the organizations, customized software means a huge amount of capital cost involved but it has been observed that this very area is the one being neglected and is suffering from delayed maintenance that too as an extreme case.
Probably software system used by you is made of various different components. Few of the components out of them may be custom developed exclusively for you; few of them could be third party libraries. Some components might be operating systems and off-the shelf applications, large and small from vendors. It is very essential that you have a general idea about the layout of the system that you are using. What are the main components of your software application? What is the source of the components? Are you provided with the source code? Does custom software developer of your system application have the license of the source code? Who is the owner of license pertaining to third party tools?
Here are some very clear and interesting ideas to keep your software application updated over a time period.
Source code with license is what you should ask for. In an ideal situation when software is developed for you as per your specific needs, it has to be provided with a copy of source code. Escrow agreement can be used to handle this issue in some cases. Not only you receive the source code copy but arrangement should be done to keep the source code updated. For that if application is handled by third party then you should make sure that you receive updates regularly about the source code. One of the approach is to have a back up copy of version control system where storing of code is actually taking place. If your vendor does not uses version control system it’s better to change your vendor immediately.
If there is a small vendor providing you with commercial off-the shelf software (COTS) you should make certain that the vendor places the source code pertaining to the application you are using with a reputed and reliable escrow provider. One provider used for this purpose is Standby Computing. Lets repeat – it is very important to update escrowed source. You must have a license to all third-party libraries or controls along with the copy of the same.
If vendors are using third party controls or libraries then it must have licenses of the same. Make it mandatory to ask vendor for license and copy of each library or control used. A virtual machine that is fully capable of building application should be maintained. This information is new for the best and cautious readers. At Intergen most of the development is carried out on virtual machines. The biggest advantage of virtual machine is things can be copied onto handy hard disk and can be stored with full safety for access sometime in days to come. With this approach you are able to ensure that your application can be re-compiled and deploy it as and when required. When not using virtual machine, you will end up making payment to the vendor much higher for development and building of environment.
IP belongs to whom better clarify with your vendor since different vendors have different policies regarding this. The balancing act done by the service companies is they fulfill the needs of the client and at the same time protects their own innovation. At least you should insist your vendor to provide you with a license that is non-transferable of both binary code and source code that pertains to custom developed application for you. It is also to be ensured that your license has provision of providing source code to another vendor to maintain your solution.
Once every thing stated above is maintained, still lack of documentation will prove to be fatal. With the help of source code and referenced libraries you can maintain any solution of course for a price. Documentation will make ongoing maintenance cheaper. Its all about spending money on documentation now for having lower cost maintenance in the days to come. The documentations that are very important and useful are – Architecture diagrams (layout of various components and how they are connected together, comments about source code and deployment diagrams (the various locations where different parts of application are running).
You have to encourage vendors, staff and others to your source tree with permission to write so that they can document their code. Several clients that work hard to make sure that all the rules are followed; with time they tend to let themselves down. Reason is simple they fail to keep all the things up-to-date. The clients would have done all the above listed activities for say version 1.0 but their business is actually working on version 3.5.
Setting managed services arrangement with the vendor that is working for you, insistence should be given to regular updates of all the above stated content. Whenever new version is released to production, it should be assured that updating of source assets should ideally be done to you, the application user or your escrow provider. In either case the aim is to have latest update about the application’s recent status. As whatever changes required to run the application efficiently and effectively are to be done at every stage so that various components of the application are working at the recent level and your application is running with the latest updates in place.