O que aprendi em 10 anos no Stack Overflow

O que aprendi em 10 anos no Stack Overflow
Estou me aproximando do meu décimo aniversário no Stack Overflow. Ao longo dos anos, minha abordagem ao uso do site e a percepção dele mudaram muito, e quero compartilhar minha experiência com você. E estou escrevendo sobre isso do ponto de vista do usuário médio que não está muito envolvido na vida da comunidade do site ou em sua cultura. Atualmente tenho respondido apenas perguntas relacionadas ao VS Code, produto no qual estou trabalhando. No entanto, eu costumava participar ativamente de discussões sobre uma ampla gama de tópicos. Em 10 anos eu fez cerca de 50 perguntas e deu 575 respostas, analisou uma infinidade de comentários de outras pessoas.

Jon Skeete descreveu a cultura do Stack Overflow muito melhor e mais confiável do que jamais serei capaz de fazer. Sua publicação influenciou alguns dos capítulos deste artigo, mas no geral essas são minhas reflexões sinceras sobre minhas experiências no Stack Overflow, o que há de bom e de ruim no site e como ele pode ser usado hoje. Esta discussão será bastante superficial, sem se aprofundar no funcionamento do local ou na sua história.

Então aqui está o que aprendi em 10 anos usando Stack Overflow.

Você precisa ser capaz de fazer perguntas

À primeira vista, nada poderia ser mais simples: digite algumas palavras no campo de texto, clique em “Enviar” e a Internet ajudará magicamente a resolver todos os seus problemas! Mas demorei quase 10 anos para descobrir quais palavras digitar naquele maldito campo para realmente obter resultados. Na verdade, ainda estou aprendendo sobre isso todos os dias.

Fazer boas perguntas é uma habilidade verdadeiramente subestimada (assim como escrever um bom relatório sobre o assunto). Primeiro, como podemos determinar se uma pergunta é “boa”? Ofertas Stack Overflow dica, que lista as seguintes qualidades de uma boa pergunta:

  • Combina com o tema do site?
  • Implica uma resposta objetiva.
  • Ainda não foi perguntado.
  • Foi pesquisado.
  • Descreve claramente o problema, geralmente com um exemplo mínimo e facilmente reproduzível.

Ok, mas como é na prática uma “declaração clara do problema”? Quais informações são relevantes e quais não são? Às vezes parece que para fazer uma boa pergunta, primeiro você precisa saber a resposta.

Infelizmente, o pequeno campo de texto não ajuda aqui. Então, é de admirar que tantos usuários postem perguntas de baixa qualidade? Às vezes, a única resposta que obtêm é um link para alguma documentação confusa. E eles ainda terão sorte. Muitas perguntas de baixa qualidade são simplesmente rejeitadas silenciosamente e desaparecem na interminável lista de perguntas.

Fazer boas perguntas é uma habilidade. Felizmente, pode ser desenvolvido. Aprendi principalmente lendo um monte de perguntas e respostas, observando o que funcionou e o que não funcionou. Quais informações são úteis e quais são irritantes? Embora você ainda tenha medo de usar os conhecimentos adquiridos na prática e fazer perguntas. Apenas dê o seu melhor e aprenda com os resultados. Devo admitir que estou um pouco envergonhado com algumas das minhas primeiras perguntas ignorantes, embora talvez isto prove que melhorei muito as minhas capacidades de questionamento desde que me encontrei neste site.

Perguntas ruins e não tão boas não são a mesma coisa

Não vou embelezar a pílula: algumas perguntas são simplesmente ruins.

Uma pergunta que consiste em uma captura de tela e a frase “POR QUE ISSO NÃO FUNCIONA!?!” - ruim. Por que? É óbvio que o autor quase não fez nenhum esforço. Isto não é tanto uma pergunta, mas sim uma exigência: “faça este trabalho para mim!” Por que eu faria isso? Meu tempo é valioso demais para ser desperdiçado ajudando alguém que, para começar, não quer aprender e não apreciará minha ajuda. Aprenda o que é Stack Overflow.

Agora considere uma pergunta intitulada "Como remover bordas azuis da minha página", que consiste em vários parágrafos de texto que falam sobre a propriedade CSS outline, mas sem mencionar explicitamente as palavras "CSS" ou "outline". Embora uma pergunta como essa possa ir contra muitas diretrizes do Stack Overflow, discordo, não é uma pergunta ruim. O autor pelo menos tentou dar alguma informação, mesmo sem saber o que dar. A tentativa conta, assim como a vontade de perceber e aprender.

