Incrível história
de como engenheiros do YouTube secretamente iniciaram um movimento
para matar o IE6
= = =
UMA CONSPIRAÇÃO
PARA MATAR O IE6 (MICROSOFT INTERNET EXPLORER 6)
- por CHRIS
ZACHARIAS
2019-05-01
A consequência
agridoce do incrível crescimento do YouTube é que muitas histórias
serão perdidas sob todas as camadas da nova pintura. É por isso que
eu queria contar a história de como, dez anos atrás, uma pequena
equipe de desenvolvedores da web conspirou para matar o IE6 de dentro
do YouTube e se safar.
Eu não me lembro do
evento desencadeador exato que levou a nossa equipe de
desenvolvimento web a planejar planos para matar o IE6 durante o
almoço no refeitório do YouTube. Talvez tenha sido a vez em que
lancei uma folha de estilo CSS que incluía um seletor de atributos
em um elemento HTML sem suporte. Qualquer desenvolvedor web razoável
espera que isso seja ignorado pelos navegadores que não estão à
altura da tarefa. Este não foi o caso com versões mais antigas do
IE. Sob condições muito específicas, um seletor de atributos em um
elemento HTML não suportado no IE criaria uma recursão interna que,
na melhor das hipóteses, faria com que o navegador travasse e, na
pior das hipóteses, acionasse uma tela azul da morte. Ou talvez
tenha sido a centésima vez que um de nossos engenheiros de software
havia injetado inocentemente uma tag <img> com um atributo src
vazio. Espera-se que ninguém se junte à equipe para saber que nas
primeiras versões do IE, o navegador carregaria o caminho raiz “/”
para atributos src vazios. A tag <img> de repente se comportaria
como um <iframe>, carregando nossa página inicial e todos os
seus recursos dependentes no que poderia se tornar um loop recursivo
em expansão exponencial. Sempre que uma tag de imagem vazia chegava
à página inicial, era uma emergência para todas as mãos no deck
para localizar e substituir o código incorreto antes de fundir
nossos servidores em pesos de papel.
Independentemente de
qualquer que seja o evento naquele momento, ele foi brutal e estava
relacionado ao IE6. O IE6 tinha sido a ruína da existência da nossa
equipe de desenvolvimento web. Pelo menos uma a duas semanas todos os
grandes ciclos de sprint tinham que ser dedicados a consertar a nova
interface do usuário que estava quebrando no IE6. Apesar dessa dor,
nos disseram que tínhamos que continuar apoiando o IE6 porque nossos
usuários talvez não pudessem atualizar ou poderiam estar
trabalhando em empresas que estavam bloqueadas. Os usuários do IE6
representavam cerca de 18% de nossa base de usuários naquele
momento. Nós entendemos que não poderíamos simplesmente desistir
do suporte para isso. No entanto, sentado naquele refeitório, tendo
apenas dormido cerca de algumas horas cada um nos dias anteriores,
nossa compaixão por esses usuários havia desaparecido
completamente. Começamos a fantasiar sobre como poderíamos nos
vingar do IE6. Uma ideia surgiu na superfície e capturou rapidamente
a atenção de todos. Em vez de abandonar completamente o suporte do
IE6, e se apenas ameaçássemos? Como os usuários reagiriam? Eles se
revoltariam contra o YouTube? Eles enviariam ameaças de morte para a
nossa equipe como aconteceu no passado? Ou, de repente, eles se
tornariam fortes defensores dos navegadores modernos? Nós sonhamos
abertamente sobre os trabalhadores de cubículos em todo o mundo
inventando de repente razões criativas de “negócios” para a
necessidade de navegadores atualizados. Os avós manterão reféns
seus netos tecnicamente experientes, exigindo que eles consertem seus
“YouTubes”. O que começou como uma sessão de terapia em equipe
começou a se materializar em um plano real, um plano que rapidamente
percebemos que estávamos posicionados de maneira única para
executar.
O plano era muito
simples. Colocaríamos um pequeno banner acima do player de vídeo
que só apareceria para os usuários do IE6. Ele dizia: “Estaremos
eliminando o suporte ao seu navegador em breve. Atualize para um
desses navegadores mais modernos. ”Ao lado do texto, há links para
as versões atuais dos principais navegadores, incluindo Chrome,
Firefox, IE8 e, eventualmente, Opera. O texto foi intencionalmente
vago e a linha do tempo ficou completamente indefinida. Esperávamos
que isso fosse ameaçador o suficiente para motivar os usuários
finais a fazer o upgrade sem nos forçar a nos comprometer com
qualquer plano de depreciação real. Os usuários teriam a
capacidade de fechar este aviso se quisessem ignorá-lo ou lidar com
isso mais tarde. O código foi projetado para ser o mais sutil
possível, de modo que não captasse a atenção de ninguém que
monitorasse nossos checkins. Ninguém, exceto a equipe de
desenvolvimento da Web, usava o IE6 com alguma regularidade real, por
isso sabíamos que era improvável que alguém notasse nosso banner
aparecer no ambiente de preparação. Nós até atrasamos a tradução
do texto para usuários internacionais, de modo que um tradutor
pedindo por um contexto adicional não pudesse revelar o que
estávamos fazendo. Em seguida, só precisávamos de uma maneira de
colocar o código em produção sem que ninguém percebesse.
Legenda da foto 1, no topo do post:
Banner de depreciação do YouTube IE6 - O banner de depreciação do
IE6 no YouTube em 2009
Descobrimos que um
punhado de pessoas tinha entrado no YouTube em um momento
interessante... vários meses depois de o YouTube ter sido adquirido
pelo Google, mas antes de o Google começar a integrar profundamente
o YouTube à sua organização maior. Os primeiros engenheiros do
YouTube eram legitimamente territoriais e inicialmente hesitantes em
adaptar-se à infraestrutura e às normas do Google. Com suas
propensões por hackers de chapéu cinza, carros velozes e uísque
duro e um número incomum de piercings, tatuagens e pequenos
registros de prisão, muitos foram rejeitados durante as entrevistas
anteriores do Google. Terminando no YouTube, eles viram-se quebrando
as costas para ficar à frente do tráfego crescente
exponencialmente, tendo que se defender constantemente contra os
críticos, explicando como o Google Video iria matá-los em breve. No
momento em que foram adquiridos no Google, muitos desses engenheiros
passaram a ver sua identidade proscrita como um componente crítico
de seu eventual sucesso.
Para cimentar sua
autoridade sobre a base de código do YouTube durante a integração
no Google, os primeiros engenheiros criaram um conjunto de permissões
especializadas chamado “OldTuber”. O OldTuber concedeu-lhe a
capacidade de ignorar completamente as novas políticas de aplicação
de código orientadas para o Google, permitindo que qualquer pessoa
que detenha o código comete diretamente para a base de código do
YouTube, com apenas as análises mais rápidas de código de qualquer
pessoa. Não há necessidade de legibilidade de código. Não há
necessidade de testes exaustivos. Não há necessidade de manter a
cobertura de código. Se você quebrou o site incorretamente usando o
status do OldTuber, ele estava na sua cabeça e você perderia o
privilégio imediatamente, se não o seu trabalho. Então você só
tem que ser um bom cidadão e nunca quebrar o site. Nosso chefe, um
dos primeiros engenheiros do YouTube, fez de tudo para agradar a
equipe de desenvolvimento da Web aos demais engenheiros do YouTube.
Através de seus esforços, alguns de nós acabaram nos encontrando
em posse do status do OldTuber, apesar de nunca terem feito parte da
equipe original. Era como se estivéssemos andando pela rua quando
alguém nos confundiu com manobristas e nos entregou as chaves da
Ferrari. Para melhor ou para pior, não éramos exatamente os tipos
de apenas entregar as chaves de volta e ir embora. Vimos uma
oportunidade à nossa frente de aleijar permanentemente o IE6 que
talvez nunca voltássemos a ter. Se tudo desse errado, muitos de nós
certamente seriam demitidos. Nosso desenvolvedor web mais renegado,
um croata de fala mansa, insistiu em verificar o código em seu nome,
como um distintivo de honra pessoal, e o resto de nós aproveitou
nosso status do OldTuber para aprovar a revisão do código. O código
foi mesclado em produção e nosso banner foi publicado alguns dias
depois.
A primeira pessoa a
passar pelas nossas mesas foi o líder da equipe de relações
públicas. Ele era um homem inteligente e elegante, sempre
borbulhando de energia e entusiasmo. Exceto desta vez. Desta vez ele
estava estranhamente espinhoso. Ele entrara em um dia normal para
encontrar e-mails de todas as grandes publicações de tecnologia
perguntando por que o segundo maior site do planeta ameaçava cortar
o acesso a quase um quinto de sua base de usuários. Felizmente para
nós, as publicações já tinham estabelecido em uma narrativa que
isso era um grande benefício para a Internet. Por sua ligação, o
YouTube liderou a tarefa de tornar a Web uma experiência mais rápida
e segura para todos os usuários. Toda a equipe de relações
públicas tinha Macs rodando o Chrome e não conseguia nem ver o que
tínhamos feito, quanto mais emitir comentários para a imprensa
sobre qualquer coisa. Eles foram pegos completamente inconscientes.
Nós avidamente contamos a eles tudo sobre o que havíamos lançado e
os ajudamos a elaborar os pontos de discussão necessários para
expandir a narrativa já estabelecida pela mídia. Satisfeito por
poder voltar na frente da história, o líder da equipe de relações
públicas virou-se e nos alertou para que nunca fizéssemos algo
assim sem contar a ele primeiro. Ele não queria deixar grandes
oportunidades de relações públicas como essa passarem novamente.
Em seguida vieram os
advogados. Dois advogados seniores correram para as nossas mesas em
estado de pânico abotoado. Eles imediatamente exigiram que
removêssemos o banner. Nós explicamos como precisaríamos dos SREs
para fazer um push de emergência e que levaria pelo menos algumas
horas para ser feito. Frustrado, um dos advogados perguntou “Por
que você teve que colocar o Chrome primeiro?” Confuso, expliquei
que não damos prioridade ao Chrome. Nosso chefe, na conspiração
com a gente, recomendou cuidadosamente que randomizássemos a ordem
dos navegadores listados e, em seguida, boleasse a semente aleatória
para cada visitante, de modo que a interface do usuário não
saltasse entre as páginas, o que havíamos feito. Por sorte, esses
dois advogados ainda usavam o IE6 para acessar certos sistemas
legados e acabaram tendo sementes aleatórias que colocaram o Chrome
na primeira posição. Seu temor era que, ao mostrar um tratamento
preferencial ao Chrome, pudéssemos apertar os ouvidos dos
reguladores europeus já à procura de qualquer comportamento
anticoncorrencial. Embora os advogados admitissem que nada do que
havíamos feito, provavelmente teriam subido para esse nível de
ofensa, isso acontecera em seu turno e eles não gostaram disso. Eu
limpei os cookies repetidamente em minha cópia do IE6 e mostrei os
navegadores que estavam reorganizando a cada atualização. Com o
conteúdo da demonstração, os advogados rapidamente se retiraram de
volta para suas mesas sem mais preocupações.
Eu esperava que as
próximas pessoas fossem os gerentes de engenharia e que eles
ficassem mais irritados, considerando claramente como abusamos do
nosso status de OldTuber. Suspeito, ninguém apareceu naquele dia. No
dia seguinte, um punhado de engenheiros parou para nos parabenizar
pelo lançamento do banner depois de ler artigos pela Internet, mas
foi isso. Perguntei ao meu chefe se ele estava sofrendo algum golpe e
ele deu de ombros, indicando que ninguém o havia puxado para o lado
ainda. Parecia que no momento estávamos a salvo. Surpreso e incapaz
de entender isso, perguntei a um dos gerentes sobre o que ele achava
do lançamento do banner. Ele respondeu: “Oh, eu só imaginei que
vocês copiaram o banner que o Google Docs tinha colocado”. Eu
estava confuso. Como o Google Docs conseguiu nos surpreender? Eu abri
o Google Docs no IE6 e, com certeza, um banner muito parecido com o
nosso estava aparecendo no topo. Ele implorou aos usuários que
fizessem upgrade para evitar a quebra de recursos em termos
semelhantes aos nossos.
Eu conheci alguns
engenheiros na equipe do Google Docs enquanto trabalhava em algumas
bibliotecas JavaScript compartilhadas. Eu estendi a mão para um e
perguntei como eles haviam chegado à decisão de lançar sua própria
bandeira. Ele me explicou que eles estavam querendo preterir o
suporte do IE6 por muito tempo, mas seus gerentes não os deixavam
pelas mesmas razões que sempre ouvimos. Um de seus engenheiros
testando no IE6 havia notado o banner do YouTube logo depois que ele
foi ao ar e imediatamente o levou ao seu gerente como evidência de
por que eles deveriam fazer o mesmo. Pouco tempo depois, os
engenheiros do Google Docs prepararam sua própria bandeira do IE6 e
a colocaram em produção, presumivelmente sob a suposição
equivocada de que havíamos feito nossa diligência e recebido todas
as aprovações necessárias. A primeira vez que muitos Googlers
ouviram conversas sobre os banners do IE6 foi por e-mails, onde
outras equipes começaram a perguntar se poderiam reprovar o IE6,
como o Google Docs. A sorte seria que isso incluísse muitos de
nossos gerentes. Surpreendentemente, nós de alguma forma ignoramos a
detecção como os criadores do banner IE6 dentro do Google.
Eventualmente, a
administração de engenharia do YouTube se perguntou como a decisão
de desaprovar o IE6 foi finalmente tomada, dado que isso aconteceu
tão rapidamente e parecia visivelmente prematuro para um site de
mídia de nossa escala e com uma base de usuários tão ampla. Uma
vez que eles perceberam o que havia acontecido, eles encurralaram
nosso chefe em busca de detalhes, lidaram com as conseqüências de
nossas ações e, a contragosto, chegaram à conclusão de que os
fins haviam justificado os meios. Entre o YouTube, o Google Docs e
várias outras propriedades do Google postando banners do IE6, o
Google deu permissão a todos os outros sites da web para adicionar
seus próprios. Os banners do IE6 de repente começaram a aparecer em
todos os lugares. Em um mês, nossa base de usuários do IE6 do
YouTube foi reduzida pela metade e mais de 10% do tráfego global do
IE6 caiu, enquanto todos os outros navegadores aumentaram em valores
correspondentes. Os resultados foram melhores do que a nossa equipe
de desenvolvimento da Web jamais pretendeu.
Legenda da foto 2:
Historical IE6 browser share - O compartilhamento histórico de
diferentes versões do navegador IE
(https://www.w3counter.com/trends)
De alguma forma,
conseguimos o nosso plano para matar o IE6 sem enfrentar nenhuma ação
corretiva significativa. Poucas pessoas sequer sabiam que estávamos
envolvidas e aquelas que o faziam, não queriam chamar a atenção
para isso ou arriscar-se a encorajar um comportamento semelhante. Em
uma cervejaria em São Francisco, nosso chefe, piscando o olho mais
forte, nos fez jurar que nunca mais faríamos algo assim. Nós
concordamos, brindamos com o IE6 caindo em porcentagens de um dígito,
e nunca mais colocamos nada em produção.
Fonte:
http://blog.chriszacharias.com/a-conspiracy-to-kill-ie6
Tragooção*:
http://bit.ly/2ZXufff
{ via Christian
Haagensen Gontijo <http://bit.ly/2UY1bk4>
}
---
(*) Tragooção: Tradução pelo Google Translator
Nenhum comentário:
Postar um comentário