Modelos de Entrega: Os verdadeiros alicerces dos Projetos de Desenvolvimento de Software

O desenvolvimento de software por serviços de IT está hoje associado a diversos tipos de modelos de entrega. Para os abordarmos é fundamental conhecer os diferentes modelos de desenvolvimento de software e as formas de contratação de serviços, visto que se encontram intimamente ligados.

A premissa “nem só de código vive um projeto de software” é um daqueles pressupostos, quase bíblico, que qualquer comprador ou implementador de software deveriam ter por base. Isso evitaria expetativas desajustadas e asfixias contratuais.

Muitas vezes a implementação de software é feita de forma básica, sem seguir qualquer regra e, no final, o software até funciona. Mas podemos afirmar que esse software cumpre os melhores padrões de qualidade? E está adequado do ponto de vista de usabilidade e manutenção futura?

A produção de software é uma atividade de enorme complexidade, que envolve importantes grupos de interessados (stakeholders) que precisam de soluções para resolver uma necessidade de negócio.

modelos-de-entrega-os-verdadeiros-alicerces-dos-projetos-de-desenvolvimento-de-software-producao-de-software

É uma atividade onde existe um elevado grau de incerteza (risco) e as alterações no âmbito e nos prazos de entrega podem ser inevitáveis.

 

Modelos de Desenvolvimento de Software

Desde a década de 70 que os grandes fabricantes de software perceberam que a sua produção teria maior sucesso, seria mais rentável e reduziria riscos se utilizasse modelos-padrão comprovados em outras indústrias.

Da compreensão de que a engenharia de software não se resume apenas à codificação, existindo outras disciplinas a contribuírem de forma decisiva para a produção de software, nasceram as primeiras metodologias que tinham por base um conjunto sequencial de atividades (Modelo Waterfall).

Existem também Modelos Iterativos, como a framework RUP (Rational Unified Process) propriedade da IBM, que preconiza uma sequência de etapas pré-definidas:

modelos-de-entrega-os-verdadeiros-alicerces-dos-projetos-de-desenvolvimento-de-software-modelos-iterativos

No entanto, esta framework permite que o desenvolvimento ocorra de forma interativa e incremental, o que diminui a complexidade da integração, reduz custos e aumenta a sua eficácia.

modelos-de-entrega-os-verdadeiros-alicerces-dos-projetos-de-desenvolvimento-de-software-projectos


As ineficiências e fragilidades das abordagens clássicas abriram caminho ao aparecimento de metodologias ágeis. Estas possuem ciclos de desenvolvimento mais curtos e, consequentemente, mais iterativos. Permitem também maior flexibilidade na gestão do âmbito e são menos pesadas do ponto de vista documental que o
Waterfall Model.

Acima de tudo, introduzem uma nova dinâmica de projeto e envolvimento do cliente focada totalmente no valor para o negócio. Nasce assim o Agile Software Development que, tal como aconteceu nas metodologias clássicas, com o passar do tempo deu origem a vários processos de desenvolvimento, como o RAD, SCRUM ou XP.

Ao mesmo tempo, é possível resgatar técnicas e modelos mais antigos, como o LEAN e KANBAN, que podem ser acoplados ao processo ágil.

modelos-de-entrega-os-verdadeiros-alicerces-dos-projetos-de-desenvolvimento-de-software-agile

 

As metodologias ágeis trazem várias vantagens:

  • Ciclos de implementação mais curtos;
  • Entregas bem definidas em função da prioridade para o negócio;
  • Foco no alinhamento da equipa e na melhoria contínua.

Passa a ser mais fácil ao cliente identificar desalinhamentos logo numa fase embrionária do desenvolvimento e as equipas têm também maior flexibilidade para alterações, sem comprometer o objetivo final de cada iteração.

No entanto, a aplicabilidade da metodologia ágil pressupõe a existência de um conhecimento mútuo sobre os seus princípios, fundamentos e rituais, bem como uma significativa maturidade organizacional.

 

Contratação de Serviços