No entanto, muitos contribuidores do Stack Overflow provavelmente tratarão ambas as questões da mesma maneira: votar negativamente e fechar. Isso é frustrante e desanima muitos usuários inexperientes antes que eles aprendam a fazer perguntas melhores e até mesmo a entender como o site funciona.

Perguntas realmente ruins não valem seu tempo. Mas deve-se ter em mente que aqueles que fazem perguntas não muito boas o fazem involuntariamente. Eles querem fazer boas perguntas, mas não sabem como. Se você punir os recém-chegados cegamente e sem explicação, como eles aprenderão?

Uma boa pergunta não garante uma resposta

Stack Overflow geralmente fornece respostas mais rápidas para perguntas simples que muitas pessoas podem responder. Você tem alguma dúvida sobre pesquisa binária em JavaScript ou sobre HTML? Maravilhoso! Receba cinco respostas em menos de uma hora. Mas quanto mais complexa ou específica for a pergunta, menor será a probabilidade de obter uma resposta, independentemente da qualidade do texto.

A probabilidade de obter uma resposta também diminui rapidamente com o tempo. Quando uma pergunta avança várias páginas no feed, ela se perde. Uma semana depois, você só pode orar para que alguém com o conhecimento certo encontre sua pergunta (ou clique generosamente nela).

Você pode não gostar das respostas corretas

Todo mês recebo vários votos negativos para respostas ditas impopulares. Esses são os tipos de respostas que dizem essencialmente: “o motivo é porque foi projetado dessa forma”, ou “não é possível porque...”, ou “é um bug que precisa ser corrigido primeiro”. Em todos os casos acima, os autores não recebem uma solução ou mesmo uma solução alternativa. E suspeito que quando as pessoas não gostam do que uma resposta diz, elas a rejeitam. Eu até os entendo, mas isso não significa que as respostas estejam erradas.

É claro que o oposto também é verdadeiro: boas respostas não dizem necessariamente o que você quer ouvir. Algumas das melhores respostas respondem primeiro à pergunta original, mas depois descrevem outras abordagens para resolver o problema. Às vezes eu respondo a pergunta de um usuário e depois escrevo um longo texto explicando por que não é recomendado fazer isso.

Sempre que as expressões de atitude são simplificadas para votos positivos e negativos ou um botão curtir, distinções importantes são perdidas. Esse problema ocorre com frequência na Internet. Quantas redes sociais permitem distinguir entre “apoio” e “acho que está bem dito, mesmo que não goste ou concorde”?

No geral, apesar dos votos negativos mensais, acredito que a comunidade Stack Overflow vota de forma justa. Seguiremos neste caminho.

Quase nunca pergunto no Stack Overflow

Quanto mais tempo eu usava este site, menos frequentemente fazia perguntas sobre ele. Isso se deve em parte ao meu crescimento profissional. Muitos dos problemas que enfrento no trabalho são complexos demais para serem expressos em perguntas simples ou muito específicos para que alguém possa me ajudar. Percebi as limitações do site, por isso evito fazer perguntas para as quais quase certamente não obterei uma boa resposta.

Mas raramente fiz perguntas aqui, mesmo quando estava aprendendo uma nova linguagem ou estrutura. Não porque ele seja um gênio, muito pelo contrário. Acontece que, depois de anos no Stack Overflow, quando tenho uma pergunta, chego à profunda convicção de que dificilmente serei o primeiro a perguntar. Começo a pesquisar e quase sempre descubro que alguém já perguntou a mesma coisa há alguns anos.

Observar as perguntas de outras pessoas é uma ótima maneira de aprender coisas novas sobre o seu produto.

Agora estou trabalhando Código VS, então criei o hábito de olhar as perguntas marcadas como vscode. Esta é uma ótima maneira de ver como meu código é usado no mundo real. Que problemas os usuários encontram? Como a documentação ou API pode ser melhorada? Por que algo que eu achava absolutamente claro causa tantos mal-entendidos?

As perguntas são um sinal importante que mostra como seu produto está sendo usado. Mas a questão não é responder e seguir em frente, mas tentar primeiro entender por que a pessoa tem uma dúvida. Talvez haja um problema no produto que você não conhece ou algumas suposições que você fez sem saber? As perguntas também me ajudaram a descobrir muitos bugs e me inspiraram a continuar trabalhando.

Se você mantém um produto para desenvolvedores, não pense no Stack Overflow como um depósito de lixo (ou pior, um cemitério de perguntas). Volte regularmente para ver quais perguntas e respostas apareceram. Isso não significa que você precisa responder a todas as perguntas sozinho, mas os sinais do Stack Overflow são importantes demais para serem ignorados.

