No recente artigo intitulado “Entrega Continua de Ganhos na Evolução do Sistema” (“Continued Delivery of High Values as Systems Age”), Chris Sterlin discute o conceito de Deficiências de Software – "A deficiência do software se acumula quando o foco permanece na finalização imediata, enquanto flexibilidade de mudanças do sistema é negligenciada no decorrer do tempo”.
A deficiência de Software vai além do que é tipicamente referido como uma pendência técnica -
Ele identifica cinco classes de deficiências de software:
- Técnica: Coisas que se decidiu não fazer agora e impedirá um futuro desenvolvimento se permanecer assim
- Qualidade: Habilidade reduzida em verificar a qualidade funcional ou técnica de todo sistema
- Gerenciamento de Configuração: Gerenciamento da integração e entrega se torna mais arriscada, complexa e propensa a erros
- Design: Custo de adicionar funcionalidades de complexidade média fica maior que ao se escrever desde o princípio
- Experiência na plataforma: Disponibilidade e custo dos recursos para trabalhar no sistema se tornam limitados
Ele discute como estes débitos surgem nos projetos e provê uma visão de como os projetos acumulam deficiências ao longo do tempo, freqüentemente para a melhor motivação e desejo de se manter o passo das entregas face o aumento da complexidade.
Em uma dica similar, Bill Curtis discute o impacto da Muda (palavra japonesa para lixo) nos projetos de software – o lixo mais comum nestes projetos é o retrabalho, resultado de deficiências de software:
Os poucos estudos disponíveis sobre retrabalho, informam que ele soma entre 30 a 50% do esforço do projeto na maioria das empresas que não embarcaram o processo de melhoria com sucesso. Os números do retrabalho são dolorosos, não apenas para serem coletados, mas também de se enfrentar. Poucos executivos querem admitir que estão desperdiçando cerca de 40% do total investido em desenvolvimento de sistemas.
Sterling sugere caminhos para se lidar e reduzir as deficiências de software:
- Manter uma lista de atividades
- Enfatizar a qualidade
- Evoluir continuamente ferramentas e infraestrutura
- Sempre melhorar o design do sistema
- Espalhar e compartilhar o conhecimento dentro da organização
- E o mais importante, contratar as pessoas certas para trabalhar em seu software!
No artigo ele fornece dicas de como abordar cada um destes pontos.
Ele conclui o artigo com os seguintes comentários:
Com a evolução do sistema eles se tornam mais complexos de se trabalhar. Ativos de software se tornam passivos quando as deficiências surgem nos sistemas através de deficiências técnicas, de qualidade, gerenciamento de configuração, design e experiência na plataforma.
Aplicar os 6 princípios deste artigo direcionará a pequenas mudanças no decorrer do tempo e trará mudanças positivas significantes para o time e para a organização. A meta de gerenciar as deficiências de software é otimizar o valor dos ativos de software para o negócio e aumentar a satisfação dos clientes relativo ao sistema que utilizam.
Como as organizações reduzem a deficiência do software e protegem seus investimentos nos sistemas de software?