Arquivo da tag: falha

Programadores vão queimar no inferno (só que mais)

Ou “Muito bem, Diogo, mas você ativou a minha carta armadilha…”

Sou nerdão de design. Me lembro que durante o desenvolvimento do Satellite Rush lá na Kimeric Labs nós recebiamos muito um feedback específicos dos nossos testers: “O personagem é muito lento.”

O problema é que isso era totalmente intencional. Desde sua gênese o Satellite Rush tinha como premissa que o seu personagem não é um herói. O desafio, portanto, era passar a sensação de impotência sem fazer o personagem ser efetivamente impotente. A equipe de design, eu e o Rafael – que, alias, foi quem me apresentou o Diogo -, batíamos muita boca com a galera de programação, que queria seguir o feedback à risca e deixar o personagem mais rápido. Ia versão, voltava versão e não conseguíamos chegar a um consenso. Afinal de contas, tínhamos dados colhidos no playtest de que uma coisa era comprovadamente melhor do que a outra, certo?

Um dia eu e Rafa, cansados da discussão, sentamos e começamos a pensar juntos em como resolver o problema. Depois de algum tempo de brainstorm fizemos uma nova build com uma ideia que tivemos pra provar nosso ponto. Jogamos ela no nosso grupo de playtesting, que envolvia os membros da equipe, e o resultado foi que “Nossa, bem melhor de controlar assim” foi um dos comentários que mais recebemos. O feedback negativo sobre a velocidade do personagem tinha desaparecido com 100% de sucesso.

“Tá, mas vocês aumentaram a velocidade bastante, né?”, perguntava a equipe.

Não. Nós, inclusive, tínhamos diminuído a velocidade. O que aconteceu é que trocamos a animação antiga, bastante rígida, por uma nova, bem mais dinâmica. Em especial, nós aumentamos a velocidade da animação do personagem sem mexer um milésimo na velocidade de caminhada dele.

Um tempo depois ouvi um dos membros da equipe comparar nosso trabalho com “espelhos e fumaça”.

Eu odeio vocês programadores e sua mágica invisível

Seguido do post da semana passada, exigi do Diogo direito de resposta. Loguei furiosamente no editor de posts do blog e fiquei horas olhando pra página em branco pensando no que eu ia dizer e na evidência que eu ia apresentar pra que me levassem a sério. Foi uma conclusão triste quando eu percebi de que seria muito difícil dar exemplos concretos para a minha fala, uma vez que o tipo de coisa que chega aos olhos dos consumidores raramente é o trabalho de programação.

Acho o trabalho dos programadores lindo. Ter a capacidade de fazer uma coisa burra feito um computador se comportar exatamente da maneira que você quer a ponto de eu ser dependente dos softwares que uso pra fazer 90% do meu trabalho é fantástico.

Num primeiro momento é fácil chegar à conclusão de que é um trabalho que requer muita humildade, uma vez que o seu trabalho é totalmente higiênico – é o mínimo necessário pro produto funcionar – e invisível – o usuário final nunca tem contato com ele ou entende como ele funciona. Citar qualquer caso específico que teve algum tipo de repercussão na mídia pareceria cherry picking da minha parte, porque na maioria das vezes o trabalho dos programadores não chega ao público de maneira clara. Exceto quando chega.

quotes
Eu não inventei uma vírgula disso. Juro.

Não tão recentemente, uma enxurrada de manifestações à respeito da importância de aprender a programar como pedra angular do futuro vem pipocando pela internet. Não acredita em mim? Aquela frase toda em roxo ali não é um link só; são vários, cada um deles sobre a mesma porra de assunto.

Pelos mesmos motivos que parece requerer humildade, programação tem potencial pra incentivar – como acontece – uma quantidade absurda de arrogância. Se o seu trabalho é higiênico e necessário pra que a coisa cumpra o mínimo, é fácil chegar à conclusão de que você é o profissional mais importante da equipe. Se ninguém vê ou entende o que você fez, quer dizer que é impossível te responsabilizarem pelas merdas que você faz a não ser que entendam código.  Isso se soma ao fato de que vivemos um momento da sociedade onde nós ainda estamos engatinhando para longe da mentalidade puramente cartesiana e determinística que é tão atraente em cursos de ciências exatas.

