Contratos são exigidos para preencher a falta de confiança e as incertezas entre organizações diferentes, assim possibilitando que elas trabalhem juntas. O contrato de projeto de prazo fixo tradicional não considera a incerteza do ambiente de negócios e desenvolvimento de software em consideração. Estes contratos tendem a colocar cliente e fornecedores uns contras os outros, onde, invés de colaboração, tempo e energia são gastos decidindo quem deve pagar por uma mudança. Um grupo de trabalho está atualmente realizando um brainstorming no OpenPlans com o objetivo de produzir contratos agile reutilizáveis. Isso seria potencialmente inverso ao relacionamento cliente-fornecedor para confronto e colaboração.
No passado Alistair Cockburn listou mais de 10 estratégias de contratos Agile baseado na opinião de várias pessoas. Elas incluem a correção padrão para 'preço fixo e escopo fixo', contrato de 'tempo e material té outros mais inovadore como 'Entrega incremental com pagamento na aceitação' e 'Entrega indefinida, quantidade indefinida'. Martin Fowler falou sobre projetos onde eles primeiro constroem confiança como cliente e então começam com esquemas de cobrança mais flexíveis para projetos futuros. Mary and Tom Poppendieck discutiram sobre vários tipos de contratos e seus potenciais benefícios. Eles também discutiram as várias categorias de cliente e fornecedor e fatores como cultura, país e tipo de software que podem afetar o contrato.
O grupo de trabalho no OpenPlans atualemente tem um contrato agile sendo trabalhado entitulado como ‘Money For Nothing, Change For Free’ que aplica forte ênfase na participação do cliente. É esperado que o cliente tenha um alto grau de envolvimento em priorizar as funcionalidades, no sprint planning, escrevendo as condições de satisfação das funcionalidades e no Sprint Review. O contrato possui as seguintes cláusulas:
- Recisão antecipada (Money for Nothing) - O Cliente pode terminar o contrato ao final de qualquer sprint apenas pagando 20% do valor remanescente do contrato
- Change For Free – O Cliente pode adicionar novas funcionalidades nos limites dos sprints se items de escopo iguais forem removidos do contrato.
O contrato também fala sobre ‘Garantia de Trabalho’ onde o fornecedor garante que 80% das funcionalidades serão entregues com alta qualidade de acordo com definição prévia e que o fornecedor pode assumir o risco de entregas tardias.
O desenvolvimento do contrato pode ser acompanhado na home page de ‘Agile Contracts’ e você contribuir com a definição do contrato se sua requisição para ser membro for aprovada.