por AI Engineer
In 1968, the term ""Software Crisis"" emerged when systems grew beyond what developers could manage. Every generation since has ""solved"" it with more powerful tools, only to create even bigger problems. Today, AI accelerates the pattern into the Infinite Software Crisis. AI-generated codebases mirror the meandering conversations that created them. Every clarification and pivot gets baked into your architecture. We're vibecoding our way to disaster. The solution: choose simple over easy. One
Cada verso em Inglês seguido da tradução em português.
[music]
[música]
Hey everyone, good afternoon. Um, I'm
Olá pessoal, boa tarde. Hum, vou
going to start my talk with a bit of a
começar minha palestra com uma
confession. Uh, I've shipped code I
confissão. Uh, eu enviei código que
didn't quite understand. Generated it,
eu não entendi bem. Gerei,
tested it, deployed it. Couldn't explain
testei, fiz deploy. Não conseguia explicar
how it worked. And here's the thing,
como funcionava. E aqui está a coisa,
though. I'm willing to bet every one of
porém. Eu aposto que cada um de
you have, too. [applause]
vocês também já fez. [aplausos]
So, now I'm going to admit that we all
Então, agora vou admitir que todos nós
ship code that we don't understand
enviamos código que não entendemos
anymore. I want to take a bit of a
mais. Quero fazer uma
journey, see how this kind of has come
jornada, ver como isso meio que veio
to be. First, look back in history. We
a ser. Primeiro, olhar pra trás na história.
see that history tends to repeat itself.
Vemos que a história tende a se repetir.
Second, we've fallen into a bit of a
Segundo, caímos em uma
trap. We've confused easy with simple.
armadilha. Confundimos fácil com simples.
Lastly, there is a fix, but it requires
Por último, há uma solução, mas requer
us not to outsource our thinking.
que não terceirizemos nosso pensamento.
So, I spent the last few years at
Então, passei os últimos anos na
Netflix helping drive adoption of AI
Netflix ajudando a impulsionar a adoção de ferramentas
tools, and I have to say the
de IA, e tenho que dizer que a
acceleration is absolutely real. Backlog
aceleração é absolutamente real. Itens de backlog
items that used to take days now take
que costumavam levar dias agora levam
hours, and large refactors that have
horas, e grandes refatorações que estavam
been on the books for years are finally
nos livros há anos finalmente
being done. Here's the thing, though.
estão sendo feitas. Aqui está a coisa, porém.
Large production systems always fail in
Grandes sistemas de produção sempre falham de
unexpected ways. Like, look what
formas inesperadas. Tipo, veja o que
happened with CloudFare recently. When
aconteceu com a CloudFare recentemente. Quando
they do, you better understand the code
isso acontece, é melhor você entender o código
you're debugging. And the problem is now
que está debugando. E o problema é que agora
we're generating code at such speed and
estamos gerando código em tal velocidade e
such volume our understanding is having
tal volume que nosso entendimento está tendo
a hard time keeping up.
dificuldade de acompanhar.
Hell, I know I've done it myself. I've
Caramba, sei que eu mesmo fiz isso. Eu
generated a bunch of code, looked at it,
gerei um monte de código, olhei pra ele,
thought, I have no idea how this what
pensei, não tenho ideia de como isso o que
this does. But, you know, the test pass,
isso faz. Mas, sabe, os testes passam,
it works. So, I shipped it. The thing
funciona. Então, enviei. A coisa
here is this isn't really new. Every
aqui é que isso não é realmente novo. Toda
generation of software engineers has
geração de engenheiros de software
eventually hit a wall where software
eventualmente bateu numa parede onde a complexidade
complexity has exceeded their ability to
do software excedeu sua habilidade de
manage it. We're not the fa first to
gerenciá-lo. Não somos os primeiros a
face a software crisis. were the first
enfrentar uma crise de software. Fomos os primeiros
to face it at this infinite scale of
a enfrentar nessa escala infinita de
generation. So let's take a step back to
geração. Então vamos dar um passo atrás para
see where this all started.
ver onde tudo isso começou.
In the late 60s, early '7s, a bunch of
No final dos anos 60, início dos 70, um monte de
smart computer scientists at the time
cientistas da computação inteligentes da época
came together and said, "Hey, we're in a
se reuniram e disseram, "Ei, estamos numa
software crisis. We have this huge
crise de software. Temos essa enorme
demand for software and yet we're not
demanda por software e ainda assim não estamos
really able to keep up and like projects
realmente conseguindo acompanhar e tipo projetos
are taking too long and it's just really
estão levando muito tempo e é apenas realmente
slow. We're not doing a good job."
lento. Não estamos fazendo um bom trabalho."
So Dystra Kano came up with a really
Então Dijkstra Kano veio com uma
great quote and he said when we had a
ótima citação e disse quando tínhamos
few weak computers and I mean to
alguns poucos computadores fracos e quero
paraphrase a longer quote when we had a
parafrasear uma citação maior quando tínhamos
few weak computers programming was a
alguns poucos computadores fracos programar era um
mild problem and now we have gigantic
problema leve e agora temos computadores
computers programming has become a
gigantes programar se tornou um
gigantic problem. He was explaining as
problema gigante. Ele estava explicando que conforme
hardware power grew by a factor of a
o poder do hardware cresceu por um fator de
thousand society's wants of software
mil, os desejos da sociedade por software
grew in proportion and so it left us the
cresceram em proporção e então sobrou para nós
programmers to figure out between the
programadores descobrir entre as
ways and the means how do we support
formas e os meios como suportamos
this much more software.
tanto mais software.
So this kind of keeps happening in a
Então isso meio que continua acontecendo num
cycle. In the 70s we get the C
ciclo. Nos anos 70 temos a linguagem de
programming language so we could write
programação C para podermos escrever
bigger systems. The 80s we have personal
sistemas maiores. Os anos 80 temos computadores
computers. Now everyone can write
pessoais. Agora todo mundo pode escrever
software. In the '9s we get
software. Nos anos 90 temos
object-oriented programming inheritance
programação orientada a objetos, hierarquias de
hierarchies from hell where you know
herança do inferno onde sabe
thanks Java for that. In the 2000s we
obrigado Java por isso. Nos anos 2000
get agile and we sprints and scrum
temos ágil e temos sprints e scrum
masters telling us what to do. There's
masters dizendo o que fazer. Não há
no more waterfall. In the 2010s we had
mais cascata. Nos anos 2010 tivemos
cloud mobile devops you know everything.
nuvem, mobile, devops sabe, tudo.
Software truly ate the world.
Software realmente comeu o mundo.
And today now we have AI. you know,
E hoje agora temos IA. sabe,
co-pilot, cursor, claude, codeex,
gemini, you name it. We could generate
gemini, você nomeia. Podemos gerar
code as fast as we can describe it. The
código tão rápido quanto podemos descrevê-lo. O
pattern continues, but the stale has
padrão continua, mas a escala
really changed. It's it's infinite now.
realmente mudou. É é infinita agora.
So, uh, Fred Brooks, you might know him
Então, uh, Fred Brooks, você pode conhecê-lo
from writing the mythical man month. He
por escrever o mythical man month. Ele
also wrote a paper in 1986 called No
também escreveu um paper em 1986 chamado No
Silver Bullet. And in this, he argued
Silver Bullet. E nele, argumentou
that there'd be no single innovation
que não haveria uma única inovação
that would give us an order of magnitude
que nos daria uma ordem de magnitude
improvement in software productivity.
de melhoria em produtividade de software.
Why? Because he said the hard part
Por quê? Porque ele disse que a parte difícil
wasn't ever the mechanics of coding. the
nunca foram as mecânicas de codificação. A
syntax, the typing, the boilerplate. It
sintaxe, a digitação, o boilerplate. Era
was about understanding the actual
sobre entender o problema
problem and designing the solution. And
real e projetar a solução. E
no tool can eliminate that fundamental
nenhuma ferramenta pode eliminar essa dificuldade
difficulty. Every tool and technique
fundamental. Toda ferramenta e técnica
we've created up to this point makes the
que criamos até este ponto torna as
mechanics easier. The core challenge
mecânicas mais fáceis. O desafio central
though, understanding what to build, how
porém, entender o que construir, como
it should work remains just as hard.
deveria funcionar, permanece tão difícil.
So, if the problem isn't in the
Então, se o problema não está nas
mechanics, why do we keep optimizing for
mecânicas, por que continuamos otimizando para
it? How do experienced engineers end up
isso? Como engenheiros experientes acabam
with code they don't understand? Now,
com código que não entendem? Agora,
the answer, I think, comes down to two
a resposta, eu acho, se resume a duas
words we tend to confuse. simple and
palavras que tendemos a confundir. simples e
easy. We tend to use them
fácil. Tendemos a usá-las
interchangeably, but they really mean
intercambiavelmente, mas realmente significam
completely different things. Uh I was
coisas completamente diferentes. Uh fui
outed at the speaker dinner as being a
denunciado no jantar dos palestrantes como sendo um
closure guy, so this is kind of clear
cara de closure, então isso é meio claro
here. But Rich Hickey, the creator of
aqui. Mas Rich Hickey, o criador da
the closure programming language,
linguagem de programação closure,
explained this in his talk from 2011
explicou isso em sua palestra de 2011
called simple made easy. He defined
chamada simple made easy. Ele definiu
simple meaning one fold, one braid, and
simples significando uma dobra, uma trança, e
no entanglement. Each piece does one
nenhum emaranhado. Cada peça faz uma
thing and doesn't intertwine with
coisa e não se entrelaça com
others. He defines easy as meaning
outras. Ele define fácil como significando
adjacent. What's within reach? What can
adjacente. O que está ao alcance? O que pode
you access without effort? Copy paste
ser acessado sem esforço? Copiar colar
ship. Simple is about structure. Easy is
enviar. Simples é sobre estrutura. Fácil é
about proximity.
sobre proximidade.
The thing is we can't make something
A coisa é que não podemos tornar algo
simple by wishing it. So simplicity
simples desejando. Então simplicidade
requires thought, design and untangling.
requer pensamento, design e desemaranhar.
But we can always make something easier.
Mas sempre podemos tornar algo mais fácil.
You just put it closer. Install a
Você só coloca mais perto. Instala um
package, generate it with AI, you know,
pacote, gera com IA, sabe,
copy a solution off of Stack Overflow.
copia uma solução do Stack Overflow.
It's it's human nature to take the easy
É é da natureza humana pegar o caminho
path. We're wired for it. You know, as I
fácil. Estamos programados para isso. Sabe, como
said, copy something from Stack
eu disse, copiar algo do Stack
Overflow. It's right there. framework
Overflow. Está logo ali. Framework
that handles everything for you with
que lida com tudo pra você com
magic. Install and go. But easy doesn't
mágica. Instale e vá. Mas fácil não
mean simple. Easy means you can add to
significa simples. Fácil significa que você pode adicionar
your system quickly. Simple means you
ao seu sistema rapidamente. Simples significa que você
can understand the work that you've
pode entender o trabalho que
done. Every time we choose easy, we're
fez. Toda vez que escolhemos fácil, estamos
choosing speed now. Complexity later.
escolhendo velocidade agora. Complexidade depois.
And honestly,
E honestamente,
that trade-off really used to work. The
essa troca costumava funcionar. A
complexity accumulated in our codebases
complexidade acumulada em nossas bases de código
slowly enough that we can refactor,
lentamente o suficiente para podermos refatorar,
rethink, and rebuild when needed. I
repensar e reconstruir quando necessário. Eu
think AI has destroyed that balance
acho que a IA destruiu esse equilíbrio
because it's the ultimate easy bun. And
porque é a ferramenta de facilidade definitiva. E
it makes the easy path so frictionless
torna o caminho fácil tão sem atrito
that we don't even consider the simple
que nem consideramos mais o simples.
one anymore. Why think about
Por que pensar em
Crie uma conta grátis e ganhe 15 novas palavras por dia.
Criar conta grátis