Créditos: Saturday Morning Breakfast Cereal
Créditos: Saturday Morning Breakfast Cereal

O resultado dessa cultura cancerosa é que existe um sem número de profissionais de engenharia que se sentem donos de seus ambientes de trabalho porque de alguma maneira se envaideceram de seus estudos acadêmicos e acham que viraram O Demônio de Laplace, capazes de desatar qualquer nó com seus cérebros matemáticos superdesenvolvidos. Tudo vira métricas, dados, comprovação estatística, pesquisas quantitativas, iterações infinitas – todas ótimas ferramentas caso você saiba o que está fazendo, mas Peste Negra esperando pra acontecer nas mãos de gente metida à besta.

Ferramentas, inclusive, que são usadas pra acabar com qualquer discussão saudável, dando a entender que se não existe comprovação lógica matemática estatística métrica meu-piru-é-de-programação tá errado, e logo a opinião do engenheirão tá mais correta. Ah, a maioria não concorda? Então não dá pra fazer, e vocês precisam que eu consiga fazer pra seguir em frente. É muito fácil atravancar o processo de desenvolver um projeto até todo mundo concordar com você quando a equipe depende do seu trabalho pra seguir em frente.

Nem tudo pode ser solucionado com lógica matemática. Caso contrário não existiriam campos imensos de ciências até hoje discutindo sobre as coisas. Caso contrário todo o corpus de conhecimento da engenharia seria unificado e incontestável dentro da academia e não é isso que acontece. A lógica matemática não funciona no mundo real porque ele é feito de pessoas e não de números.

Ai que escândalo, Daniel. Se tá funcionando, que mal tem?

Aí é que mora o problema. Estar funcionando e estar certo são coisas diferentes. Se o objetivo do seu produto é ser funcional, perfeito, vamos seguir a pipeline lógica e encontrar as melhores soluções mecânicas/digitais. Mas uma vez que sejam cumpridos os critérios lógicos, ainda existe um número infinito de soluções corretas, e o impacto real.

Imagina só: a parede do seu quarto tá descascando, então você contrata um cara pra pintar as paredes. Você e sua cara-metade vão passar um fim de semana no chalé pra dar tempo do indivíduo terminar o serviço, mas quando você chega em casa se depara com a sua parede tomada pela rendição artística de uma batalha aérea entre pênis voadores de facções rivais.

Tem tinta cobrindo sua parede. A tinta não tá escorrendo. Sua parede não caiu. Pra todos os efeitos, você ainda pode morar na sua casa. Mas agora tem pintos na parede. Tranquilo?

Já estou vendo a enxurrada de observações de pessoas de mente lógica falando “Mas você não explicou direito”; “mas o pintor não testou pra ver se os donos da casa iam gostar”. Ah, agora que a cagada já tá feita é muito fácil enxergar os motivos, mas é o óbvio ululante que o que aconteceu aqui foi uma falha catastrófica de projeto, e projetar não é uma tarefa lógica. Ou melhor, é sim, mas a não ser que o camarada tenha estudado muito além da ilha da lógica matemática, ele provavelmente não conhece todos os fatores sensíveis que influenciam no resultado de um projeto. Um produto tem zilhões de objetivos para além de ser funcional.

Se você é engenheiro e está ficando puto lendo isso porque não tem lógica: não é porque você não enxerga a lógica por trás de algo que está sendo feito que ela não está lá.

“Ah, mas isso é uma falácia lógica. Você está me cobrando fé.”

Não; estou te cobrando que você pare de ser um babaca arrogante. É óbvio que você, em cinco minutos, não vai enxergar a lógica por trás de algo que uma pessoa levou uma vida inteira estudando pra entender.

Eu sei que quando o cara falou “espelhos e fumaça” ele estava menosprezando o trabalho de design. Foda-se. Encarei como um elogio. Sem meus espelhos e fumaça que estudei durante toda a minha vida acadêmica e até parte da infância, tu não ia conseguir vender nem pão quente na feira. Filho da puta.

Criem ovários e assumam a responsabilidade

