Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo:

Demonstrar, através de uma visão geral, como os contratos de projetos são tratados no ambiente da metodologia ágil. Você conhecerá os principais tipos de contratos e como eles podem influenciar no seu processo de desenvolvimento de software.


Para que serve:

Proporcionar maior controle das inovações tecnológicas e das mudanças constantes de requisitos do cliente, uma vez que grande parte dos projetos de desenvolvimento de software excedem o prazo e o orçamento previstos, haja vista que o desenvolvimento de software é uma atividade complexa, envolvendo inúmeros fatores considerados imprevisíveis e de difícil acompanhamento.

Em que situação o tema útil:

Nos projetos de desenvolvimento de software, que adotam metodologias ágeis, sobretudo quando se deseja gerenciar riscos, ainda que seja em um ambiente heterogêneo e que apresente dificuldades na estratégia organizacional ou nas prioridades e restrições do processo de desenvolvimento, necessitando um maior comprometimento entre os gestores e os clientes.

Neste artigo vamos abordar como os requisitos são tratados, no tocante a negociação de contratos, em projetos de desenvolvimento ágil. Será apresentada uma visão geral sobre metodologias ágeis e quais as principais vantagens e desvantagens dos tipos de contrato utilizados nestas metodologias.

Além disso, algumas técnicas utilizadas por empresas para elaboração de contratos serão apresentadas, mostrando ainda como isso pode influenciar e motivar os gestores quanto à adoção dessa cultura, propiciando maior interação e satisfação entre gerentes, analistas, desenvolvedores e clientes. A adoção deste tipo de negociação deve ser considerada pelas empresas que desejam reduzir custos e melhorar a produtividade na construção de seus projetos de software.

Metodologias Ágeis

De uma maneira geral, pode-se afirmar que os projetos de desenvolvimento de software têm sido de preocupação constante para clientes do sistema (stakeholders), gerentes de projeto e para os próprios desenvolvedores. Postergações nos prazos de entrega do produto, longas fases de análise de requisitos, estouro no orçamento dos projetos, fases de testes insuficientes, cancelamento de projetos, produtos com alta taxa de defeitos e requisitos que não satisfazem as necessidades reais dos clientes são apenas alguns exemplos que servem para ilustrar a gravidade dos tipos de problemas mais comuns encontrados durante o processo de desenvolvimento de software.

Para lidar com estes desafios, os métodos ágeis enfatizam comunicações em tempo real, preferencialmente face a face, a documentos escritos. A maioria dos componentes de um grupo ágil devem estar agrupados em uma sala. Isto inclui todas as pessoas envolvidas na construção do software.

Paradigmas como o ciclo de vida clássico deveriam ter posto fim a vários problemas de desenvolvimento de software, já que proviam fases ordenadas e bem definidas, como: Engenharia de Sistemas, Análise de Requisitos, Projeto de Software, Codificação, Testes e Manutenção. Normalmente durante o ciclo de vida clássico, a maior parte dos custos é referente à fase de desenvolvimento, sendo que para software customizado, os custos de evolução excedem os de desenvolvimento, principalmente os custos referentes às mudanças.

O desenvolvimento de software ágil evoluiu como parte de uma reação contra métodos, caracterizados por uma pesada regulamentação, e que utilizavam o modelo em cascata para desenvolvimento. Inicialmente, os métodos ágeis eram conhecidos como métodos leves. Em 2001, membros da comunidade se reuniram em Snowbird e adotaram o nome métodos ágeis, publicando o Manifesto ágil, documento que reúne os princípios e práticas desta metodologia de desenvolvimento. Posteriormente estes membros formaram a Agile Software Development Alliance, também conhecida como Agile Alliance, e definiram um manifesto para encorajar melhores formas de desenvolvimento de software, entre eles:

· A maior prioridade é a satisfação do cliente através da entrega rápida e contínua de software útil;

· A mudança de requisitos será bem recebida em qualquer momento do desenvolvimento, mesmo em uma fase mais avançada do mesmo;

· A entrega de software deverá ser frequente, em poucas semanas ou meses, mas sempre preferindo a menor escala;

· Pessoas que entendem o negócio e desenvolvedores devem trabalhar juntos diariamente;

· Softwares em funcionamento deve ser a métrica de progresso;

· Em intervalos regulares, a equipe deve refletir sobre como podem ser mais efetivos e realizar os devidos ajustes.

...
Quer ler esse conteúdo completo? Tenha acesso completo