25 outubro 2009

O Trabalho no mundo 2.0



Nessa virada de século, o Trabalho (com T maiúsculo) passa por um processo de reformulação comparável ao que aconteceu na revolução industrial. A demanda por trabalhos criativos e a situação global como um todo mostram a necessidade de reformular os antigos processos e métodos à luz de mudanças importantíssimas que vêm ocorrendo em nossa sociedade, em especial o surgimento da Internet e todas suas consequências. O desenvolvimento de software e a cultura hacker possuem papel fundamental nessa mudança, assim como o próprio uso de computadores e programas pela sociedade. Fazem surgir - dentre outras coisas - novas técnicas, métodos, metodologias e processos de trabalho mais afins com a natureza do que estamos realizando (a sociedade como um todo), as quais cito nesse texto, por enquanto, apenas como fonte de pesquisa, motivação e conselho.

Já faz algum tempo que me interesso por metodologias, processos e coisas assim. Não é a toa que são as palavras no cartão de visitas do blog.

Nos últimos meses, tenho percebido varias coisas novas surgindo e se encaixando à minha frente. Já percebo sua correlação não é de hoje - venho filosofando isso com o Alê e com o Willi desde as primeiras conversas que culminaram no manifesto 2.0 - mas até alguns dias atrás essas coisas ainda não tinham se encaixado como um todo em minha cabeça.

Dentre os últimos arrebatamentos que ajudaram a unir as pontas, pra mim, está sem dúvida esse filme do TED, em que Dan Pink ajuda a distinguir claramente dois tipos de trabalhos (repetitivo e criativo), e de que forma isso influencia nas relações de trabalho.

A palestra do Akita na RailsSummit também se encaixou como uma luva nisso tudo. Mas foi a palestra do Roy Singham no Ágiles2009 quem realmente montou o cubo mágico que venho mastigando por pelo menos dois anos.

Talvez o ponto chave pra mim tenha sido me tocar da amplitude da influencia que o modelo de trabalho sequencial, "industrial", teve sobre a maioria dos processos e atividades realizadas durante o século XX. Já usei bastante em minhas apresentações e textos a imagem de processos sequenciais e a herança que esse modelo teve na indústria de software, mas nunca tinha me tocado do quanto essa influência foi além do nosso mundinho geek.


O modelo de fábrica

O modelo de trabalho industrial influenciou de forma muito marcante praticamente todas as formas de trabalho no último século. Basta pensar na forma como estão estruturados até os processos mais "humanos" de nossa sociedade: educação, alimentação, comunicação, saúde. Pense nos processos administrativos e burocráticos... Todos eles são estruturados em formas de trabalho muito semelhantes às das indústrias têxtil e automobilística. Quanta informação uma atendente precisa dar à outra para que ela continue o trabalho de montar o seu sanduiche?


O modelo de trabalho de fábrica é caracterizado por sua natureza sequencial, composta por especialistas que se comunicam por meio de interfaces estreitas, rígidas, e bem definidas. Os trabalhos realizados por eles, sobrepostos, resultam no produto final. É o que, em computação, chamamos de pipeline.

Esses processos primam pela repetição, monitoramento e visibilidade como ferramentas de controle do tempo, dos custos e do escopo do trabalho. Valorizam a rastreabilidade e o comprometimento de culpados, baseados em métricas objetivas, punições e recompensas. São muito eficazes para trabalhos repetitivos e mecânicos, razão pela qual mudaram a vida humana no último século.

Acontece que os avanços tecnológicos das últimas décadas vêm transformando o trabalho novamente. Seres humanos são cada vez menos necessários para realizar as tarefas repetitivas, e os trabalhos criativos têm se tornado cada vez mais importantes. Nesse novo mundo as velhas formas de trabalho não funcionam muito bem. Pipelines são péssimos para trabalhos criativos e colaborativos, assim como políticas de recompensa e punição, horário controlado, comando e controle, etc.

Nesse cenário, novos processos e métodos estão surgindo que se adequam muito melhor à natureza do trabalho criativo, que ao que tudo indica será uma das faces do século que inauguramos. O Alê chamou essas formas de "2.0". Eu uso também termos como "a nova forma", mas é preciso alertar que não pretendo com isso criar julgamento de valor (embora seja quase impossível não fazê-lo). Nenhuma das duas formas - a velha e a nova - é "melhor" ou "pior" em qualquer aspecto (a menos que queiramos ir mais fundo na discussão). Elas representam papéis diferentes em contextos diferentes.


Um novo modelo


