O ciclo de vida do desenvolvimento de softwares engloba desde o planejamento inicial, passa pela entrega do produto mínimo viável (PMV) e estabelece até quando os investimentos em uma aplicação são viáveis.

Para ajudá-lo a entender melhor o que é o ciclo de vida do desenvolvimento de softwares, quais são seus benefícios, etapas e principais métodos, reunimos as cinco principais dúvidas sobre o tema neste post. Confira as respostas!

O que é?

A norma NBR ISO/IEC 12207:1998 define de maneira oficial o que é o ciclo de vida de um software: “Estrutura contendo processos, atividades e tarefas envolvidas no desenvolvimento, operação e manutenção de um produto de software, abrangendo a vida do sistema, desde a definição de seus requisitos até o término de seu uso.”

Ou seja, o ciclo de vida engloba todos os processos, tarefas e atividades que vão desde a concepção de um software até sua descontinuidade ou substituição por outro.

A escolha do modelo de ciclo de vida é o que definirá como o software será desenvolvido, lançado, aprimorado, suportado e finalizado.

Para que serve?

A principal função do ciclo de vida é indicar as fases, atividades, entregas e responsabilidades de cada envolvido no processo de desenvolvimento de softwares.

Nesse sentido, ela funciona como um grande esquema. Seu objetivo é manter o projeto alinhado às necessidades dos usuários e às expectativas de seus patrocinadores, sem perder de vista as entregas que viabilizam a utilização do software.

Logo, ele serve para permitir que pequenas entregas sejam realizadas com certa periodicidade e favorece uma melhoria contínua no processo de desenvolvimento e utilização do software.

Em quais situações o tema é útil?

Existem três situações mais comuns à utilização do ciclo de vida no desenvolvimento de softwares. A seguir trataremos brevemente de cada uma delas.

1. Correção de bugs

Você conhece alguma aplicação que foi vendida e, em seguida, o fabricante começou a lançar atualizações, novas versões ou upgrades com o objetivo de corrigir falhas na versão de lançamento?

A Microsoft, por exemplo, costuma utilizar essa estratégia no processo de desenvolvimento do sistema operacional Windows.

Nessa situação, o ciclo de vida funciona mais para corrigir bugs não detectados em ambientes mais controlados, como são aqueles usados nos testes. Contudo, esses problemas são facilmente encontrados em contextos mais complexos, como o dos usuários finais.

Muitas vezes ocorre a descontinuidade no desenvolvimento de um software dada a enorme quantidade de correções necessárias. O exemplo mais famoso dessa situação foi o lançamento do sistema operacional Windows ME ou Milênio, substituído em pouco tempo pelo Windows XP.

2. Inovação e desenvolvimento de novas funcionalidades

Muitas empresas utilizam o conceito de produto mínimo viável (PMV) para lançar uma primeira versão de um software. Nessa versão são contempladas apenas as funcionalidades mínimas exigidas pelos usuários finais.

A partir desse PMV são feitos testes de usabilidade, levantamentos sobre funcionalidades indispensáveis e desejáveis, necessidades de integração da aplicação com outros sistemas, e assim por diante. Tudo para que o produto final atenda a 100% das necessidades e expectativas dos usuários e clientes.

Nesse contexto, o ciclo de vida vai orientar todo o desenvolvimento complementar do PMV e estabelecer um roadmap para as fases seguintes do projeto.

3. Descontinuidade de um software

Existem vários motivos para decretar a descontinuidade de um software, por exemplo:

  • os custos do seu desenvolvimento e adequação a novos cenários inviabilizam a sua continuidade;
  • sua substituição por outras aplicações mais completas;
  • a quantidade de clientes que adotaram a solução ficou abaixo da expectativa da empresa e inviabilizou seus custos de manutenção ou desenvolvimento adicional.

Quase sempre, as grandes empresas oferecem um sistema substitutivo para aqueles descontinuados. Outras simplesmente retiram do mercado o software que estava em desenvolvimento.

É importante salientar que muitos modelos de ciclo de vida consideram o encerramento do ciclo no momento da adoção do software pelo cliente.

Quais são as principais etapas do ciclo de vida?

Existem três etapas principais no ciclo de vida do desenvolvimento de softwares: a definição, o desenvolvimento e a operação.

1. Definição

É o momento em que ocorre o planejamento do projeto, são levantados os requisitos mínimos, estudada a viabilidade do software e definido qual modelo de ciclo de vida será usado.

2. Desenvolvimento

O desenvolvimento envolve as atividades de especificações, design, prototipagem, arquitetura da informação, codificação, testes e criação de integrações com outros sistemas, quando necessário.

O resultado dessa etapa pode ser um PMV ou o software completamente desenvolvido e concluído.

3. Operação

A última parte pode ser de suporte aos usuários e correção de possíveis bugs. Também pode contemplar a continuidade do desenvolvimento do software para atender a novos requisitos dos usuários. Ambos os casos dependem do modelo de ciclo de vida selecionado para o projeto.

Quais são os principais modelos de desenvolvimento de software que podem ser usados em seu ciclo de vida?

Existem ao menos sete modelos de ciclo de vida para o desenvolvimento de softwares: em cascata, em V, incremental, Rapid Application Development (RAD), espiral, prototipagem e evolutivo.

Aqui vamos nos deter em dois mais conhecidos e utilizados:

Modelo em cascata

Foi criado em 1970, e é o modelo mais tradicional. Ele indica que uma nova fase só pode começar quando a anterior for concluída, documentada e aprovada pelo cliente.

A primeira versão para o cliente é entregue apenas no final do ciclo, e a ênfase do modelo está sobre as etapas de planejamento e desenvolvimento do software.

A principal crítica a esse modelo é pelo fato de considerar a realidade estática e bem conhecida para realizar o desenvolvimento de um software. Quase sempre, a realidade das empresas e dos usuários é complexa, dinâmica e carregada de mudanças.

Seu principal benefício é a facilidade de gestão do projeto.

Modelo evolutivo

Diferentemente do modelo em cascata, o evolutivo considera que nenhum requisito é conhecido no momento do planejamento. Por isso, o projeto faz entregas com base nas requisições conhecidas naquele momento, pede para o cliente usar o software em suas operações diárias e solicita feedbacks para criar novas versões.

A grande vantagem desse modelo é a sua facilidade de se adaptar a cenários dinâmicos e oferecer novas funcionalidades aos usuários. Sua desvantagem é a dificuldade em estabelecer claros limites sobre o escopo e o tempo de projeto, o que demanda maior complexidade em seu gerenciamento.

Usar o ciclo de vida é uma das melhores formas para garantir um bom alinhamento entre o desenvolvimento de softwares e as necessidades dos usuários e das empresas que os utilizam. Também é importante para garantir a viabilidade e a continuidade de um projeto.

Agora que você já conhece as respostas para as principais dúvidas sobre o ciclo de vida do desenvolvimento de softwares, continue aprendendo sobre esse tema ao ler outro post nosso: “Tudo o que você precisa saber sobre desenvolvimento de software”.