- Sobre por que é difícil substituir desenvolvedores por IA
- Muitas notícias dizem que a IA vai substituir desenvolvedores, mas a parte mais difícil de construir software não é programar, e sim criar requisitos claros e precisos
- "Isso não é bug, é feature. Ah, espera, é bug mesmo"
- Requisitos pouco claros acabam gerando bugs
- "Para a IA substituir desenvolvedores, os clientes precisariam explicar com exatidão o que querem. Estamos seguros"
A realidade da IA: xadrez vs. carros autônomos
- A IA teve sucesso em domínios com regras limitadas e claras, como o xadrez, mas carros autônomos representam um desafio muito mais complexo por causa das variáveis e situações excepcionais praticamente infinitas
- Na área de tecnologia, o padrão costuma ser cinco ou seis noves de disponibilidade (
99.999% a 99.9999%)
- Chegar a
99% não custa tanto. 99% significa que seu site pode ficar fora do ar por menos de 3 dias por ano (87.6 horas)
- Mas, a cada novo nove adicionado, o custo para chegar lá cresce exponencialmente
- Para atingir
99.9999%, o sistema só pode ficar indisponível por 31.5 segundos por ano (99.9% são 526 minutos/8.76 horas, 99.99% são 52 minutos, 99.999% são 5.2 minutos)
- Isso exige um enorme esforço de planejamento e trabalho e, claro, custa caro
- Por melhor que a IA fique, sempre haverá risco de acidentes
- Não sabemos exatamente quanto nível de acidente seria aceitável, mas no mínimo ela teria de ser tão boa quanto seres humanos
IA não consegue criar software; consegue criar código
- Criar e manter software tem muito mais em comum com dirigir do que com jogar xadrez
- Há inúmeras variáveis, e as regras são determinadas por julgamento
- Ao criar software, existe um resultado desejado, mas ele não é algo simples como no xadrez
- Software quase nunca está realmente concluído. É um exercício contínuo de adicionar funcionalidades e corrigir bugs
- Diferentemente do software, uma partida de xadrez termina quando alguém vence ou perde
- No desenvolvimento de software, temos uma ferramenta que transforma o design do software em algo parecido com o motor de regras do xadrez: a especificação técnica
- No melhor cenário, essa especificação técnica prevê o comportamento do usuário e o fluxo do programa
- Mas isso quase nunca acontece. Com frequência demais, recebemos uma wishlist como se fosse especificação funcional, ou um wireframe rabiscado num guardanapo, ou documentos de requisitos vagos que nos forçam a tomar a melhor decisão possível
- Para piorar, os requisitos mudam e às vezes são simplesmente ignorados
- Requisitos impossíveis. No texto original, é citado o caso de um projeto de pesquisa sobre COVID por SMS em um lugar sem Wi‑Fi. O certo era não fazer
- Será que a IA conseguiria lidar com esse tipo de situação?
- Para que a IA consiga produzir software funcional, é preciso saber de fato o que se quer e defini-lo de forma clara e precisa
- Nos últimos 10 anos, a indústria de software migrou do modelo waterfall para o ágil
- No waterfall, acreditava-se que as partes interessadas sabiam o que queriam e conseguiam documentar isso, mas o modelo fracassava porque, quando o produto final era entregue, a decepção era enorme
- O ágil é a solução para esse processo
- A IA pode ser mais adequada para reescrever, em hardware mais moderno e em novas linguagens, softwares que já existem
- Ainda há muitos lugares usando software escrito em COBOL, mas quase ninguém está aprendendo essa linguagem
- A IA talvez consiga reproduzir softwares já existentes mais rápido que humanos, mas isso só acontece porque alguém já pensou antes em como aquele software deveria ser feito
- A IA pode até construir software razoavelmente bem se usarmos o processo waterfall, que chamamos de marcha da morte
- E quem fica péssimo no waterfall? Os humanos
- Não apenas na parte de escrever o documento que será entregue à equipe de programadores, mas em tudo o que vem antes disso
- A IA pode fazer algumas coisas impressionantes, mas não consegue ler sua mente nem dizer o que você quer
8 comentários
Acho que isso se aplica a toda área em que existam preocupações com IA, não apenas ao desenvolvimento de software.
Parece que muitas tecnologias vão avançar para automatizar a validação de requisitos. A automação de testes deve brilhar ainda mais... Será que vamos chegar a um mundo em que os humanos só cuidam de gerenciar os casos de teste....
"Na cachoeira, quem é que fica terrível? Justamente o ser humano"
Concordo, pela experiência que tive
Bom texto; agora vamos organizar as issues.
Mesmo que a IA possa ter dificuldade para substituir desenvolvedores, será que, se o desenvolvedor só jogar algumas palavras-chave, a IA não poderia fazer a codificação?
Talvez aquilo que antes se dizia como piada, de programar só falando, acabe virando realidade..
Hoje em dia vocês não desenvolvem assim usando o Copilot ou outras IAs?
Se você escreve em inglês nos comentários o que precisa, ele gera sozinho, então basta verificar se isso corresponde ou não ao que você quer.
Concordo muito com isso. Acho que, no futuro, todos os engenheiros de software terão capacidades mais voltadas para TPM e isso será exigido deles.