Vejo essas novas formas surgirem com bastante evidência na área do desenvolvimento de software. Muitas delas têm suas origens nas comunidades hackers, que encontraram (criaram) enfim o ambiente necessário para restaurar a ligação entre trabalho e diversão que se perdeu com a ética protestante.

Os hackers despertaram da dormência as sementes da colaboração ao criar os mecanismos práticos que os permitiram botar pra funcionar talvez a mais magnífica criação humana desde sei lá quando: a Internet. Sem falar na infinidade de projetos open-source que existem hoje e sua importância no equilíbrio desse ecossistema.

Com o domínio dos meios de comunicação - e com o poder de recriá-los e transformá-los conforme sua necessidade - os hackers fizeram necessárias revisões de conceitos fundamentais, como os de nacionalidade e propriedade (començando pela intelectual). Sua organização meritocrática e suas motivações lúdicas - ao invés de financeiras - inauguraram (ou pelo menos recuperaram) uma ética que está mudando definitivamente as relações humanas.

Não é por acaso que a sociedade vem passando por outros processos de amadurecimento e conscientização, ligados direta ou indiretamente ao fenômeno da Internet. Ousaria relacionar essa salada toda à questão do "desenvolvimento sustentável", mesmo sabendo que terei que passar por pelo menos dois debates ferrenhos: com meu irmão e com o Sérgio. ;-)

Essa mudança de pensamento, ao que parece, está influenciando cada vez mais outras formas de trabalho e criação humana. Eu mesmo - pra não ir muito longe - já participei de dois trabalhos comunitários de tradução incríveis, especialmente se levarmos em conta que foram realizados por pessoas que nem ao menos se conheciam. Livros e discos não são mais vendidos em lojas, nem distribuídos por editoras e gravadoras. Em muitos casos, mal se sabe quem foram os autores. Imagine o que essa revolução fará (está fazendo) pelo design ou no campo da pesquisa científica.


Não estou obviamente reivinidicando nenhuma superioridade intelectual por parte dos programadores ou coisa assim. Esse pioneirismo não se trata de nenhum privilégio que a área da computação tenha, exceto pelo fato de termos tido a sorte de sermos os que mais estamos confortáveis com os novos canais de comunicação.

Também não estou dizendo que as técnicas citadas abaixo tiveram sua origem nas comunidades hackers. Apenas que foram influenciadas de uma forma ou de outra por essa cultura, e pelas formas de colaboração que dela derivaram.

É como se fossemos os matemáticos e "engenheiros mecânicos" da revolução industrial. (Qual terá sido o canal de comunicação que a indústria passou a dominar com sua revolução?) Com a diferença que os meios e conhecimentos necessários para produzir software hoje são públicos, estão disponíveis a qualquer criança curiosa - à distância de alguns cliques - e se transportam para nossa casa praticamente de graça, como num passe de mágica, com um simples download.


Novas técnicas e ferramentas

Nesse novo modelo de trabalho, algumas técnicas, métodos e processos estão aflorando e ganhando popularidade de forma muito rápida. Essas pequenas ferramentas empíricas retiram o foco de preocupação no trabalho que está sendo realizado e o colocam nas pessoas que o realizam.

Não foram novas máquinas, com tecnologia mais avançada que destacaram os japoneses na indústria automobilística nas últimas décadas. (Aqui está um caso clássico em que o método surgiu na indústria, e só depois foram adaptadas ao desenvolvimento de sistemas.)

As armas fundamentais que destacam as empresas de hoje ao meu ver (especialmente as de software) tratam-se de evoluções metodológicas - não tecnológicas. Processos sociais de organização de tarefas, estruturação mental e social, tratamento de fluxos contínuos de demanda e feedback, manutenção de atenção e estado mental criativo, auto organização de equipes. Essa é a natureza das grandes inovações do trabalho na era da informação. (Acho que não precisa nem comentar sobre a relação disso tudo com o manifesto ágil.)


Fiz aqui uma pequena lista de algumas técnicas e métodos que tenho aprendido (e tentado usar). Vou apenas citá-los, deixando o desenvolvimento dos temas específicos para outros artigos. Já entrou em meu GTD também a criação de uma palestra relacionando esses assuntos e criando o contexto para motivar o interesse nessas coisas. Ela deve aparecer em algumas submissões de trabalhos em eventos sobre agilidade nos próximos meses ;-)

Uma forma breve de descrever um possível objetivo em comum entre elas poderia ser o de organizar o fluxo de demandas e o foco de atenção de pessoas e equipes, tornando o trabalho efetivo por meio do equilíbrio entre planejamento, feedback e adaptação.


