Simples e barato VS Complexo e caro
Este artigo foi inspirado nesse vídeo https://www.youtube.com/watch?v=xUPSVSL7En4 do canal Hoje no Mundo Militar que explica a uma parte específica da guerra na Ucrania referente ao uso de drones e tanques.
Contexto
Irei ser breve e caso queira maiores detalhes, sugiro assistir o excelente vídeo do canal Hoje no Mundo Militar. A Segunda Guerra Mundial foi um evento que podemos tirar vários ensinamentos e aplicá-los hoje em nossos tempos.
A indústria bélica nazista e a soviética tinham diferenças importante que podemos analisar muito bem hoje devido os documentos e por vídeos como o do canal do Hoje no Mundo Militar. A indústria alemã tinha na época os veículos e tanques como um dos projetos mais tecnológicos e complexos daquele evento. Os projetistas alemãs tinham um controle rígido da qualidade, enquantos os soviéticos tinham um foco na quantidade, inclusive eles dizam que "A quantidade é uma qualidade por si só".
Alguns pontos interessantes sobre isso:
- Na Alemanha Nazista, existia um rigoroso controle de qualidade onde os tanques saiam com uma qualidade extrema, porém em menor quantidade. Isso significava uma menor quantidade de tanques produzidos e entregues
- Na União Soviética, não existia controle de qualidade optando assim não pela Qualidade e sim pela Quantidade. Isso significava muitos tanques entregues
- Existia casos frequentes onde tanques fabricados na União Soviética vinham faltando elementos importantes
- Os tanques alemães nazista eram projetos complexos e caros. Os soviéticos eram simples e baratos
Os soviéticos conseguiam produzir cerca 15 vezes mais veículos de combate que os alemães, apesar da baixa qualidade e com frequentes problemas. No final, a União Soviética conseguiu derrotar a Alemanha.
Temos bons ensinamentos para tirar disso e utilizar na nossa área.
Insights
A decisão entre soluções simples e complexas eu acredito que tenha a ver diretamente na eficácia e nos custos. Baseado no contexto que eu dei, em exemplos históricos, como os contrastes na produção militar durante a Segunda Guerra Mundial, podemos aplicar essas lições ao desenvolvimento e qualidade de software.
Benefícios das Soluções Simples
- Facilidade de Implementação: Soluções simples são mais rápidas de implementar e adaptar às mudanças.
- Custo Reduzido: Menos complexidade significa menores custos de desenvolvimento e manutenção.
- Manutenção Facilitada: Menos pontos de falha e menor necessidade de especialização.
Desvantagens das Soluções Complexas
- Alto Custo: Soluções complexas geralmente envolvem altos custos iniciais e de manutenção.
- Risco de Falhas: Mais pontos de falha, aumentando o risco de bugs e problemas técnicos.
- Necessidade de Treinamento: Requer treinamento especializado, elevando custos e tempo de adaptação.
Critérios de Decisão
Escalabilidade
Projetos com requisitos de escalabilidade futura podem justificar soluções mais complexas. Eu vejo muitos projetos já começando com arquiteturas absurdas com a justificativa que irá aguentar acessos infinitos. Claramente a escalabilidade é uma das coisas que mais confudem na hora de equilibrar
Recursos Disponíveis
Considerar os recursos financeiros e de tempo disponíveis. Outro pontos interessante a ser considerado como no exemplo da produção Soviética: às vezes será interessante preterir a entrega. Aqui temos motivações importantes e que não daria para falar tudo aqui.
Conclusão
Acredito que o importante é ter coragem para se impor nas reuniões e não romantizar prazos e os custos. Encontrar o equilíbrio entre soluções simples e complexas em testes e processos é essencial para garantir qualidade sem comprometer o orçamento e os prazos. Avaliar com carinho os benefícios e desvantagens de cada abordagem leva a decisões estratégicas mais eficazes.