Quando participamos de um projeto, as pessoas em geral presumem que este terá começo, meio e fim. No entanto, quando se trata de desenvolvimento de software, sabemos que não existe um fim definitivo. Seja por necessidades tecnológicas ou de negócios, a manutenção de software é uma atividade que acompanhará a vida toda de um sistema.

Atualmente, as empresas investem muito em TI, e a maior parte desse recurso é destinado para a evolução e manutenção de software. Segundo Sommerville (2011), as pesquisas em geral apontam que a manutenção detém cerca de dois terços do orçamento de TI.

Isso porque os sistemas são fundamentais para que os negócios operem, e para garantir seu funcionamento adequado e evolução conforme as necessidades da empresa, é necessário uma equipe qualificada dedicada a essa função.

Nesse artigo vamos abordar o conceito, importância, tipos e as principais técnicas para auxiliar no processo de manutenção de software.

 

O que é manutenção de software?

 

Manutenção de software é o processo de melhorias e correções de um software em desenvolvimento ou já desenvolvido. Ou seja, qualquer alteração após o software estar disponível em produção.

A vida do software não termina após sua implantação. Para um software permanecer útil ao longo do tempo, é necessário investir em manutenção.

 

Por que fazer manutenção?

 

Um dos principais objetivos em realizar a manutenção de software é o aperfeiçoamento tecnológico do sistema. Ao realizar essa atividade, o sistema se tornará cada vez mais estável, diminuindo sua velocidade de envelhecimento.

Os negócios estão sempre em mudanças, e o software deve acompanhar esse movimento. Dessa forma, é fundamental que o produto se adapte a novas regras de negócios, e acumule novas funcionalidades de acordo com as necessidades das partes envolvidas.

 

Quais são os tipos de manutenção de software?

 

De modo geral, existem 3 tipos de manutenção de software: Adaptativas, Corretivas e Evolutivas. Todas elas podem ocorrer em paralelo e serem executadas pela mesma equipe.

 

Adaptativas

São alterações que visam adaptar o software a uma nova regra de negócio. Ou seja, tem a finalidade de adequar o sistema ao ambiente no qual está inserido.

Por exemplo, antes da reforma trabalhista, um sistema de Recursos Humanos não permitia parcelar as férias em três vezes. Com a mudança da lei, isso passou a ser permitido, e o sistema teve que se adequar a esse cenário.

 

Corretivas

Como o nome diz, tem como objetivo solucionar defeitos encontrados no software. Os problemas de funcionalidade são comuns e em alguns casos devem ser corrigidos de forma emergencial.

Mesmo que equipe de desenvolvimento utilize as melhores técnicas e etapas de testes, os problemas poderão acontecer.

 

Evolutivas

São alterações que visam agregar novas funcionalidades e melhorias para o software.

Num mercado cada vez mais dinâmico e concorrido, é natural que sejam exigidas novas funcionalidades e mudanças para um produto se manter competitivo.

 

Técnicas para manutenção de software

 

Muitas ferramentas e técnicas auxiliam no processo de manutenção de software, evitando erros gerais durante o desenvolvimento, sustentação e evolução do sistema.

 

Documentação

Muitas vezes negligenciada, a documentação tem grande importância não só no momento de criação do software, mas também durante sua manutenção. Um dos motivos para manter uma boa documentação de um software está relacionado a mudanças de equipes de desenvolvimento. Com a documentação, o processo de transferência de conhecimento sobre o sistema se torna mais eficaz, não dependendo de pessoas especificas que já passaram pelo projeto.

 

Versionamento

Toda vez que há um processo de build e deploy, uma nova versão de um software é disponibilizada. O versionamento de uma aplicação tem como objetivo documentar as alterações feitas em cada entrega, de modo que seja possível resgatar versões anteriores em caso de erros.

 

Status Reporting

Status Reporting é um documento que visa o alinhamento entre os envolvidos no projeto em relação a situação atual do desenvolvimento. Nele é registrado o que foi realizado pela equipe de desenvolvimento em determinado período, assim como pontos de atenção relacionados ao sistema.

 

Codificação

Boas práticas de codificação ajudam muito na legibilidade, e auxiliam também para que o ciclo de evolução seja mais ágil e fácil. Indentação e comentários no código podem parecer detalhes não muito relevantes, mas irão auxiliar muito no entendimento do código-fonte. O uso de pacotes, orientação a objetos e padrões de projeto também contribuem na organização e divisão das responsabilidades para reaproveitamento de código, aumentando a produtividade das equipes de desenvolvimento.

 

 

 

– Escrito por Gabriel Alves Ferra

 

 

 

Arquitetura de microsserviços - Quais camadas a compõe e como é seu ecossistema?

Compartilhe

Compartilhe este post com seus amigos