Vamos à minha lista:

Scrum

Não precisamos nem falar sobre Scrum, pois está bastante na moda. Embora eu não me dê muito bem com a popularidade repentina que ganhou, nem com as razões que a motivaram, cito ele aqui no lugar do XP por ser especificamente focado no processo organizacional da equipe e no planejamento e acompanhamento de atividades - tema que pretendo relacionar com outras técnicas que serão citadas em seguida. XP trata de outras questões além dessa (pra mim Scrum está contido em XP), então uso o nome Scrum pois acho útil poder me referir apenas a "essa parte específica" do XP.

TDD

Embora não tenha incluído o XP na lista, incluo aqui outra parte dele: o desenvolvimento orientado a testes (e seus desdobramentos). Trata-se de meu principal interesse profissional atualmente, que tomei para objeto de pesquisa em meu mestrado, e que incluo nessa lista por seu aspecto de organização de tarefas e focos de atenção mental, bem relevante à linha de raciocínio que ressaltei aqui.

O desenvolvimento orientado a testes leva a designs mais simples não por qualquer passe de mágica presente na técnica, mas pela organização das atividades e do foco de atenção dos programadores, e pela manutenção da confiança e coragem em mudar o design - todos fatores humanos!

GTD

Esse é o processo de organização pessoal que venho usando desde o início desse ano, e que tem sido pra mim - além de fonte de muita reflexão - motivo de grandes realizações pessoais, tranquilidade, motivação e alegria. Foi ele também o fio condutor principal que começou a costurar essas relações todas em minha cabeça.

É a técnica que organiza o fluxo constante de compromissos e responsabilidades pessoais que nos assola dia a dia. Sem um processo coerente de organização, essa enxurrada de pequenos problemas para resolver afoga a maioria das pessoas que, sem paz de espírito, não conseguem se concentrar no que fazem, perdendo tempo com coisas irrelevantes e deixando de lado as coisas importantes.

O GTD é um método indispensável para empreender, no sentido 2.0.


Pomodoro

Dessa lista essa é a técnica que conheço a menos tempo (umas duas semanas), e talvez a que começou a me ajudar mais cedo. (Basta mencionar que sem ela esse artigo não saía.)

Ouvi falar dela pela primeira vez no Ágiles2009 codificando junto com o BrianMarick.


Mal comecei a ler o livro e já estou viciado em contar tomates ;-) Trata-se da técnica com foco mais pontual, localizado e imediato de todas, que pelo menos pra mim representa o elo que faltava para relacionar GTD, TDD e Scrum de uma forma incrível. A técnica cria uma metáfora clara para a unidade de trabalho (e de estimativa) de forma lúdica e confortável, complementando as demais.


OpenSpaces, BirdsOfAFether, e WorldCafé

Esses são processos cuja finalidade não parece corresponder diretamente àquela dos supracitados, pelo menos à primeira vista, pois são métodos de organização de encontros e reuniões, ao invés de projetos - possuem uma natureza muito semelhante no que diz respeito aos princípios e soluções propostas.

Participei pela primeira vez de seções de OpenSpaces no encontro ágil do ano passado. O WorldCafé me foi apresentado pelo meu irmão antropólogo e tive o prazer de facilitar algumas reuniões assim no planejamento estratégico da SEA.


Coding Dojo

Esse talvez seja o mais estranho item dessa lista, mas garanto (e pretendo mostrar) que possui relações íntimas com várias das outras técnicas/métodos. Essa me interessa ainda mais profundamente por me permitir experimentar com algo que me é de grande interesse - o TDD - além de propiciar grande diversão, aprendizado e fortalecer laços de amizade.


Essa lista não pretende ser exaustiva sob nenhum aspecto. Pretende apenas ilustrar o ponto de vista e apresentar as ferramentas que estão se juntando na MINHA caixa. Servirá muito mais para polarizar a discussão e talvez fazer surgirem outras coisas que podem (e talvez devam) fazer parte dessa coleção.

O que mais me fascina nisso tudo é a relação que percebo entre os princípios que estão por trás dessas técnicas. Pelo menos pra mim, parecem ter emergido todas mais ou menos juntas. Foram todas descobertas empiricamente, longe das grandes empresas e centros de pesquisa.

Pretendo escrever sobre essas relações. Já tenho várias anotações sobre isso. Mas o objetivo desse post, que acho que já foi cumprido, era apenas o de compartihar essa visão geral, para poder me preocupar mais com os detalhes nos próximos posts.