Metodologias ágeis de desenvolvimento de software não são novidade. Mas descobrir uma maneira de adquirir adequadamente o outsourcing de desenvolvimento ágil, é.
"Nas abordagens tradicionais de contratação, há uma suposição de que a equipe de desenvolvimento pode definir, com alguma especificidade, o produto final a ser criado, um plano detalhado de projeto, com marcos importantes vinculados à aceitação do cliente e gatilhos financeiros", diz Derek J. Schaffner, advogado da firma de advocacia Mayer Brown. "Estes conceitos são muito fáceis de executar, devido à natureza linear de uma abordagem de desenvolvimento de software tradicional, que começa com o planejamento detalhado, seguido de design, codificação, testes e implementação."
As metodologias ágeis, no entanto, rejeitam processos tradicionais em favor de um desenvolvimento mais fluido. "Não há planos de projeto detalhados ou marcos importantes porque o cliente e o desenvolvedor avaliam e priorizam as atividades em interações curtas e contínuas. Hoje, a contratação de desenvolvimento de software em pequenas etapas, também conhecidas como sprints, vem sendo uma tendência entre as empresas", diz Schaffner.
Portanto, uma abordagem de desenvolvimento ágil de software "exige um ato de fé de clientes acostumados à formalidade e ao controle do desenvolvimento de software tradicional, argumenta Schaffner.
Para profissionais que cresceram em um mercado dominado pela contratação por escopo fechado, parece bastante desconfortável abrir mão da “certeza” do escopo rígido e lidar com as incertezas de um projeto colaborativo.
No entanto, existem mecanismos contratuais que os clientes podem implementar para reduzir as incertezas, enquanto colhem os benefícios do desenvolvimento ágil.
A CIO.com conversou com Schaffer sobre como implementar proteções em contratos de outsourcing baseados em metodologias ágeis.
CIO.com: Quais são os maiores desafios na elaboração de contratos de desenvolvimento ágil?
Derek J. Schaffner, da Mayer Brown: Uma abordagem de desenvolvimento ágil enfatiza interações contínuas entre cliente e desenvolvedor, baseadas em confiança e compreensão difíceis de serem incluídas em um contrato. Os maiores desafios envolvem a criação de um quadro para tirar proveito dos benefícios criativos, equilibrando a necessidade do cliente para que o software seja construído em tempo hábil, por um preço justo.
CIO.com: Como precificar o desenvolvimento ágil?
Schaffner: Existem variações do modelo de contratação Time and Material (T&M) que podem ajudar a controlar os gatos, combinando custos reembolsáveis e preço fixo, tais como especificação de um valor fixo por interação (sprint) ou por projeto base, para que cada interação não incorra em desembolso para o desenvolvedor até o projeto esteja completo. Para isso, a avaliação inicial do projeto deve dar aos clientes e aos contratados uma visão estimada de quantas interações, aproximadamente, poderão ter para a solução do seu problema. E, a partir daí, calculadas as horas dos profissionais que estarão alocados ao projeto.
O modelo T&M é mais palatável devido aos seus direitos de rescisão amigável. A abordagem de interação fornece ao cliente a capacidade de encerrar facilmente um projeto. Já na especificação de um valor por projeto base, o desejo do cliente para completar o projeto supera a flexibilidade para encerrá-lo antes da conclusão.
CIO.com: E como o cliente pode reduzir o risco de rotatividade de empregados nesses projetos, que dependem da continuidade?
Shaffner: Para atenuar esse risco e a subsequente perda de conhecimento do projeto, o cliente deve nomear algumas pessoas chave, cujo compromisso com o projeto é definida em contrato, com garantias do fornecedor de que esses recursos não serão removidos do projeto sem a aprovação do cliente.
O acordo também deve conter garantias de que o desenvolvedor irá fornecer todos os recursos necessários para completar as tarefas definidas para um determinado sprint, eliminando assim a desculpa potencial que o sprint não possa ser concluído devido à falta de recursos. Finalmente, o contrato deve especificar que as atividades de transferência de conhecimento entre o pessoal de desenvolvimento não podem ser imputadas.
CIO.com: Como garantir que todos os itens previstos serão entregues a cada sprint?
Shaffner: O desenvolvedor pode garantir que o código produzido durante cada sprint atenda às especificações. Como o trabalho é construído durante interações subsequentes, o cliente deve procurar garantir que, ao final, o somatório de todas as etapas estejam de acordo com as especificações do produto. O cliente também deve avaliar se há ou não alguma sazonalidade associada com o produto e assegurar que a garantia cubra suficientemente os períodos de alta demanda ou utilização.
Como a relação é de confiança, é possível também propor que o risco seja dividido. Casa um item previsto para determinado sprint não seja entregue, o fornecedor pode descontá-lo do pagamento daquele sprint, ou incluí-lo no próximo sem cobrá-lo, já que esteva coberto por um desembolso anterior.
CIO.com: Como os direitos de propriedade do código devem ser tratados?
Shaffner: O contrato deve esclarecer quem detém os direitos de propriedade intelectual do produto desenvolvido e se a outra parte tem uma licença para uso e criação de produtos derivados daquele contratado. Se o fornecedor insiste em possuir os direitos de propriedade intelectual, o cliente deve ter uma licença irrestrita ao produto desenvolvido e potencialmente procurar restrições ao uso por parte do desenvolvedor em futuros contratos. A situação é ainda mais complicada se uma das partes traz código pré-existente para o projeto, o que pode exigir negociações caso a caso.
Site: CIO
Data: 11/07/2016
Hora: 9h28
Seção: Gestão
Autor: ------
Foto: ——
Link: http://cio.com.br/gestao/2016/07/11/como-proteger-os-contratos-de-desenvolvimento-agil/