66 pontos por xguru 2023-07-10 | 8 comentários | Compartilhar no WhatsApp
  • 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

 
pmc7777 2023-07-12

Acho que isso se aplica a toda área em que existam preocupações com IA, não apenas ao desenvolvimento de software.

 
botplaysdice 2023-07-11

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....

 
dkang 2023-07-10

"Na cachoeira, quem é que fica terrível? Justamente o ser humano"
Concordo, pela experiência que tive

 
hyeonseok 2023-07-10

Bom texto; agora vamos organizar as issues.

 
eususu 2023-07-10

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..

 
neidn 2023-07-12

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.

 
ethanhur 2023-07-10

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.

 
[Este comentário foi ocultado.]