Os limites entre uma pergunta, um relatório de bug e uma solicitação de recurso são confusos.

Algumas perguntas sobre o VS Code no Stack Overflow eram, na verdade, relatórios de bugs. E muitos outros são, na verdade, solicitações de novos recursos.

Por exemplo, uma pergunta com o título “Por que o VS Code trava quando eu faço...?” - este é um relatório de bug. O VS Code não deve travar em diversas situações. Responder perguntas que são relatórios de erros é contraproducente porque os autores podem ficar satisfeitos com uma solução alternativa e nunca registrar um relatório de erros real. Em situações como essa, costumo pedir aos usuários que registrem um relatório de bug no Github.

Em outros casos, as diferenças podem ser menos óbvias. Por exemplo, a pergunta "Por que o JavaScript IntelliSense não funciona no VS Code?" Dependendo de como o JavaScript IntelliSense não está funcionando, o problema pode se enquadrar em uma das três categorias:

  • Se for um problema de configuração do usuário, é realmente uma questão para Stack Overflow.
  • Se no caso descrito o IntelliSense deveria funcionar, mas não funciona, então este é um relatório de bug.
  • Se no caso descrito o IntelliSense não funcionar, então esta é uma solicitação de um novo recurso.

No final das contas, a maioria dos usuários não se importa com essas nuances — eles apenas querem que o JavaScript IntelliSense funcione.

E embora essas diferenças sejam importantes para mim, como responsável pelo projeto, em geral elas não deveriam importar para mim. Porque perguntas, relatórios de bugs e solicitações de recursos são formas de expressar uma ideia: o usuário espera algo do meu código e não entende. Se o produto fosse perfeito, os usuários nunca fariam perguntas sobre ele, porque tudo ficaria claro para eles e faria exatamente o que eles querem (ou pelo menos lhes diria claramente por que não pode).

Desenvolvedores também são pessoas

As pessoas são emocionais. As pessoas são irracionais. As pessoas são idiotas. Nem sempre, claro, mas às vezes! E acredite ou não, os desenvolvedores também são pessoas.

Existe uma fantasia que nós, desenvolvedores, gostamos de dizer a nós mesmos: “Trabalhamos com computadores, então temos que ser racionais. Compreendemos símbolos enigmáticos, por isso devemos ser inteligentes. O software conquistou o mundo, então temos que ser legais! Legal! Avançar!!!"

Isto está errado. E se fosse assim, então Deus ajude o resto do povo. Mesmo no Stack Overflow, aquela ferramenta para profissionais projetada como uma base de conhecimento objetiva, mesmo no meu canto altamente específico do VS Code, continuo encontrando todo tipo de ultrajes: falácias lógicas, insultos, mentalidade de rebanho, etc.

Não se engane: você provavelmente não é tão perfeito quanto pensa. Mas isto não significa que não devamos tentar livrar-nos das nossas deficiências.

Cara, fui eu quem criou isso

Também sou humano e de vez em quando o que acontece no Stack Overflow me irrita. Por exemplo, quando um usuário escreve bobagens com segurança ou simplesmente dá uma resposta errada a uma pergunta relacionada ao VS Code, produto que criei e que conheço muito bem. Estranhamente, parece que quanto mais errada for a resposta, mais provável é que alguém a considere um facto indiscutível.

Quando isso acontece, ajo como na figura e escrevo a resposta correta.

O que aprendi em 10 anos no Stack Overflow

E várias vezes isso resultou em longas discussões: ai de mim por ousar questionar o conhecimento deles sobre o que eu criei! Pare de tentar estar certo o tempo todo, seus malditos espertos! Porque eu estou certo!!!

É fácil tornar-se cínico nesta desesperança

Quando confrontado com um fluxo interminável de perguntas de baixa qualidade, é fácil tornar-se cínico. Ele nunca ouviu falar do Google? Ele ao menos sabe construir frases coerentes? O que você é, um cachorro?

Às vezes vejo dezenas de novas perguntas em um dia. Observar constantemente todas essas questões de baixa qualidade corre o risco de cair no desprezo ou no cinismo. Esse cinismo pode se espalhar para o site, como atestará qualquer pessoa que tenha encontrado um moderador excessivamente zeloso ou passado algumas horas pesquisando e redigindo uma pergunta, apenas para receber respostas negativas em troca e desaparecer no esquecimento sem qualquer explicação.

