Eu estava lendo, Facts and Fallacies of Software Engineering, que tem uma seção de manutenção. Desde que sou desenvolvedor de manutenção há anos, fui apresentado fatos muito interessantes. Aqui estão três.
- Fato 41: A manutenção normalmente consome de 40 a 80% (média, 60%) dos custos de software. Portanto, é provavelmente a fase mais importante do ciclo de vida do software.
- Fato 42: O aprimoramento é responsável por aproximadamente 60% dos custos de manutenção de software. A correção de erros é de aproximadamente 17%. Portanto, a manutenção do software é basicamente adicionar novos recursos ao software antigo, não corrigi-lo.
- Fato 45: Melhor desenvolvimento de engenharia de software leva a mais manutenção, não menos.
Este foi contra-intuitivo, verifica-se que um bom software tem mais manutenção, porque é fácil mudar. Portanto, ele permanece em uso por mais tempo, levando a, sim, mais alterações.
Qual paradigma (como funcional, orientado a objetos, processual) tem a melhor capacidade de manutenção e existe alguma pesquisa para respaldar isso?
maintenance
maintainability
KaizenSoze
fonte
fonte
Respostas:
Acho que você descobrirá que paradigmas como funcional, OO e processual provavelmente não se correlacionam com a manutenção do software de maneira significativa.
O que você pode encontrar a seguir se destaca muito mais claramente com a manutenção do software:
Nível de coleta de requisitos e engenharia de requisitos
Boas práticas de desenvolvimento: (acoplamento fraco, alta coesão, teste de unidade, YAGNI ...)
Engenheiros de software qualificados e qualificados (eles valem 10 vezes mais que um idiota)
Equipe qualificada e organizada de controle de qualidade técnico
Bom gerenciamento de projetos liderado por gerentes de projetos competentes (ainda mais difícil de encontrar do que IMHO de desenvolvedores de software qualificados)
Bons proprietários de produtos ou gerentes de aplicativos, liderança forte, boa direção a longo prazo, bom feedback para as equipes do projeto, visão geral.
fonte
Você parece estar vendo isso da quantidade de manutenção e não da porcentagem de custo. Um bom software com mais recursos adicionados é apenas uma quantidade maior de software. Se o percentual de manutenção for fixo (por ser um bom software e assumirmos que os recursos adicionais foram adicionados como um bom software), o valor aumentará. É apenas um pedaço maior de torta com o mesmo número de fatias.
Com base nas suas perguntas, importa se o software "bom" foi escrito em: código funcional, OOP ou procedural. Dar a alguém uma serra elétrica guiada por laser economizará na madeira se a pessoa não souber medir?
fonte