Joel on Software

Joel on Software   Joel sobre Software

 

Outros artigos de "Joel on Software" em Português

Outros artigos de "Joel on Software" em Inglês

Envie email para o autor (apenas em Inglês)

 

Construindo Comunidades com Software


Por Joel Spolsky
Traduzido por Emerson Seiti Takahashi
Segunda-feira, Março 03, 2003

O cientista social Ray Oldenburg fala sobre como os seres humanos precisam de um terceiro lugar, além de um lugar para morar e trabalhar, para encontrar com os amigos, tomar uma cerveja, discutir os eventos do dia e desfrutar de alguma interação humana. Cafeterias, bares, salões de beleza, choperias, ao redor da piscina, clubes e outros pontos de reunião são vitais como fábricas, escolas e apartamentos [“The Great Good Place”, 1989]. Mas a sociedade capitalista tem erodido esses terceiros lugares e a sociedade fica empobrecida. Em “Bowling Alone”, Robert Putnam traz à vista e prende sua atenção com detalhes bem documentados, resmas de evidência que a sociedade americana tem perdido seus terceiros lugares. Nos últimos 25 anos, os americanos “pertencem a menos organizações que se encontram, conhecem seus vizinhos menos, se encontram com os amigos menos freq¨entemente e mesmo socializa com suas famílias menos”. [2000] Para muitas pessoas, a vida consiste em ir ao trabalho e então ir para casa e assistir TV. Trabalho-TV-Dormir-Trabalho-TV-Dormir. Isso parece para mim que o fenômeno é mais exato entre desenvolvedores de software, especialmente em lugares como o Vale do Silício e os subúrbios de Seattle. As pessoas se formam da universidade, se mudam para o outro lado do país para um novo lugar onde eles não conhecem ninguém e acabam trabalhando 12 horas por dia basicamente na solidão.

Então não é surpresa que tantos programadores, desesperados por um pouco de contato humano reúnem-se em comunidades online – salas de bate-papo, fóruns de discussão, projetos de código aberto e Ultima Online. Quando estamos criando software para comunidades, nós estamos, a alguma extensão, tentando criar um terceiro lugar. E como muitos outros projetos de arquitetura, as decisões de design que nós fazemos são cruciais. Faça um bar muito barulhento e as pessoas não poderão ser capazes de conversar. Isso faz do bar um lugar diferente que uma cafeteria. Faça uma cafeteria sem muitas cadeiras, como o Starbucks faz, e as pessoas irão levar seu café direto para suas salas solitárias, em vez de ficar e socializar como eles fazem na cafeteria de fantasia do seriado de tv “Friends”, um programa que todos assistem porque um terceiro lugar substituto é menos doloroso que nenhum.

Em software, como na arquitetura, decisões de design são tão importantes como o tipo de comunidade que se desenvolve ou falha em desenvolver. Quando você faz algo fácil, as pessoas fazem isso mais freq¨entemente. Quando você faz algo difícil, as pessoas fazem isso menos freq¨entemente. Dessa maneira você pode encorajar gentilmente pessoas a se comportarem em certos modos que determinam a personalidade e a qualidade da comunidade. Ela vai ser amigável? Há conversações focadas, um salão europeu cheio de intelectuais com idéias interessantes? Ou é um lugar deserto com um pouco de panfletos publicitários sujos pelo chão que ninguém se importou em recolher?

Olhando nas poucas comunidades online e você perceberá imediatamente a diferente atmosfera social. Olhando mais de perto e você verá que essa variação é um derivado das decisões de design do software.

Na Usenet, as conversações duram por meses e meses e elas mudam tanto de assunto que você nunca sabe por onde você esteve. Quando um novato aparecer e perguntar uma questão apropriada ao assunto, os veteranos gritam alto e mandam ele ler o FAQ. Citando, com o símbolo “>” é uma doença que deixa impossível ler qualquer conversação sem se chatear até a morte relendo a história toda da corrente de argumentos que você leu no original, alguns segundos atrás, de novo e de novo e de novo. Leitura Shlemiel o Pintor.