Claro, existem usuários que não se esforçam nem um pouco e postam perguntas ruins. Mas acredito que a maior parte das perguntas de baixa qualidade vem de pessoas com boas intenções (embora estúpidas). Sempre tento lembrar o que significa ser um novato. Quando você apenas começa, não entende como tudo realmente funciona aqui. Em alguns casos, você nem sabe quais palavras expressar seu problema corretamente. Acredite, é difícil estar nesta posição. E é desagradável quando você fica encharcado de lixo só por fazer uma pergunta.

Embora o Stack Overflow tenha feito muito para ajudar os novatos, ainda há muito mais que precisa ser feito. Tentei encontrar um equilíbrio entre aderir aos padrões do site e ser tolerante com usuários inexperientes. Isso pode envolver explicar por que votei para encerrar a pergunta ou postar um comentário incentivando o usuário a fornecer mais informações. Ainda tenho espaço para crescer.

Por outro lado, não hesito em votar negativamente em usuários com uma reputação de 50 que postam perguntas como “Qual é o melhor layout de VS Code para desenvolvimento de JavaScript?”, ou que carregam capturas de tela de código em vez de texto.

Às vezes eu só quero te agradecer

Existe uma cultura fraca de gratidão no Stack Overflow. Lembro-me de que uma vez o site cortava automaticamente as palavras “olá” e “obrigado” das perguntas. Talvez isso ainda esteja feito, não verifiquei.

Hoje, quem já trabalhou com suporte ao cliente sabe bem que muita educação pode atrapalhar e até parecer forçada. Mas às vezes alguém neste site faz algo muito importante para você, e a única maneira de agradecê-lo é dando-lhe um plus. É uma droga.

A eficiência não exige que nos tornemos robôs sem alma. Um canal paralelo pode fornecer uma comunicação mais autêntica entre as pessoas, se os próprios usuários desejarem, é claro.

Às vezes quero saber o que aconteceu depois de receber a resposta

Stack Overflow opera segundo um princípio transacional: algumas pessoas fazem perguntas, outras respondem. O que acontece depois de receber uma resposta? Quem sabe? Às vezes me pergunto sobre isso. Minha resposta foi útil? Que projeto modesto ele ajudou? O que o questionador aprendeu?

Claro, é impossível satisfazer esta curiosidade. Exigir que os usuários prestem contas sobre como usarão as informações que recebem seria muito problemático, mesmo que isso fosse possível. Mas é interessante pensar sobre isso.

A gamificação é eficaz...

…ao transformar processos em jogos.

Ainda fico um pouco preocupado quando vejo o pequeno ícone +10 ou +25 na barra de status. Talvez esses pequenos toques de gamificação sejam a razão de eu voltar ao site há 10 anos. Mas com o passar dos anos, também comecei a me perguntar que tipo de jogo é Stack Overflow e o que significa vencer nele.

Tenho certeza de que o sistema foi criado com as melhores intenções: recompensar as pessoas por perguntas e respostas úteis. Mas assim que você adiciona pontuações altas, isso entra em vigor Lei de Goodhart, e alguns usuários começam a ajustar suas ações não para atingir o valor máximo, mas para obter classificações máximas. E isso é importante porque...

Reputação não significa o que você pensa que significa.

A reputação não é equivalente a competência técnica, habilidades de comunicação ou compreensão de como o Stack Overflow funciona ou deveria funcionar.

Não quero dizer que a reputação seja inútil. Simplesmente não significa o que os administradores do Stack Overflow querem dizer ou o que a palavra "reputação" deveria significar. Percebi que reputação é uma medida de influência. Considere duas respostas hipotéticas publicadas no site:

  • Um sobre uma operação git comum. Escrevi uma resposta de três linhas em dois minutos usando o Google.
  • A outra é sobre a teoria dos grafos emaranhados. Talvez apenas cem pessoas em todo o mundo possam responder. Escrevi alguns parágrafos e exemplos de código explicando o problema e como resolvê-lo.

Em cinco anos, a primeira resposta foi visualizada 5 milhões de vezes e recebeu 2000 votos positivos. A segunda resposta foi analisada 300 vezes e recebeu dois votos positivos.

Até certo ponto, isso é muito desonesto. Por que recompensar algo que estava no lugar certo na hora certa? (nem tudo é determinado pela sorte; compreender as regras do jogo também desempenha um papel importante). Por outro lado, a primeira pergunta ajudou muito mais pessoas do que a segunda. Talvez valha a pena reconhecer que, em certo sentido, o reconhecimento leva à acumulação de “reputação”?

