DEVELOPMENT AGREEMENTS
Custom or semi-custom development of a computer systems or software, for specific uses, can be one of the most difficult undertakings in Information Technology. For the purchaser, it is difficult because it is almost impossible to set specific standards of performance for a system that does not yet exist. For the developer, it is intimidating to sign off on doing a project that may or may not be possible. For both parties, the hardest job can be reaching an agreement on how to divide the risk.
Today, there are few true development agreements, for the creation of software from scratch. Most so-called development agreements are for the creation of templates, that sit on top of already developed software engines. Software engines are available "off the shelf" and are intended to be used with a customized template built to order by consultants or developers. Most semi-custom systems or software templates use relational or other data bases as their software engines. Most business information systems are basically made up of data bases. However, manufacturing, engineering, graphical design and many other types of business also have customizable engines available, onto which a template may be built.
In creating semi-custom software or systems, there are certain questions which should be answered in any development agreement. Not necessarily in order of importance, they include:
_ Who is responsible for the choice of the underlying software engine?
_ Does purchaser have to purchase a separate license to the underlying software engine?
_ Who is the owner of the semi-customized template?
_ Is there a provision for adequate testing before acceptance, to assure meeting specifications?
_ If developer is the owner, can the template be licensed to a competitor?
_ If developer is the owner, can purchaser use the software for multi-users or on multiple computers?
_ Where is the source code and who has rights to use it if the developer goes out of business?
_ What type of warranty is granted regarding both the engine owner and the developer?
_ How is ongoing maintenance and support assured?
A true development agreement is another story. Creating a truly new software, even with the generous use of already available software components, can be an exacting process and a daunting task. Results are unknown until testing and refining have been completed. Time for completion is uncertain, since the creation involves software that has never been created before. The resulting cost of development can be enormous. True custom development should not be undertaken until a search for available alternatives, "off the shelf" or semi-custom templates, has turned up nothing that could be modified to do the job.
In addition to the issues important for semi-custom development agreements, a true custom development agreement must include meticulous descriptions of the functions to be performed, the nature of results to be sought and the speed at which the system must operate. Additionally, issues regarding not only liability, but sharing the development risk must be reviewed. While it is not unusual for the purchaser to assume that the risk of software malfunction will be born by the developer (often unknowingly altered by contract), such is not the case in a true custom leading edge development. In such a case, the risk of loss should be divided between the parties, based on an assessment of the relative risks. The purchaser has to be made to understand that functions and capability which are being developed may not work, at least in the manner desired. It would hard to find a developer willing to bear all the risk in an inherently risky venture.
Obviously, vigorous contract negotiation is vital to creating a level playing field, in both semi-custom and in custom development agreements.
Back to Top
|