equipes-de-desenvolvimento-para-startups

Equipes de desenvolvimento efetivas e enxutas para startups: a importância de projetá-las

Guest-post produzido por Juliana Spitaliere, conteudista da Umbler, Startup de Cloud Hosting pensada para agências e desenvolvedores, com foco total no usuário e na agilidade de publicação de sites e emails.

“Jamais vamos conseguir alcançar esse resultado sem mais pessoas na equipe!”

“Uma empresa com alta produtividade é aquela com alto número de funcionários.”

“Quanto mais programadores, mais projetos conseguimos entregar em menos tempo.”

Não vamos julgar, esses pensamentos são bastante comuns. Mesmo assim, estão longe de serem considerados verdade.

Nem em empresas tradicionais e, muito menos, no universo das startups. A falta de reflexão no momento da contratação e a ideia de que produtividade é sinônimo de quantidade de pessoas são os principais motivadores para a criação de equipes inconsistentes – e desmotivadores para aqueles que acreditam que não conseguirão exercer um bom trabalho com times enxutos.

De acordo com pesquisa realizada pela CBInsights, entre os principais motivos pelos quais as startups falham está a escolha de um time errado, ficando atrás apenas de fatores como não visar uma necessidade de mercado e falta de critério para gasto de tempo e dinheiro. Ou seja, é um ponto bastante impactante, que pode gerar desde desconfortos internos ao fim completo de uma ideia inovadora. Não se trata de uma questão de quantidade de pessoas, mas, sim, da falha, ou no momento da seleção ou na manutenção de uma equipe.

Seja na área de desenvolvimento, comercial, financeiro, marketing, montar equipes está longe de ser um tarefa fácil (como pode aparentar), está longe de ser uma caça a gênios e está ainda mais distante de ser apenas camaradagem. É preciso ir além da procura por pessoas que pensam exatamente como o CEO, é preciso ir além do círculo de amizades. Não importa o tamanho, importa quem são as pessoas que compõem um time, seus ideias, suas habilidades e, mais do que isso: a capacidade de aprender e estarem abertos aos objetivos de negócio. É o que vamos abordar a seguir.

Menos é mais (também com relação a equipes)

Produtividade origina-se da geração de mais resultados com recursos já disponíveis, ou seja, fazer melhor com o que se tem. Traduzindo para o cenário corporativo, poderíamos dizer que aumentar a produtividade é ampliar a entrega de projetos, angariar mais clientes e crescer a receita da empresa, por exemplo, sem ter que aumentar, na mesma proporção, a quantidade de colaboradores.

Focando mais no contexto das startups, são muitas as fórmulas para construir o time ideal, como essa apontada pela Inc., que indica que startups precisam ter até seis tipos de pessoa: o “sonhador”, aquele que acredita muito na sua ideia; o “visionário”, que identifica problemas e aponta soluções; o “fazedor”, aquele capaz de transformar ideias em realidade; o “inovador”, que vai além do óbvio e tem muita criatividade; o “capataz”, capaz de organizar e delegar; e o “conector”, que se empenha em construir uma boa rede de conexões. Se entrarmos em um tópico sobre o assunto no Quora, por exemplo, já somos tomados por outras tantas teorias e por uma certeza: entre essas pessoas, sejam quais e quantas forem, é preciso haver um programador. E, é quase senso-comum  que ele precisa ser unicórnio, ou seja, uma rara mistura de designer, front-end e back-end, que não costuma andar por aí. Isso porque é comum que cada vez mais surjam startups compostas por pouquíssimas pessoas (e até mesmo de uma só) e também porque programadores costumam custar mais caro.

Pesquisas como as realizadas pelo Gartner Group, apontam que, em média, os profissionais de TI tem parcela relativamente pequena em empresas – em uma proporção de 5,1 profissionais da área para cada 100 colaboradores. Mas, sabemos que, dependendo do ramo da empresa ou startup a quantidade de pessoas voltadas a esse segmento pode aumentar ou diminuir drasticamente. Ainda que a diminuição possa parecer tendência, isso não deve ser encarado única e exclusivamente como um problema. Lembra dos pensamentos citados lá no início? Vamos começar a quebrá-los!

