PS 2000 Contracts for Software Development
The Norwegian Computer Society now offers a complete set of standard contracts for software development and maintenance and management. The standard contracts are now being used in many of the largest public IT projects in Norway. The main feature of the contract for software development is that:
- It provides mechanisms for establishing a common understanding between customer and the developer and
- A flexible iterative model for development suited for an environment of uncertainties and risks
The standard contract for iterative development [v2] has these main elements:
- Increasing efficiency of the procurement and tender processes
- Based on documented “Best practice”
- Tools for managing uncertainty
- Stage by stage, iterative development model securing ability to benefit from increasing understanding of the requirements and challenges
- Close co-operation between supplier and customer
- Incentives and sanctions in combination with target pricing
- Procedures for conflict resolution with an expert as a mediator
The contract consists of three parts:
- The Customer and Supplier are defined in the Part I, Contract Document, which also sets forth the order of priority between Part I, Part II and the annexes in Part III.
- The General Provisions are stated in Part II. The objective of Part II is to govern the rights and obligations of the parties in relation to the development of the software, including any adaptations, services and associated hardware as specified in separate annexes (Part III) to the Contract.
- Part III consists of all the specific annexes.
The difference between a normal contract and this contract is that it outlines terms of engagement clearly. Instead of providing an overall project cost, the team estimates one iteration at a time and each iteration is almost a new project. Hence, the contract basically takes the incremental approach to estimation as well. Apart from this, the team also outlines the responsibilities, roles and rights of the supplier and vendor for the success of the project, primarily that customer would be responsible for marketing insights and the developer for the technical insights. An expert is pre-selected as an arbitrator in case of dispute. Just the fact that you follow an iterative model for estimation, you improve the efficiency of standard contractual cycle by:
- It takes assumptions, forecast and psychic part of estimation out
- Allows for Agile development to emerge automatically
- Closer cooperation and collaboration needed by default
- Incentives and sanctions along with target pricing can provide a nice framework for iterative development
I am trying to get my hands on one such contract and lets see if we can analyze this further.