Written agreements, or contracts, between client and developer are important in making clear the obligations of each party. The written agreement should limits the consequences of settling any disagreement at a later stage could be affect the project in terms of time lost, cost and loss of good will.
If the client is commissioning an original piece of work, then the written agreement should deal with
If the client is licensing an existing work, then the written agreement (or licence) should deal with
- what the client will supply in terms of assets, resources
- the product specification
- the ownership of the product
- the development time
- is the contractor assigning any rights? or retaining copyright?
- the contract price which may be fixed or in staged payments depending on satisfactory progress or supply of materials (so that, if as the result of a feasability study the client decides not to proceed with the project, the developer may be paid for work done to that point)
- future maintenance and support
- whether commissioning company gets the object code (or machine code) and/or source code (unusual since more a problem since can be used to edit/re-write software)
- licence for existing software
Covering how the work will be used: to shop and play in public, to broadcast, to transmit across a network
- whether restricted to a particular place or equipment
- exclusive or non-exclusive (same rights grantable to others)
- assignable (to company which purchases the business)
Turner Kenneth Brown, Solicitors (1994) recommend a period of acceptance testing for the client to test the product's performance (approximately 30 days is usual). Failure to test promptly or using the software for anything other than testing could be taken as a client's acceptance by implication. The contract should also specify the consequences if the software does not work as it should.
Turner Kenneth Brown, Solicitors (1994), "The Long Arm of the Law", Business & Technology Magazine, Issue No. ?, pp.25-26