Os modelos mais utilizados no mercado português para a contratação de serviços de desenvolvimento de software, são os Fixed-Price e os Time and Materials.

 

  • Contratos Fixed-Price

Mais conhecido como contratos “chave-na-mão”, o valor é estipulado pelo fornecedor, com base no âmbito, esforço e risco do projeto. Neste caso, o risco e controlo de custos são da exclusiva responsabilidade do fornecedor.

 

  • Contratos Time and Materials

Neste caso, é definido um preço por hora e uma estimativa temporal do projeto. Estes modelos são tipicamente utilizados na contratação de projetos quando o âmbito não é totalmente conhecido. O risco e a gestão da execução são controlados pelo cliente.

Nas abordagens clássicas, como o Waterfall Model, pode fazer sentido um contrato Fixed-Price, mas as metodologias ágeis são, por definição, incompatíveis com estes modelos de contratação. Apesar de o mais adequado ser um contrato Time and Materials, coloca grandes desafios ao cliente, abrindo a porta a modelos de entrega ágil com partilha de risco.

 

Modelos de Entrega para Projetos de Desenvolvimento de Software

Basicamente, os Modelos de Entrega são a combinação consentânea entre Modelos de Desenvolvimento de Software e os tipos de Contratação de Serviços.

  • Quando o âmbito do projeto está bem definido, há um orçamento fechado e uma duração fixa, será apropriado um Modelo de Desenvolvimento Waterfall ou Iterativo com um Contrato Fixed-Price. Esta é uma boa solução para quando o cliente não pretende assumir riscos.
  • Se o âmbito, duração e orçamento não forem conhecidos à partida e o cliente tiver capacidade para gerir e assumir a totalidade do risco, então é recomendado um Modelo de Desenvolvimento Ágil suportado num Contrato Time and Materials.

 

Modelos de Entrega com Partilha de Risco

Para os clientes, os benefícios dos Modelos de Desenvolvimento Ágeis é inequívoco e reconhecido. No entanto, havia necessidade de encontrar um meio-termo no que respeita à partilha de risco.

Surgiram então modelos que contribuem para promover a confiança, flexibilidade e alinhamento de objetivos entre clientes e parceiros de implementação.

  • Modelo People-Driven – Modelo de equipas fixas (Squads) e autónomas, organizadas em Tribes ou Guilds. Este modelo conjuga Agile com contratos Time and Materials. Há uma partilha de risco em termos da velocidade contratada e do tamanho da equipa no projeto.
  • Modelo Output-Driven – No modelo Output-Driven, o cliente contrata uma certa velocidade de entrega e cabe ao fornecedor do serviço garantir que é cumprida. No final de cada intervalo de tempo (Sprint), o cliente valida e paga o produto entregue.

maturidade-agile

Um projeto de software vai muito para além da tecnologia

Existe um conjunto de linhas orientadoras para ajudar a encontrar o melhor modelo de entrega para projetos de desenvolvimento de software. Há que considerar o nível de partilha de risco e as metodologias usadas.

A expressão “nem só de código vive um projeto de software” deve agora fazer mais sentido. As linguagens de programação, bases de dados e sistemas operativos são, sem sombra de dúvida, importantes, mas não determinam o sucesso de um projeto de IT. É redutor circunscrever a implementação de um projeto de software apenas à tecnologia.

 

SABER MAIS SOBRE A NEXLLENCE

 

2021-03-30

Sobre o Autor

Mécio Afonseca

Mécio Afonseca

Account Manager - PMO

Com mais de 20 anos de experiência na Gestão de Projetos de Desenvolvimento de Software em vários setores do mercado, tem contribuído na definição e construção de Metodologias Iterativas e Ágeis, que permitem uma maior agilidade na condução de projetos. Acredita que as organizações fazem-se de pessoas e que a melhor técnica de gestão ainda continua a ser o “bom senso”. Gosta de conciliar a a sua vida profissional com a prática de desporto como o ténis, futebol e BTT.
VER BIOGRAFIA