A QSM, consultoria americana na área de gerenciamento de software, realiza desde 2005 estudos periódicos sobre a relação do tamanho de times de desenvolvimento e métricas como produtividade, esforço, custos e confiabilidade. Desde então, os resultados são surpreendentes. A partir de uma base de dados com mais de 10 mil projetos, a pesquisa analisou o tempo de entrega e o esforço de cada projeto. A diferença entre os melhores e piores projetos foi discrepante: os melhores foram entregues 5 vezes mais rápido e com 15 vezes menos esforço.

O que poderia ter causado essa disparidade? O que pode tornar um time mais produtivo do que outros, nesses casos? A resposta pode parecer óbvia, mas não é: o principal diferencial é o tamanho da equipe. Os projetos com melhor desempenho tinham, em média, equipes 4 vezes menores do que os piores projetos.

Não acredita? Pois saiba que a QSM foi mais a fundo, e avaliou 491 projetos de médio porte, que continham entre 35.000 e 95.000 linhas de código novas ou modificadas no código fonte, produzidos por equipes de diferentes tamanhos. Com relação ao tempo de entrega, foi possível notar que equipes com uma a três pessoas conseguem entregar projetos com três meses de antecedência, em média, se comparadas a times com 15 a 20 pessoas. Esse número cai mais ainda se considerarmos grupos com cinco a sete pessoas – o que a QSM considera o tamanho de equipe ideal.

Aquela máxima de “quanto mais pessoas, mais produtivo é um time” vai por água abaixo já que, se um time enxuto alcança resultados tão ou mais significativos que times maiores, isso significa que o esforço individual dessa segunda equipe é menor.

É claro que, assim como tudo na vida, equipes pequenas não apresentam somente vantagens. Quanto menor um time, mais dependente das capacidades individuais ele está. Por exemplo, em um time de três pessoas, se uma acaba sendo desligada ou fica impedida de trabalhar, o impacto será muito maior do que em um equipe com 10 pessoas. No outro extremo, as equipes grandes esbarram em poréns como a complexidade da comunicação, da divisão de tarefas, da dispersão. Ainda sim, é preciso reforçar: times pequenos não são necessariamente uma dor de cabeça. O ruim é não saber quem escolher.

>> Leitura recomendada: As tendências globais de como gerenciar seu capital humano – e seus projetos

Crescer com o máximo de inovação: o cenário das startups

Já vimos anteriormente que não saber escolher uma boa equipe pode impactar negativamente no sucesso de startups. Mas, saiba que isso não ocorre apenas depois de iniciado o negócio, pode começar até mesmo antes disso. Segundo panorama das aceleradores de startups no Brasil, publicado em julho de 2016, o principal fator para uma startup não ser selecionada para um programa de aceleração é estar com uma equipe inadequada. Isso demonstra que a aplicabilidade do negócio é muito significativa, já que transcende a percepção comercial ou mesmo a criatividade, e precisa lidar com diversos fatores para tornar a ideia uma realidade.

Ainda sobre a pesquisa da CBInsights, é possível notar que uma equipe diversificada, com diferentes conjuntos de habilidades, é fundamental para o sucesso de uma startup. É muito comum que, após a falência do negócio, venha a lamentação sobre o fato de não haver contratado um CTO, um profissional de marketing ou mesmo uma equipe mais efetiva de desenvolvimento. Isso acontece porque, muitas vezes, os fundadores não conseguem produzir um MVP (produto mínimo viável) por conta própria e, ao mesmo tempo, parece difícil para muitos deles entender a necessidade de contar com colaboradores que tenham conhecimentos específicos. E, mais uma vez, isso nada tem a ver com quantidade, mas com a capacidade de saber selecionar as pessoas certas.