No IRC, você não pode possuir o apelido e você não pode possuir o canal – quando a última pessoa sai da sala, qualquer um pode ser o dono. Essa é a maneira como o software funciona. O resultado social foi que é muitas vezes impossível encontrar seus amigos quando você voltar no próximo dia, porque alguém poderia te deixar fora da sala de bate-papo e seus amigos podem ter sido forçados a escolher diferentes apelidos. A única maneira de prevenir homofóbicos em Perth, Austrália de dominar os canais de chat gay quando os garotos foram dormir foi criar um software robô para ficar à toa 24 horas por dia e proteger o canal. Muitos participantes do IRC colocam mais esforço em complicadas guerras de robô, tentativas de dominar canais e bobagens em geral do que verdadeiramente ter uma conversa, freq¨entemente arruinando as coisas para o resto de nós.

Na maioria dos fóruns de discussão sobre investimento é praticamente impossível acompanhar uma conversação do começo ao fim, porque cada mensagem está em sua própria página, o que faz bastante inventário para venda de banners mas a latência para ler a conversação eventualmente vai te levar à loucura. A grande quantidade de merda comercial piscando nos quatro cantos da conversação faz você parecer quando você tentava fazer amigos na Times Square mas as luzes do néon continuavam a demandar toda atenção.

No Slashdot, cada conversação tem centenas de respostas, muitas das quais são idênticas, então a conversação parece monótona e estúpida. Em um momento eu revelarei por que o Slashdot tem tantas respostas idênticas e o fórum do Joel Sobre Software não tem.

E na FuckedCompany.com, o fórum de discussão é completamente, totalmente sem valor; a vasta maioria das mensagens consiste de profanidades irrelevantes e insolência em geral e parece um concurso de grosseria de uma fraternidade, sem a fraternidade.

Então, nós descobrimos o primeiro axioma das comunidades online:

Pequenos detalhes de implementação no software resultam em grandes diferenças na maneira que a comunidade se desenvolve, comporta e age

Usuários de IRC se organizam em torno de guerras de robôs porque o software não deixa você reservar um canal. Conversas na Usenet são massivamente redundantes porque o leitor original da Usenet, “rn”, projetado para modems de 300 bauds, nunca mostra suas velhas conversas, apenas as novas, então se você quer comentar sobre algo que alguém disse, você tinha que cita-lo ou seu comentário não faria nenhum sentido.

Com isso em mente, eu adoraria responder as questões mais comuns sobre o fórum do Joel Sobre Software, porque ele foi projetado dessa maneira, como aquilo o faz funcionar e como ele poderia ser melhorado.

P. Por que o software é tão simples?

R. Nos primeiros dias do fórum Joel Sobre Software, alcançar uma massa crítica para fazer a conversa fluir era importante para previnir o fenômeno do restaurante vazio (ninguém vai para um restaurante vazio, eles sempre irão para o restaurante cheio ao lado mesmo se ele for totalmente lixo). Deste modo o objetivo do projeto era eliminar os obstáculos para deixar uma mensagem. Isso porque não tem nenhum registro e literalmente não há recursos, então não há nada a aprender.

O objetivo empresarial do software que roda o fórum era fornecer suporte técnico para os produtos da Fog Creek. Isso era o que pagava o desenvolvimento. Para alcançar aquele objetivo, nada era mais importante que fazer o software muito simples que qualquer um poderia estar confortável usando ele. Tudo sobre como o fórum funciona é incrivelmente óbvio. Eu não sei de ninguém que não foi capaz de descobrir como usa-lo imediatamente.

P. Você poderia fazer um recurso onde eu seleciono uma opção que diz “me envie um email se alguém responder a minha mensagem”?

R. Esse recurso, tão fácil de implementar e portanto tão tentador aos programadores, é a melhor maneira de matar qualquer fórum jovem. Implemente esse recurso e você nunca poderá atingir a massa crítica. O LUSENET do Philip Greenspun tem esse recurso e você pode observa-lo tirando a vida de várias grupos de discussão jovens.

Por quê?