Portanto, considero a “reputação” no Stack Overflow uma espécie de medida de influência. A verdadeira reputação não pode ser medida por meros pontos, ela vem da comunidade. De quem são os conselhos que ouço, quem ajuda os outros, em quem confio? Talvez sejam pessoas diferentes, dependendo se eu escrevo em PHP ou para iOS.

Dito isso, não sei o que o Stack Overflow deveria fazer nesse sentido. Os usuários ficariam tão motivados se em vez de “reputação” ganhassem “pontos de astúcia”? Os usuários permanecerão tão engajados se não houver nenhum sistema de pontos? Eu acho que é improvável. E o mito de que a “reputação” no Stack Overflow equivale à reputação real beneficia não apenas o site em si, mas também seus usuários mais ativos. Bem, sério, quem não gosta de aumentar sua reputação?

Não, como acontece na maioria das vezes na vida, para se ter uma ideia real do que está acontecendo é preciso analisar não apenas números. Se um post tem 10 mil pontos no Stack Overflow, então veja como essa pessoa se comunica, quais perguntas e respostas ela publica. E em todos os casos, exceto excepcionais, lembre-se de que as pontuações do Stack Overflow por si só provavelmente não indicarão outra coisa senão a capacidade de uma pessoa de usar o site. E pela minha experiência, muitas vezes eles nem falam sobre isso.

Eu não seria produtivo sem Stack Overflow

Cada vez que preciso fazer algo complicado no git, vou para o Stack Overflow. Cada vez que preciso de algo simples no bash, vou para o Stack Overflow. Cada vez que recebo um erro estranho de compilação, vou para Stack Overflow.

Não sou produtivo sem o IntelliSense, um mecanismo de pesquisa e o Stack Overflow. A julgar por alguns livros, isso me torna um péssimo programador. Eu provavelmente falharia em muitos testes e não resolveria muitos problemas na placa. Que assim seja. Sério, toda vez que uso .sort em JavaScript, tenho que procurar informações sobre quando receberei -1, 0 ou 1, e escrevo JS todos os dias, desenvolvendo o editor mais popular para a linguagem.

Não, Stack Overflow é uma ferramenta incrível. Só um tolo não usaria todas as ferramentas disponíveis. Então por que não ser um tolo interior como eu? Economize recursos cerebrais para conhecimentos importantes, como memorizar todos os enredos da série Seinfeld ou inventar trocadilhos sofisticados (que faltam neste artigo, mas haverá muitos outros de natureza completamente diferente).

Stack Overflow é um milagre

Stack Overflow permite que qualquer pessoa, independentemente de experiência ou conhecimento, poste questões de programação. Essas perguntas são respondidas por completos estranhos, muitos dos quais passam o tempo de suas vidas e carreiras ajudando outras pessoas de graça.

O milagre é o próprio fato da existência e resultado do trabalho do Stack Overflow. Tenho certeza de que nem tudo sai tão bem quanto seus criadores pretendiam, mas eles tentam. Apesar de todas as deficiências, o site tem ajudado um grande número de pessoas há muitos anos, inclusive eu.

Stack Overflow não durará para sempre. Um dia algo melhor aparecerá. Esperançosamente, isso é algo que você aprenderá com os erros do Stack Overflow e tirará o melhor proveito disso. Até então, espero que não consideremos este site garantido. Este é um marco e uma comunidade viva, que é constantemente reabastecida com novas pessoas. Se isso o preocupa, lembre-se de que tudo isso é muito frágil, e mesmo pequenas ações – como ajudar recém-chegados bem-intencionados, mas ainda ignorantes – podem ter um efeito positivo. Se critico este site é só porque me importo e sei como torná-lo melhor.

PS

Eu ainda era um estudante quando cheguei ao Stack Overflow. Eu estava começando a escrever (ES5!) JavaScript no Eclipse e parecia que 90% das perguntas começavam com “Usando jQuery, apenas...”. E mesmo que eu não soubesse o que estava fazendo, estranhos passavam o tempo me ajudando. Acho que não gostei muito disso na época, mas não esqueci.

As pessoas sempre vão querer que o Stack Overflow seja algo diferente: um site de perguntas e respostas; uma ferramenta para resolver problemas domésticos; padrão de vida de programação. E para mim, este site, apesar do seu crescimento e das suas deficiências, é, na sua essência, uma comunidade aberta onde estranhos se ajudam a aprender e a melhorar. E isso é ótimo. Estou feliz por fazer parte do Stack Overflow nos últimos 10 anos e espero continuar fazendo isso. Quero aprender tantas coisas novas na próxima década quanto aprendi na década anterior.

Fonte: habr.com

Adicionar um comentário