O modelo de produção enxuta (lean manufacturing), utilizado por grande parte das startups, prega o que diz a Bíblia de Eric Ries (o livro Startup Enxuta): eliminar atividades supérfluas e canalizar toda a energia para a criação de valor. Isso significa aprender a construir um negócio viável e minimizar todas as distrações e empecilhos que impedem o alcance desse objetivo. Claro, essas premissas também consideram o capital humano: ter por perto pessoas que não estão alinhadas ao negócio ou que contaminam as demais significa perder energia, produtividade e, claro, dinheiro.

A reflexão sobre o processo de seleção é muito importante, já que contratar alguém não tão necessário para uma empresa pode gerar um prejuízo bastante grande. Além dos custos financeiros, torna-se desgastante para a equipe, ainda mais reconhecendo que tudo é uma questão de planejamento e organização. Sim, você pode deixar de precisar de mais pessoas na sua equipe apenas reorganizando seus processos. Não, o “só” aí não refere-se a simplicidade do processo, mas ao fato de que essa atitude pode sair bem mais em conta (leia-se “econômica”) para o seu negócio.

Não pense que tudo acaba depois da contratação, faz parte de um percurso bem mais complexo que considera também a rotina de trabalho e a cultura organizacional da empresa. As startups estão inseridas em um contexto de inovação (uma quase pós-modernidade), mas acredite: muitos times de desenvolvimento ainda estão presos ao passado. Sem metodologias de desenvolvimento, sem filosofia de trabalho, apenas com o bom e velho “baixar a cabeça e programar”. Certamente essa mudança não acontece do dia para a noite, mas é possível começar. Quer saber como?  Verifique se sua empresa/startup já aplica, pelo menos, esses três passos abaixo:

  • Não tenha medo de se aproximar e de aproximar as pessoas entre si. Conhecer a história, as habilidades e dificuldades de cada um torna qualquer problema muito mais fácil de ser solucionado e evita que equipes inconsistentes sejam carregadas pelo tempo. Em times enxutos esses pensamentos tornam-se ainda mais importantes. É comum que desenvolvedores tenham dúvidas ao longo do trabalho, saber que se pode contar com o colega é muito produtivo (lembra da técnica de pair programming?)
  • Mantenha uma comunicação constante. Não, não estamos falando de reuniões desnecessárias e de conversa fiada no meio do expediente. Estamos falando de troca de ideias, de retrospectivas sobre processos de trabalho, encontros diários para saber o que cada um está fazendo. Ficar horas debruçado sobre um código e ficar corrigindo bugs constantemente pode parecer perda de tempo. Quando isso é compartilhado, a percepção sobre o próprio trabalho fica mais clara. Além disso, é possível entender o andar de cada um e saber se um time está mesmo empenhado.
  • Recompense para motivar. Não sejamos falsos: o ser humano é movido a recompensas. E não estamos nos referindo à meritocracia. Recompensas não devem vir apenas ao cumprir metas ou tarefas, não necessitam estar diretamente relacionadas ao ato de realizar algo, podem estar intrínsecas à rotina de forma que os colaboradores fiquem mais dispostos. Cafezinho, flexibilidade, feedbacks, confiança, são muitas as maneiras de recompensar. Aliás, o que será que os programadores mais valorizam? Vamos ver a seguir.

Finalmente, montando um novo time

Como já vimos, a contratação de pessoas que não estejam alinhadas a proposta de negócio é um grande empecilho. Mas, ao mesmo tempo que entendemos sobre o impacto que uma equipe mal estruturada pode trazer para o negócio, perdemos muita energia se perguntando como, então, montar o time de desenvolvimento ideal.

Nós já citamos como manter esse time e quais mecanismos utilizar para detectar se tudo está indo bem, mas chegou o momento de elencarmos quais fatores são mais importantes no momento da escolha. Quando pensamos no contexto da programação precisamos considerar algumas premissas. Segundo pesquisa do Stack Overflow, que mapeou 56 mil desenvolvedores em 173 países, entre as prioridades de um profissional da área com relação ao trabalho estão, em ordem de importância: salário, equilíbrio entre trabalho e vida pessoal, presença de cultura organizacional, qualidade dos colegas de trabalho e horários flexíveis.

Sim, pode parecer exigência demais, mas já vimos que algumas delas podem ser plenamente atendidas com mudanças de hábitos dentro da empresa. Sobre novas contratações, o primeiro passo é refletir sobre algumas variáveis importantes, que podem ajudar a delimitar não só o tamanho ideal da equipe, mas quais tipos de profissional escolher. Primeiro, pense no(s) produto(s) ou serviço(s) que deseja produzir, em seguida, perceba:

  • O tamanho da aplicação a ser desenvolvida (quantas linhas de código, por exemplo)
  • A complexidade da aplicação (quais linguagens de programação são necessárias)
  • O custo da aplicação (quanto é possível gastar para produzi-la)
  • A restrição de tempo para o desenvolvimento (qual é o deadline)

Com esses tópicos técnicos bem esclarecidos, fica mais tranquilo seguir os próximos, mais focados em pessoas (porque sim, não esqueça de que pessoas estão envolvidas nesse processo). A receita do sucesso está em montar equipes multifuncionais. Foi-se o tempo em que separar as pessoas por nicho de conhecimento era interessante, hoje passa a ser uma prática bastante arcaica – e nada produtivo para equipes enxutas.

Aqui, algumas dicas – que podem ser seguidas como um todo ou que podem ser consideradas individualmente:

Contrate “seniores”: times pequenos precisam de pessoas com experiência e intuição, essa é a verdade. Precisa ser alguém genial? Com 25 anos de idade e 43 de experiência? Claro que não! Mas com o escopo técnico bem definido fica mais fácil saber quais as skills necessárias e quais as linguagem específicas necessárias. Mas, aqui, falamos de pessoas. Ter pessoas que tomem à frente, que sejam capazes não só de detectar problemas, mas que apresentem boas soluções, é fundamental.

Contrate “aprendizes”: quem disse que times enxutos não tem espaço para estagiários ou analistas juniores? Não esqueça, você está em uma startup, um ambiente que fala a linguagem da experimentação e da aprendizagem. Enquanto seniores ficam na linha de frente e tomam decisões estratégicas, os aprendizes podem resolver problemas mais técnicos e “botar a mão na massa”. Essa oportunidade será uma experiência incrível para eles.

Contrate mulheres: se existe algum resquício de pensamento do século XVIII em seu DNA, essa é uma oportunidade e tanto para destruí-lo. Existem ótimas profissionais mulheres na área da TI, que só precisam de oportunidades para mostrarem seus talentos. Não está encontrando? Então conheça projetos de empoderamento da mulher na área de desenvolvimento como o Maria Lab, Minas Programam, Women who code e tantos outros.

Contrate “full-stacks”: O número de profissionais do tipo full-stack vem crescendo cada vez mais e segundo o Stack Overflow é a principal ocupação de profissionais de desenvolvimento. Poder contar com um profissional que atua tanto em front-end quanto back-end pode ser uma boa opção (quando não for tão necessário ter alguém com conhecimentos bastante específicos em alguma linguagem). Profissionais desse tipo também costumam exigir salários maiores, o que limita o número de contratações.

Contrate profissionais de UX: podemos afirmar que encontrar aquele profissional unicórnio que manda bem na interface e na programação é bastante difícil. Contratar um profissional que pense em design e na experiência do usuário pode ser determinante para o sucesso de um produto/serviço. E sim, essa pessoa pode muito bem estar inserida em um equipe de desenvolvimento.

Confiança, humildade e atitude. Esses são os requisitos básicos para uma equipe eficaz e enxuta. Se você está projetando a criação de um time nesse momento, reflita sobre todos esses pontos, não deixe de colocar tudo na ponta do lápis e converse com o máximo de pessoas possível. Não deixe essa tarefa em segundo plano, tenha a certeza: definir bem quem estará do seu lado tem papel fundamental na jornada do seu negócio.

trabalho em equipe

Compartilhe!

Assine nossa news

Assine nossa newsletter para receber conteúdo exclusivo