O que acontece é que as pessoas vão para o grupo fazer uma pergunta. Se você oferecer a opção de “notificar quando responderem a pergunta”, essas pessoas irão mandar sua questão, ativar o recurso e nunca voltam. Eles irão apenas ler as respostas em sua caixa de email. Fim. Se você eliminar o recurso, as pessoas não terão outra escolha senão verificar de vez em quando. E enquanto eles estão verificando, eles podem ler alguma outra mensagem que parece interessante. E eles podem ter algo a contribuir a aquela mensagem. E nos críticos primeiros dias quando você está tentando fazer o grupo de discussão decolar, você aumentou a “viscosidade” e você tem mais pessoas por aí, que ajudam a alcançar a massa crítica muito mais rápido.

P. OK, mas você pode pelo menos ter ramificações? Se alguém sai da tangente, isso deveria estar em sua própria ramificação que você pode seguir ou voltar a ramificação principal.

R. Ramificação é muito lógico a mente do programador mas não corresponde a maneira que as conversações acontecem na vida real. Discussões ramificadas são desarticuladas para seguir e distrativas. Você sabe o que eu acho distrativo? Quando eu estou tentando fazer algo no website do meu banco e o site é tão lento que eu não posso me lembrar o que eu estava fazendo de um click para o próximo. Isso me lembra de uma piada. Três esposas conversando. Esposa 1: “Eu estou tão desmemoriada que outro dia eu estava na escada de meu apartamento com uma sacola e eu não podia lembrar se eu estava levando o lixo para fora ou subindo as escadas com as compras”. Esposa 2: Eu estou tão esquecida que eu estava em meu carro na estrada e eu não podia lembrar se eu estava indo para casa ou indo para shul”. Esposa 3: “Graças a Deus, eu ainda tenho minha memória, clara como um sino, batendo na madeira. (toc, toc, toc). Entre, a porta está aberta!” Ramificações faz as discussões saírem do assunto e ler uma conversação que é tumultuada e não natural. Melhor forçar as pessoas a começarem um novo tópico se eles quiserem sair do tópico. Que me lembra...

P. Sua lista de tópicos está classificada de forma errada. Ela deveria colocar o tópico com a mais recente resposta primeiro, ao invés de lista-los baseados no tempo da mensagem original.

R. Eu poderia fazer isso; isso é o que vários fóruns na web fazem. Mas quando você faz isso, certos tópicos tendem a ficar no topo para sempre, porque as pessoas estarão dispostas a argumentar sobre passaportes HB1 ou o que está errado com a Ciência da Computação da faculdade até o fim do universo. Todo dia 100 novas pessoas chegam ao fórum pela primeira vez e eles começam pelo topo da lista e elas entram naquela discussão com gosto.

Da maneira que eu faço há duas vantagens. Uma, os tópicos morrem rapidamente, então a conversação continua relativamente interessante. Eventualmente as pessoas tem que parar de argumentar sobre um dado ponto.

Dois, a ordem dos tópicos na home page é estável, então é fácil de achar um tópico de novo que você estava interessado porque ele sempre está no mesmo lugar relativo aos seus vizinhos.

P. Por que você não tem nenhum tipo de sistema que eu posso ver que mensagens eu já li?

R. Nós temos o melhor sistema que pode ser implementado em uma maneira escalável e distribuída: nós deixamos o browser de todo mundo ficar de olho nisso. Web browsers irão mudar a cor dos links que você já visitou do azul para o roxo. Então tudo o que nós temos que fazer é sutilmente mudar a URL para cada tópico para incluir o número de respostas disponíveis; dessa maneira quando há respostas adicionais a pergunta irá aparecer na cor de “não lida” novamente.

Qualquer coisa mais elaborada que essa iria ser mais difícil de construir e iria complicar desnecessariamente a UI.

P. O maldito link “responder” está lá no final da página. Essa é uma irritação de usabilidade porque você tem que ir até o final da página.

R. Isso é intencional. Eu preferiria que você lesse todas as mensagens antes de mandar a sua, senão você pode mandar algo que é repetitivo ou parece separado depois de vir da última mensagem que vinha antes. Claro, eu não posso fisicamente pegar seus olhos e move-los da esquerda para direita, forçando você a ler toda conversação antes de deixar você mandar uma mensagem mas se eu coloco o link “responder” no fim da página isso iria encorajar positivamente as pessoas a vomitar suas pequenas jóias antes deles lerem o que já está lá. Essa é a razão de porque os tópicos do Slashdot tem 500 respostas mas apenas 17 respostas interessantes porque ninguém gosta de ler as discussões Slashdot: elas parecem como uma classe de aula cheio de crianças todas gritando a mesma resposta ao mesmo tempo. (“ha ha... Bill Gates! Isso é um oxímoro!”).

