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)
Deixe um comentário