Essa galera domina todas as áreas profissionais, cada um com suas especializações. Todo o trabalho de programação é essencial e de primeira importância, sem o qual o resto todo não funciona. Fora a infinidade de possibilidades e portas que isso abre. Eu morro de inveja disso. Como desenvolvedor de jogos o meu sonho é ter a capacidade de ignorar a realidade e criar uma realidade só minha com as minhas regras e minhas histórias dentro de um computador e ainda ficar rico fazendo isso.

Se vocês tem um trabalho tão misterioso, tão essencial, respeitado pela sociedade e talvez nunca vão entender o que é ser menosprezado porque o produto do seu trabalho parece acessível e óbvio, assumam a responsabilidade que vem com o resto da equipe ser dependente do seu trabalho ao invés de usar isso pra se auto-afirmar e menosprezar os outros.

Lógico que bons programadores sabem que eles não sabem de tudo, e que quando eu falo que tenho inveja eu tô brincando. Mas tá na hora do lead programmer da Soluções Lógicas para Macacos Pelados LLC. do vale do silício parar de endeusar programação e começar a entender que em volta de todo bom produto existe um caminhão de profissionais de diferentes áreas, sem os quais os engenheiros não iam conseguir vender nem pão quente na feira.

Parem de menosprezar as outras profissões e achar que só porque você não entendeu tá errado. Deixem isso pra Gerência de Projetos.

Designers vão queimar no inferno

Sou nerdão da programação. Um dia, depois de virar umas duas noites, finalmente consegui arrumar um defeito no programa que eu estava escrevendo, e me vi celebrando em voz alta sobre o que eu tinha feito. Eu estava em êxtase. Um amigo que não é da informática me pergunta o que eu fiz. Tentando explicar da forma mais compreensiva que eu podia, eu disse:

Um código que meu programa gerava durante sua execução se tornou grande o suficiente para ocupar mais espaço que o pedaço de memória que ele tinha para usar. Fragmentei o código gerado em pedaços menores, e o problema parou de acontecer.

Ele me olhou como se um alienígena tivesse inserido no meu reto uma sonda que modifica meus genes e eu fosse de uma espécie completamente diferente da dele. Mesmo assim, abriu um sorriso que lhe fora imposto pela norma social e tentou ao máximo de suas forças dissimular sua indiferença.

Eu peguei leve na explicação. Eu tenho certeza que peguei leve. Mas receber essa parabenização através do véu do menosprezo ou do desinteresse já é algo com o que me acostumei. Se eu tivesse pulado 10cm acima do meu record no salto em altura ou qualquer outra coisa mais próxima do universo familiar e confortável do meu interlocutor, sua reação seria outra.

Eu odeio vocês, designers e seus produtos lindos.

O produto do trabalho de qualquer designer bom é encantador por natureza. Mesmo que quem o veja não vá contemplar todos os detalhes e as técnicas utilizadas pra concluir seu trabalho, qualquer um que olhar vai achar bonito, encantador, perguntar onde compra, jogar dinheiro na tela, compartilhar com amigos. E o pior de tudo: no debate de forma vs. função, eles podem escolher só as partes que beneficiam seus projetos.

Lhes aprensento a Swirl Faucet:

Impressionante, né? Ela usa duas turbinas que giram em direções opostas pra criar esses padrões e ainda economiza água no processo. Tem até diagramas de como ela seria montada por dentro. Essa pia foi compartilhada à exaustão em tudo que é mídia social, foi featured em vários sites com um fluxo enorme de acesso. Parece maravilhoso, até qualquer pessoa sensata fazer 4 observações:

  1. Meu amigo, o senhor urina? Sai um jatinho de mijo pela uretra, que começa como um fluxo contínuo, mas conforme ele se distancia de sua gloriosa origem, ele se transforma em gotículas, correto? Porque água funciona assim.
  2. Tu já tomou banho de chuveiro com uma cortina de plástico? Ela vem, gelada, com toda a gana do mundo tentar colar em ti. Porque a água do chuveiro desloca o ar, criando uma zona de baixa pressão, e o ar de fora da cortina empurra ela pra dentro. Nessa torneira, o ar ia gerar turbulência suficiente pra bagunçar geral essa espiral linda das fotos.
  3. Água tem outra propriedade chamada de coesão. Resumidamente: água curte colar em si mesma. Então esse monte de gotinha e bagunça vai se juntar em uns gotão ou lâminas de água totalmente caóticas.
  4. Limo. Depósito mineral. Entupimentos.

Essa torneira tem alguma condição de funcionar? SIM. Em gravidade zero, e no vácuo, e jorrando vaselina ao invés de água.

Ai que escândalo, Diogo. É só um conceito, que mal tem?

É só um conceito agora que o imbecil aqui teve que explicar até como tu mija. O grande problema é que tem um efeito que o pessoal por trás de Dungeons & Dragons já sacou a muito tempo:

wantstobelieve

É muito mais fácil enganar alguém que quer acreditar em ti. Com a estética do seu lado e tamanho poder de sedução, o designer da Swirl Faucet tem sim a responsabilidade de consultar um especialista em dinâmica de fluídos para verificar a validade da sua idéia. Ainda há o argumento de que o designer poderia deixar claro que não fez isso, mas não é assim que funciona. Quando bate na mão da imprensa ela vai mostrar aquilo do jeito que quiser. E uma vez que começou a corrente de compartilhamento, ninguém mais tem controle do que é dito.

Acha que o caso da torneira é coisa pequena e que isso não tem como virar um desastre? Já ouviu falar do Cicret Bracelet?

Olha bem esta caralha. Olha que coisa linda. Foda-se os smartwatch da Apple. Eu posso projetar a tela do meu celular no meu braço e interagir com ela. Ela é fininha, discreta, linda. MAS ADIVINHA SÓ: não é assim que luz, projetores, pele e sensores de toque funcionam. Todas as imagens e vídeos do produto são montagens no Photoshop ou After Effects. E o CaptainDisillusion fez um ótimo vídeo explicando os detalhes de por quê não funciona.

O caldo engrossa quando os caras por trás desse produto tentaram fazer uma campanha no Indiegogo pedindo 500.000 dólares. A campanha não teve muito sucesso até ser desligada pela empresa responsável. O Indiegogo cobra dos criadores dos projetos que o produto final entregue seja compatível com o que foi divulgado. Aí eles botaram um botão de doação direto no site deles, sem as amarras de uma empresa que condicionaria a entrega do dinheiro a um produto justo.

Ah, Diogo, mas fala sério, quem seria burro de doar pra um negócio desses?

muitoburro
DEZ MIL PESSOAS. 750 MIL DÓLARES.

E aí, como essas pessoas vão se sentir quando receberem o pseudo-produto (se é que vão receber?). A notícia é que eles começaram a evoluir o design do esquema, e o bracelete fininho teve que ter um projetor embutido, diminuir a distância dos eletrônicos e da bateria, ganhar uma porta para carregador, e depois dessas modificações, virou isto:

QUANTOS LIKES MERECE ESSA PRINCESA? QUANTO SERÁ QUE ISSO PESA? QUANTO SERÁ QUE DURA A BATERIA?

Criem ovários e assumam a responsabilidade

Esses caras ganham um trilhão de likes e shares. Esses caras juntam 750 mil dólares pra um produto que não tem como existir, porque ele é muuuuuuito appealing. Eles ignoram todo o funcionamento da realidade pra poder criar uma idéia de produto que é divertida e parece útil. Eu morro de inveja disso. Como desenvolvedor de jogos, meu sonho é exatamente poder ignorar todas as restrições pra criar uma realidade mágica e vendável.

Se vocês conseguem comunicar tanto com o trabalho de vocês e talvez nunca vão conhecer o sorriso amarelo de quem não entende o fruto do seu trabalho, assumam a responsabilidade que isso pode ter sobre o público.

Lógico que bons designers tem plena noção de que esse tipo de coisa é completamente anti-ética, e lógico que quando eu falo que morro de inveja disso eu tô brincando. Mas tá na hora do Diretor Criativo de Whatever da Agência do Unicórnio Mágico botar o pézinho na realidade e aceitar sua responsabilidade em um mundo onde as coisas são compartilhadas, onde elas fogem do controle, onde o que se projeta pode ser usado para o bem e para o mal.

Parem de moldar a realidade pra acomodar a existência do seu produto. Deixem isso pro Marketing.