P. O maldito link “Comece um Novo Tópico” está no final da página...

R. Ahã, a mesma coisa.

P. Por que você não mostra as pessoas suas mensagens para confirma-las antes de mandá-las. Então as pessoas não fariam erros e digitariam errado.

R. Empiricamente, isso não é verdade. Não apenas isso não é verdade, ela é o oposto da verdade.

Parte um: quando você tem um passo de confirmação, a maioria das pessoas apenas clicam e nem notam. Muitas poucas pessoas relêem suas mensagens cuidadosamente. Se eles quisessem reler suas mensagens cuidadosamente, eles poderiam faze-lo enquanto eles estavam escrevendo mas eles já estão chateados por suas mensagens, são notícias de ontem, eles estão pronto a seguir em frente.

Parte dois: a falta do passo de confirmação na verdade faz as pessoas serem mais cuidadosas. É como naqueles estudos que eles fizeram que mostram que é mais seguro, em estradas de montanhas com muitas curvas, remover a barreira de proteção porque isso faz as pessoas tremerem de medo e então eles dirigem mais cuidadosamente e de qualquer maneira, aquela pequena e frágil barreira de alumínio não vai parar um utilitário de 2 toneladas se movendo a 80 Km/h de cair do rochedo. Estatisticamente, é melhor você apenas assustar os motoristas então eles dirigem a 3Km/h nas curvas.

P. Por que você não mostra a mensagem que eu estou respondendo, quando eu estou escrevendo minha resposta?

R. Porque aquilo irá tenta-lo a citar uma parte da mensagem em sua própria resposta. Qualquer coisa que eu possa fazer para reduzir a quantidade de citações vai aumentar a fluidez da conversação, fazendo os tópicos interessantes de ler. Quando alguém cita algo anteriormente dito, a pessoa que lê o tópico tem de ler a mesma coisa duas vezes, o que é inútil e automaticamente garantido a ser chato.

Algumas vezes as pessoas ainda tentam citar coisas, geralmente porque eles estão respondendo a algo de três mensagens atrás ou porque eles estão negligentemente concentrando em detalhes de menor importância e eles precisam contradizer 12 pontos separados. Não são más pessoas, eles são apenas programadores e programação requer que você coloque o pingo em cada i e corte cada t, então você entra em uma mentalidade onde você não pode deixar nenhum argumento sem resposta mais que você ignoraria um erro do seu compilador. Mas eu iria ficar infernal se eu deixasse isso fácil para você. Eu estou sempre quase tentado a encontrar uma maneira de mostrar as mensagens como figuras para você não recortar e colar. Se você realmente necessita responder a algo de três mensagens atrás, gentilmente arranje um tempo para escrever uma sentença decente em inglês (“Quando Fred disse blah, ele não deve ter considerado...”), não cubra o lugar com seus <<<>>>.

P. Por que algumas mensagens desaparecem?

R. O fórum é moderado. Isso significa que algumas poucas pessoas tem o poder mágico de apagar uma mensagem. Se a mensagem é apagada e é a primeira de uma conversação, a conversação é deletada porque não há nenhuma maneira de entrar.

P. Mas isso é censura!

R. Não, isso é pegar o lixo do parque. Se nós não fizéssemos isso, o ruído nas conversações iria piorar. Pessoas mandam spam e esquemas de enriquecer, mandar comentários antisemíticos sobre mim, mandam mensagens nonsense que não faz nenhum sentido. Alguns jovens idealistas podem imaginar um mundo totalmente não censurado como em um onde a livre troca de idéias inteligentes aumenta o QI de todo mundo, um Sociedade de Debate de Oxford ou Cantinho dos Oradores. Eu sou pragmático e entendo que um mundo totalmente não censurado seria como sua caixa de entrada: 80% spam, anúncios e fraudes, rapidamente afugentando as poucas pessoas interessantes.

