Executando verificação de segurança...
24
clacerda
Patrocinado
Patrocinado
3 min de leitura ·

A Entrega Contínua e o Caixão do Software de Qualidade

O recente desastre da CrowdStrike é apenas o último sintoma de uma doença muito maior que assola a indústria de software.

A agilidade, quando aplicada de forma correta, é uma força poderosa para o desenvolvimento de software. No entanto, a busca incessante por entregas rápidas e frequentes, tem levado a um cenário em que a qualidade é sacrificada em nome da velocidade. É como se a indústria de software tivesse se transformado em uma fábrica de fast-food, onde a velocidade prevalece sobre a qualidade.

Lembra da era de ouro dos games? Quando um jogo era lançado, ele era impresso em um cartucho ou gravado em um DVD. Não havia volta, nenhuma correção, nenhum hotfix. Se seu jogo estivesse cheio de bugs ou incompleto, era um desastre financeiro. A pressão para entregar o melhor produto possível era imensa. O resultado? Jogos eram normalmente impecáveis.

Avançando para hoje, estamos na era do lançamento de "acesso antecipado". Jogos, e cada vez mais outros softwares, são lançados inacabados com a promessa de "melhorar depois". A entrega contínua se tornou a desculpa perfeita para um trabalho mal feito. É como se estivéssemos dizendo aos clientes: "Não se preocupe com seu produto não estar pronto agora, vamos terminar eventualmente".

Essa mentalidade está se espalhando como fogo. Não são apenas jogos mais. Infraestrutura crítica, sistemas financeiros, até mesmo dispositivos médicos estão sendo submetidos a essa abordagem imprudente. O incidente da CrowdStrike é um duro lembrete de que quando o software falha, as consequências podem ser catastróficas.

Precisamos voltar ao princípio dos lançamentos formais. O software deve ser lançado apenas quando estiver realmente pronto, com evidências robustas de que está correto —não quando for conveniente. É necessário elevar o padrão de qualidade, e os desenvolvedores devem ser responsabilizados pelo software que produzem.

Podemos aprender muito com outras áreas da engenharia. Pense na engenharia civil, por exemplo. Quando uma ponte é construída, ninguém a abriria ao público antes de estar completamente finalizada e ter passado por rigorosos testes de segurança. No Brasil, a ART (Anotação de Responsabilidade Técnica) exige que os engenheiros assinem seus projetos, assumindo total responsabilidade por sua execução. Um erro pode ter implicações criminais severas. Por que deveríamos esperar menos do software, que cada vez mais se torna um componente vital de nossas vidas?

Sabemos que é possível escrever software que funciona corretamente. Isso ocorre quando as organizações responsáveis são motivadas não pelas forças económicas, mas por pressão regulatória significativa. O problema é que a medida que o software continua a "comer o mundo", mais e mais sistemas críticos passam a ser feitos por indústrias que não enfrentam nenhuma pressão regulatória.

Podemos esperar, então que as coisas vão dar muito errado, e um grande desastre envolvendo a perda de muitas vidas é uma questão de "quando" e não de "se". Aí talvez os desenvolvedores parem de tratar seu trabalho como um beta perpétuo e comecem a tratá-lo como o componente crítico de nossas vidas que ele é.

Carregando publicação patrocinada...
2
2

Concordo em partes. O negócio é um fast food. Não precisa ir longe para ver muitas empresas adotando o fail fast. No final, quem sofre é o desenvolver, mas isso faz parte do negócio.

O em partes, é que até em jogos antigos se produziam fitas com bug, mas a linha de produção permitia que fitas fossem gravadas com a correção.

Pode procurar, muitos colecionadores procuram por essas fitas com bug.

2

Que bom que você patrocinou, eu não tinha visto porque estava um pouco afastado do site, e é mais um dos seus artigos com visão clara da realidade da nossa indústria.

O tempo todo eu vejo e falo das mazelas que estão criando como se fosse algo bom, "tudo" é o orientado à modinha, e se você falar que não é bem assim você é taxado de louco.

Como o Alan Kay costuma dizer, quase tudo da tecnologia que importa foi inventado até os anos 70e bem pouca coisa depois, na verdade de relevante mesmo mais anos 80. Eu vou além e esta é até mais fácil de comprovar, quase tudo da computação, a teoria, foi criada até os anos 60. O resto é coisa reembala, com pequena melhoria, ou até um pouco maior, mas só porque a a evolução de outras cosias permitiu, mas teria sido criado antes se as máquinas fossem melhores, e principalmente o que é criado hoje é ruim ou não tão bom assim. Geralmente para alguém ficar famoso, inflar seu currículo, vender livro, curso, consultoria, outras teologias que se tornam necessárias só porque estão adotando coisas erradas.

É verdade que empregadores querem ter mais gente no mercado para que a demanda baixe os custos de salários deles, não é algo coordenado e provavelmente façam nada proposital, podiam fazer muito mais, e só recentemente vi algumas empresas fazendo algo efetivo para dar uma mãozinha, como alguns acham, mas acontece. Também é verdade que empregados estão fazendo tudo para gerar mais vagas tornando o trabalho cada vez pior e precisando de mais gente, de forma sem coordenação, sem ser a intenção original, em quase todos os casos gerais, mas talvez existem muitos casos individuais, eu conheço alguns, mas acontece muito. Não tenho provas, é só minha observação, amos nem sabem bem o que está fazendo, assumem coisas que vão contra a própria estratégia, justamente porque não é algo refletido, estudado, é tudo crença persuasão.

Eu poderia listar a quantidade absurda de coisa, quase todos criadas dos anos 90 para cá onde se tornou muito forte a "invenção" de tecnologias, metologias e técnicas sem necessidade, ou para resolver uma necessidade que só existe porque antes foi usado algo que não deveria, ou ainda algumas coisas que necessidades e resultados reais, mas que o uso foi deturpado, exagerado. E alguns fica fácil provar, mas você não consegue mudar a cabeça das pessoas mais. Elas estão tão certas que estão fazendo o melhor, que é outros problemas, que não conseguem admitir o erro. E aqui tenho que repetir: se você aprende errado, pratica o erro, executa sempre ele, logo você o defende como se sua vida dependesse dele, e em seguida ainda vai ensinar outro fazer errado, ainda mais se conseguir ganhar dinheiro, e quem sabe fama ou poder, com isso. Tudo isso não necessariamente pra falta de caráter, pode ser só ingenuidade ou algo semelhante.

Eu entendo a sua comparação com a engenharia civil (ou mecânica), e até por "te conhecer" sei bem o que está falando, mas acho que algumas pessoas vão entender, por conta delas, outra coisa e vão desqualificar o artigo por isso. Ou só porque "todo mundo está usando e você á maluco de falar que entrega contínua prejudica os projetos". Você não está falando que sempre prejudica. Mas incentiva muito, para fazer isso o cuidado tem que ser extremo, a equipe precisa ser sensacional. Nem todos os casos precisam de um rigor de entrega tão grande, mas muito deveriam ter.

As mesmas pessoas que defendem testes e até TDD fervorosas amente defendem a entrega contínua, mas não perceber como isso pode ser incompatível. Claro que tem gente que faz do jeito correto, claro que tem casos que o errado pode funcionar. Claro que "pronto" não fazer Waterfall de um 1 passo.

Tem que explicar para alguns, muitos não entendem quando se critica algo popular, outros podem até entender na superfície, mas o erro está tão arraigado, a teimosia é tão grande que entre por um ouvido e sai pelo outro.

O dia que esses erros começarem derrubar aviões aí vão mudar a atitude. Ou não? Talvez só na empresa que perde bilhões com isso, ainda mais se considerar a perda indireta.

Software hoje está fazendo uma máquina de quase 1 tonelada circular entre as pessoas e logo será a maioria.

Agora não mais, mas quando o Stack Overflow saia do ar aumentava a taxa de suicídios.

Tem empresa que é pródiga em beta perpétuo, algumas pelo menos mantém a tarjinha pra alertar.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).