Edvaldo 19 de agosto de 2020 - Leia em 11 minutos
Saber como estruturar uma equipe de desenvolvimento pode ser uma das principais dúvidas de um líder técnico. Em razão da exigência de trabalho de cada setor de um time de tecnologia, é super importante que a organização do seu squad aconteça de forma coerente com as necessidades encontradas na produção do seu produto.
Além disso, saber quantos profissionais devem fazer parte do seu time não é uma conta tão simples, já que pode variar com o nível de trabalho de cada empresa. Porém, ao invés de definirmos um número de profissionais, devemos garantir que alguns setores de desenvolvimento sejam preenchidos. Dessa forma, seu projeto, mesmo que pequeno, deve ocorrer de forma tranquila e sem maiores problemas.
Por conta disso, nós preparamos um artigo que detalha quais cargos são necessários para o andamento de um time e quais os principais problemas de se ter uma equipe com poucos ou muitos profissionais.
Como dito anteriormente, estruturar uma equipe de tecnologia pode variar de acordo com suas necessidades. Entretanto, para que a produtividade seja alta e tudo aconteça da forma esperada, alguns setores do seu time precisam ser preenchidos por determinados tipos de profissionais.
Para que o CTO consigo fechar um time de desenvolvimento, é preciso pensar em quais são as necessidades na produção de um produto técnico. Sabemos que um projeto demanda alguns tipos de profissionais, por isso, vamos detalhar brevemente cada um deles. Os principais são: Product Manager (PM), desenvolvedores back-end e front-end, um profissional de Quality Assurance (QA), UX e UI designer e um DevOps.
Esse profissional é o responsável por orientar o andamento do seu produto, sendo ele também quem dá o direcionamento para onde a equipe deve ir e quais caminhos seguir. Saber priorizar quais funcionalidades serão lançadas e quais as reais necessidades do cliente são competências deste profissional.
É essencial que um bom Product Manager tenha uma noção de Growth Hacking, definição de roadmap e processos. Conhecimento em metodologias ágeis como SCRUM e KANBAN e métricas de produto também são essenciais.
Quando falamos em front-end, estamos nos referindo ao desenvolvimento de um aspecto mais visual do produto. Esta parte do desenvolvimento tratará das funcionalidades que garantem o relacionamento direto do usuário com o sistema. Todas as coisas que alguém vê ou interage quando está em um site, por exemplo, estão relacionadas ao front end.
Para isso, o profissional utilizará uma linguagem (como JavaScript) que permitirá elaborar os componentes da aplicação no navegador. Menus, botões, títulos, textos, barras. Tudo isso é fruto do trabalho desse profissional.
O desenvolvedor back-end, por outro lado, está preocupado com o que está "por trás" do que o usuário vê. Esta especialização se baseia principalmente nas funcionalidades que não são apresentadas na interface do site mas, no entanto, são necessárias ao seu funcionamento.
Uma aplicação Web, por exemplo, requer uma variedade de informações e funcionalidades que serão armazenadas em servidores e bancos de dados. O desenvolvedor especializado nesta área é responsável por uma espécie de "intermediação" entre o que o usuário acessa e esses dados armazenados.
Quality Assurance, como o nome indica, é a pessoa que garante a qualidade de um projeto. Ela é responsável por testar os produtos, sejam eles automatizados ou não.
O objetivo desse profissional é reduzir a quantidade de bugs que chegam ao cliente final, aumentando assim a qualidade do produto como um todo.
Entrando no segmento de Design, neste momento, é importante que uma equipe de desenvolvimento tenha dois perfis profissionais. O UI Design é responsável por como o aplicativo se comportará visualmente, ou seja, é quem realmente projeta as telas do aplicativo pensando principalmente na estética. UX Design cuida da experiência como um todo, além da interface, ele pensa em aspectos como facilidade de uso e acessibilidade.
Por último, mas não menos importante, temos o Devops. Esse profissional, de forma mais simples, é a combinação das práticas de desenvolvimento e operação. A função desse profissional é automatizar ao máximo as funções de infraestrutura, como publicações em servidores, segurança, backup de banco de dados, entre outros.
Além disso, um bom Devops também sabe trabalhar com os serviços em nuvem mais famosos do mercado, como AWS ou Google Cloud, tendências do mercado.
Equipe de desenvolvimento fora do tamanho ideal
Ao definir sua equipe de produção, compor um time com poucos funcionários pode não ser o ideal por diversas questões. A principal delas é a chance de erros na execução do projeto acontecerem de forma recorrente, já que, com um menor número de profissionais, a qualidade do código pode ficar comprometida. Além disso, possíveis problemáticas e erros no sistema podem passar sem que ninguém os note.
Outro problema que podemos citar é a realização de multitarefas pelos profissionais. Ao ter um número limitado de funcionários na sua equipe de desenvolvimento, provavelmente alguns deles vá exercer dupla-função. O grande exemplo disso é um profissional especialista em Back-End tendo que trabalhar como um Full Stack, mesmo sem ter conhecimento especializado na área de Front-End. Essa multitarefa pode comprometer o resultado final, já que o desenvolvedor não estará 100% focado na sua área de maior conhecimento.
Além disso, esteja sempre com boas soluções para caso de imprevistos acontecerem. Com uma equipe menor, esse problema pode se agravar já que, caso algum profissional fique doente ou tenha algum tipo de contratempo, o CTO não terá como substituí-lo e a produção do seu produto pode atrasar por semanas.
Outros problemas que envolvem um baixo número de profissionais e que podem acontecer estão relacionados ao aprendizado da equipe, a troca de experiências e também pela falta de feedback. Isso é importante pois com uma quantidade significativa de funcionários, maior será a quantidade de feedbacks, tanto positivos quanto críticos.
Possuir uma equipe de desenvolvimento com muitos profissionais também pode trazer complicações para a produção da sua empresa. O principal deles é em relação à centralização de ideias e no foco que a equipe pode perder ao longo do caminho. Por se tratar de um time composto por diversos profissionais, uma grande quantidade de ideias podem surgir e, se não forem muito bem gerenciadas pelo líder técnico, pode comprometer a produtividade. Além disso, as discussões sobre features e sobre quais caminhos seguir podem ser mais demoradas em razão desse alto número de profissionais.
Outro fator que pode ser conflitante é na questão da comunicação interna do time de desenvolvimento. Com um número maior de funcionários, o tempo gasto para exercer uma boa comunicação também é alto, já que, se falhas de comunicação acontecerem – o que não é raro – todo o trabalho pode ficar comprometido. Por isso, uma equipe com tamanho ideal é capaz de alinhar expectativas com maior facilidade e seguir um mesmo caminho de desenvolvimento por um período maior de tempo.
Essa parte da comunicação também pode ficar comprometida no caso de equipes remotas de desenvolvimento. Por conta de possíveis problemas de conexão ou de equipamento de áudio de baixa qualidade, realizar encontros virtuais com um time maior pode ser complicado, nesse caso, quanto menor o squad, mais assertiva tende a ser a reunião.