Se você está procurando um lugar para se expressar no qual você não terá nenhuma moderação, meu conselho seria (a) criar um fórum novo e (b) faze-lo popular. [Desculpas a Larry Wall].

P. Como você decide o que deletar?

R. Primeiro, eu removo todas as mensagens off-topic ou mensagens que, na minha opinião, são de interesse apenas de um pequeno número de pessoas. Se algo não é sobre tópicos de interesse geral como o Joel Sobre Software, ele pode ser de certas pessoas mas não interessar a pessoas que vieram a meu site escutar sobre desenvolvimento de software.

Minha política no passado tem sido que tópicos fora do assunto incluem qualquer discussão do fórum, até o seu design ou usabilidade. Há uma leve diferente razão para isso, quase outro axioma. Todo fórum, lista de email, grupo de discussão e BBS irá, todos sendo iguais, desviar para conversações sobre o próprio fórum a cada uma ou duas semanas. Literalmente uma vez por semana alguém entra e anuncia sua lista de melhorias para o software do fórum que demandam que sejam feitas agora. E alguém fala, “veja amigo, você não está pagando por isso Joel está nos fazendo um favor, caia fora”. E outra pessoa diz “Joel não está fazendo isso pela bondade de seu coração isso é marketing para a Fog Creek”. E isso é apenas MUUUITO CHATO porque acontece TODA SEMANA. Pode ser excitante para a nova pessoa que acaba de chegar na lista mas muito pouco sobre desenvolvimento de software, então como Strong Bad diz: “APAGADO”. Infelizmente o que eu tenho aprendido é que tentar parar as pessoas de falar sobre o fórum é como tentar parar um rio. Mas por favor, se você está lendo esse artigo e você quer discuti-lo no fórum, por favor, me faça um grande favor e resista ao impulso.

Nós iremos deletar mensagens que são ataques pessoais ad hominem de personalidades não públicas. Melhor eu definir isso. Ad hominem significa que é um ataque no indivíduo ao invés de suas idéias. Se você diz: “isso é uma idéia estúpida porque...” tudo bem. Se você diz: “você é estúpido” então isso é um ataque ad hominem. Se é cruel, rude ou difamatório, eu deleto. Há apenas uma exceção: já que o fórum Joel Sobre Software é o melhor lugar para criticar o Joel, mensagens cruéis ou rudes sobre o Joel são permitidas a ficar mas somente se elas contiverem alguma pedacinho de uma idéia ou argumento útil.

Eu automaticamente deleto mensagens que comentam sobre erros de gramática ou ortografia de uma mensagem anterior. Nós estaremos falando sobre entrevistas e alguém diz: “É um milagre que você consiga um trabalho com esse erro de ortografia”. Apenas é super chato falar de erros de outras pessoas. SUPER SUPER chato.

P. Por que você apenas não mostra as regras ao invés de mantê-las como um mistério?

R. Um outro dia eu estava tomando um trem do Aeroporto de Newark de volta a Manhattan. Sem contar o mau estado, a única coisa para ler era uma grande placa que explicava rigorosamente e em grande detalhe que se você se comportasse mal, você seria colocado para fora do trem na próxima parada e a polícia seria convocada. E eu pensei, 99.99999% das pessoas que lêem o sinal não vão se comportar mal e os baderneiros não se importariam com o que a placa diz. Então o resultado da placa é fazer os cidadãos honestos se sentirem como se fossem acusados de algo e isso não detém os sociopatas e apenas relembra os bons cidadãos de Nova Jersey interminavelmente que eles estão em Newark, a capital do crime, onde sociopatas entram nos trens e fazem Coisas Desagradáveis e Fazem um Escândalo e tem que ser Retirados e a Polícia Convocada.

Quase todos no fórum Joel Sobre Software, de alguma forma, nasceu com a parte do cérebro que os diz que não é civilizado a mandar mensagens cruéis atacando pessoas ou mandar mensagens sobre aprender francês em um fórum de software ou conduzir um argumento criticando a ortografia de alguém. E os outros .01% não se importa com as regras. Então mostrar as regras é apenas uma maneira de insultar a maioria dos cidadãos que cumprem leis e não detém os idiotas que pensam que seu cocô cheira deliciosamente e nada que eles mandarem pode possivelmente ser contra as regras.

