Mal Entendido: Manutenibilidade Depende da Linguagem

“Nosso sistema utiliza o estado da arte da linguagem de programação. Portanto, é tão sustentável quanto qualquer outro sistema.”

Os dados que nós temos do SIG não diz qual tecnologia (linguagem de programação) foi escolhida e isso é um fator determinante para a manutenibilidade.

Nossa configuração contém sistemas Java que estão entre os que são mais fáceis de manutenção, mas também, está entre os menos que tem manutenibilidade.

A média de manutenibilidade de todos os sistemas Java nos nossos testes é a mesma média que tem o C#.

Isso nos mostrou que é possível fazer sistemas mais manuteníveis em Java (e em C#), mas utilizando qualquer linguagem de programação não garante um sistema com uma alta manutenibilidade. Aparentemente há outros fatores que determinam a manutenibilidade.

Mal Entendido: Manutenibilidade Depende da Indústria

“Minha equipe fabrica software incorporado para a indústria automobilística. A manutenção é diferente lá.”

Acreditamos que essas diretrizes são aplicáveis para todo tipo de desenvolvimento de software, jogos, software científico, componentes de softwares como compiladores e manipuladores de banco de dados e softwares administrativos.

Claro, que há diferenças entre todos esses exemplos. Por exemplo, o software científico muitas vezes utiliza uma linguagem de programação para fins especiais, tal como o R, para análises estatísticas.

Ainda, em R, é uma boa ideia para manter unidades simples e curta. O software incorporado deve operar em um ambiente onde a previsibilidade do desempenho é essencial e os recursos são limitados.

Portanto, sempre que for necessário faça um compromisso entre desempenho e manutenibilidade, é uma boa para não sofrer mais tarde.

Mas não importa a situação, as características definidas no ISO 25010 ainda são aplicadas.

Mal Entendido: Manutenibilidade é a Mesma Coisa que Sem Bugs

“Você diz que o sistema está acima da média de manutenibilidade. Contudo ainda tem bugs!”

De acordo com a ISSO 25010, um sistema pode ser altamente manutenível e ainda ter deficiência de outras qualidades.

Consequentemente, um sistema pode estar acima da manutenibilidade e ainda assim sofrer problemas de adequação funcional, desempenho, confiabilidade e muito mais.

Manutenção acima da média significa apenas que as mudanças feitas são altamente eficazes e eficientes para resolver bugs.

Mal Entendido: Manutenibilidade é uma Medida Binária

“Meu time repetidamente é capaz de consertar bugs no sistema. Portanto, isso prova que o sistema é manutenível.”

Isso é uma distinção importante. “Manutenibilidade” é literalmente a habilidade de ser manutenível.

De acordo com a definição do ISO 25010, código fonte manutenível não é uma medida binária.

Em vez disso, a manutenibilidade é o grau em que as alterações podem ser feitas de maneira eficiente e eficaz.

Então a pergunta certa a ser feita não são as mudanças (tais como os consertos do bug) a serem realizadas, e sim, quanto esforço será necessário para consertar o bug (eficiência), e o bug foi corrigido corretamente (eficácia)?

Considerando a definição da ISO 25010 sobre manutenibilidade, que diz que um sistema de software nunca é perfeitamente manutenível ou perfeitamente não manutenível.

Na prática, nós do SIG encontramos sistemas que podem ser comiserados não manuteníveis. Esses sistemas têm baixa capacidade de eficiência de modificação e uma eficácia que o proprietário não pode manter.

Fonte Livro: Building Maintainable Software, Java Edition: Ten Guidelines for Future-Proof Code (English Edition)

Para enviar seu comentário, preencha os campos abaixo:

Deixe um comentário

*

Seja o primeiro a comentar!