Cinco dicas para ser um ótimo consultor
Depois de um ano trabalhando como consultor na Thoughtworks, vi muitos colegas se destacarem em projetos. E isso independente do tempo de empresa ou do conhecimento técnico. Tenho me espelhado nessas pessoas e tentado descobrir o "ingrediente secreto" que faz com que eles se destaquem. Falando com eles e participando de reuniões de coaching, juntei estas cinco dicas para fazer um bom trabalho no seu projeto. Espero que sejam úteis para você também!
#1 - Entenda o objetivo do seu projeto
Desde que comecei a estudar TI, trabalhei em alguns lugares onde todos tínhamos que seguir vários processos e tudo era muito bem definido: elicitação e análise de requisitos, desenvolvimento, testes, homologação, etc. O objetivo dos projetos era sempre muito claro: entregar o software e deixar o cliente feliz.
Mas eu encontrei mais de um objetivo nos projetos da Thoughtworks. Não existe uma definição formal para isso, mas hoje eu enxergo os projetos da Thoughtworks em três categorias: projetos sociais, projetos internos e projetos para clientes. Os projetos sociais, obviamente, têm o objetivo de contribuir de alguma maneira com o desenvolvimento da sociedade; já os internos e os projetos para clientes têm alguns diferenciais bem interessantes.
Nos projetos para clientes, o objetivo é como nas outras empresas: deixar o cliente feliz. O que isso engloba pode ser diferente dependendo do projeto. Isso porque nos preocupamos com o desenvolvimento do negócio do cliente, às vezes construímos frameworks, às vezes fazemos coaching dos seus desenvolvedores; mas no final é simples: entregar o software.
Já nos projetos internos, além disso tudo, temos que ensinar a nossa cultura de desenvolvimento para o time. Se temos desenvolvedores sênior e desenvolvedores júnior, existe a expectativa de que o sênior ensine mais sobre como parear, sobre qualidade de código, entrega contínua e todos os outros aspectos que formam nossa cultura de desenvolvimento de software; esse processo de transmissão de conhecimento pode vir a atrasar um pouco a própria entrega, mas constrói capacidades.
#2 - Descubra o seu objetivo dentro do projeto
Uma vez que você conseguiu descobrir o objetivo do projeto, a segunda dica é descobrir qual o seu objetivo dentro do projeto.
Projetos têm objetivos diferentes, e, consequentemente, pessoas também têm objetivos diferentes dentro dos projetos. Em um projeto interno, seu objetivo pode variar muito, indo desde a entrega de estórias até o coaching de pessoas (que inclui ensinar conceitos sobre qualidade de código, como dar um bom feedback para seu colega de time, etc.). Não é que não exista essa oportunidade dentro de um projeto para cliente (às vezes existe a oportunidade de fazer coaching até mesmo dos desenvolvedores do próprio cliente!), mas a pressão da entrega do software pode ser um pouco pesada.
Como desenvolvedor junior, no meu primeiro projeto o meu objetivo era claro: absorver o máximo de conhecimento de todos do time! É claro, depois de um tempo no projeto os objetivos podem mudar. No meu caso, trabalhando para um cliente remoto, meus objetivos foram mudando: viajar para conhecer o escritório do cliente, parear com os desenvolvedores de lá, ensinar um pouco do que aprendi, e, depois de tudo isso alcançado, o meu objetivo se transformou em entregar estórias, ser produtivo e contribuir para o desenvolvimento do cliente.
#3 - Entenda como alcançar seus objetivos dentro do projeto
Pode parecer um pouco repetitivo, mas existe uma boa diferença entre entender seus objetivos e saber como alcançá-los de verdade.
A primeira estória que joguei no projeto era responsável por criar algumas colunas em uma tabela na interface gráfica do site. Eu não conhecia nada sobre o framework utilizado para o front-end: AngularJS. Meu objetivo estava definido e eu sabia como alcançá-lo: estudar AngularJS!
As conversas com meu coach (e hoje também com meu coachee) me ensinaram a fazer algumas perguntas bem pontuais quando se trata de entender e alcançar objetivos. A primeira delas é “Quais os pequenos passos para alcançar esse objetivo?”. Com essa pergunta respondida (por exemplo: encontrar um bom tutorial sobre AngularJS, como o egghead), alcançar aquele objetivo que antes parecia tão grande parece estar um pouco mais fácil, não?
Outra pergunta frequente era “Como mensurar seu crescimento?”. Às vezes medir o que se quer alcançar pode ser bem subjetivo, principalmente quando seu objetivo envolve outras pessoas. Mas uma vez que se consegue quebrar aquela longa caminhada em vários pequenos passos, a motivação aumenta cada vez que um deles é alcançado.
A terceira pergunta, que nos leva para a próxima dica é “Quem será afetado?".
#4 - Quem será afetado quando você alcançar seus objetivos?
Às vezes pode ser só você mesmo, e não tem nada de errado nisso! Às vezes queremos aprender um novo framework, queremos melhorar nossas habilidades de comunicação ou aprender um pouco mais sobre programação funcional, e não conseguimos ver muito bem como vamos afetar outras pessoas com isso. É importante saber que mesmo quando temos um objetivo mais individual (aprender AngularJS, por exemplo) ainda podemos afetar outras pessoas.
Por exemplo, meu colega tinha o objetivo (ousado) de reescrever todo o codebase do seu projeto aplicando conceitos de programação funcional para aumentar a qualidade e extensibilidade do código. Quando isso foi feito, várias pessoas foram impactadas: o time passou a trabalhar com mais velocidade, o cliente ficou muito satisfeito, a confiança do cliente no time aumentou.
#5 - Ao atingir o objetivo, não deixe de compartilhar!
“Como saber que seu objetivo foi atingido?” é a última pergunta sobre objetivos que aprendi nas minhas sessões de coaching. Quando me perguntei isso consegui entender como poderia fazer minha parte e compartilhar meu aprendizado: vou saber que alcancei meu objetivo quando apresentar uma palestra sobre AngularJS para os desenvolvedores do cliente.
Compartilhar significa tornar seu trabalho visível. Mas não estamos falando em sermos arrogantes e gritarmos aos quatro ventos que conquistamos alguma coisa, certo?
Na Thoughtworks, temos a cultura de compartilhar conhecimento com outras pessoas (práticas como lunch and learn, programa de coaching, LevelUp, TWU, apenas para citar alguns), para que elas também cresçam como nós crescemos (principalmente não cometendo os mesmos erros que já cometemos). Compartilhando suas conquistas com outras pessoas, você vai se tornar uma referência no assunto, não só para responder perguntas, mas impulsionando seu próprio crescimento.
E o mais importante na hora de gerar visibilidade, é dar crédito às pessoas que participaram do processo, seja uma pessoa que te ensinou alguma coisa ou simplesmente jogou uma estória para que você pudesse gastar tempo estudando alguma coisa.
Aviso: As afirmações e opiniões expressas neste artigo são de responsabilidade de quem o assina, e não necessariamente refletem as posições da Thoughtworks.