Quando você chama a atenção de baderneiros em público, todos pensam que você é paranóico ou sente-se furioso por levar sermão quando eles não fizeram nada de errado. É como estar no primário de novo e uma criança idiota quebrou uma janela e agora todos tem que se sentar e ouvir a professora dar a toda classe aquele sermão de porque você não pode quebrar janelas. Então qualquer discussão pública de porque algum tópico em particular foi deletado, por exemploo, é tabu.

P. Ao invés de deletar mensagens, por que você não tem um esquema de moderação onde as pessoas votam o quanto eles gostaram da mensagem e as pessoas podem escolher o quão alto o voto tem que ser antes de lerem?

R. Isso, claro, é como o Slashdot funciona e eu apostarei com você que 50% das pessoas que lêem o Slashdot regularmente nunca entenderam isso.

Há três coisas que eu não gosto sobre isso. Um: é mais uma complicação na interface, um recurso que as pessoas precisam aprender como usar. Dois: ele cria uma política complicada que faz o império Bizantino parecer como governo de 3 série. E três: quando você lê Slashdot com os filtros lá no alto para você só ver as mensagens interessantes, a narrativa é perdida. Você apenas tem um monte de frases aleatórias e disjuntas sem contexto.

P. Por que você não tem um esquema de registro para eliminar as pessoas que mandam mensagens rudes?

R. Como eu expliquei antes, o objetivo do fórum é facilitar as pessoas a mandarem mensagens (Lembre-se, o software foi escrito para o suporte técnico). Registrar-se elimina no mínimo 90% das pessoas que poderiam ter mandado uma mensagem e em um cenário de suporte técnico, esses 90% iriam ligar para meu número de suporte grátis.

Além do mais, eu não acho que registrar-se ajudaria. Se alguém está sendo abusivo, não ajuda a bani-los, eles podem simplesmente se registrar de novo. A idéia de melhorar a comunidade requerendo registro é velha e pe apropriada, eu acho, para o tipo de conferências Echo/Well onde você está tanto criando uma rede de pessoas como discutindo um tópico e você pode cobrar dinheiro para pertencer a comunidade. Mas requerer registro NÃO melhora a qualidade da conversação ou a qualidade média dos participantes. Se você olhar mais de perto na proporção sinal-barulho no fórum Joel Sobre Software, você pode começar a notar que as pessoas mais barulhentas (exemplo: as pessoas que mandam mais palavras enquanto contribuem com poucas idéias) são freq¨entemente os membros de longa data que visitam o fórum a cada dez minutos. Essas pessoas sentem que precisam concordar com um “Eu concordo com isso” e responde para Todo Tópico Que Aparece mesmo que eles não tenham nenhum pensamento original para contribuir. E eles certamente se registrariam.

P. Algum plano para o futuro?

R. Trabalhar no software do fórum de discussão não é prioridade para mim ou minha companhia: ele é bom o bastante, funciona, ele criou um lugar interessante para falar de problemas difíceis sobre gerenciamento de tecnologia e contribuições de idéias de algumas das pessoas mais espertas no mundo. Eu tenho melhores coisas à fazer. Outra pessoa pode criar o próximo grande passo em usabilidade para fóruns de discussão.

Eu apenas criei um fórum sobre New York para ver se fóruns baseados geograficamente encorajariam pessoas a conhecer outras pessoas pessoalmente e também online. Em minha experiência comunidades baseadas regionalmente faz a comunidade tomar um grande passo de um simples website para uma sociedade real, um verdadeiro terceiro lugar.

Criar uma comunidade, em qualquer caso, é um objetivo nobre porque é algo que faz muita falta para muito de nós. Vamos continuar nos conectando.



Esse artigo apareceu originalmente em Inglês com o título

Building Communities with Software

 

Joel Spolsky é o fundador da Fog Creek Software, uma pequena empresa de software na cidade de Nova York. Formou-se na Universidade de Yale, e trabalhou como programador e gerente na Microsoft, na Viacom e no Juno.


O conteúdo dessas páginas reflete exclusivamente a opinião do autor.
Todo o conteúdo Copyright ©1999-2005 Joel Spolsky. Todos os direitos reservados.

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky