Leonardo Denardi
Ship It!
Published in
7 min readOct 14, 2019

--

Como está performance do seu time de engenharia de software?

O processo de engenharia de software tem se atualizado constantemente, assim como as práticas e ferramentas para desenvolvimento de novas soluções, tudo isso ocorre na mesma velocidade em que a Indústria de TI se separa da visão de parque fabril — não há mais uma linha de produção e, principalmente, temos um formato de trabalho distinto das tradicionais linhas de produção.. Muito mais do que fazer produtos, temos trabalhado todos os dias com gestão do conhecimento, seja de tecnologias, produtos, ou algoritmos em que buscamos melhores performances e resultados para os nossos clientes.

Trabalhamos tanto para entender qual a melhor tecnologia, quanto a melhor ferramenta, e qual a melhor estratégia para resolver o problema de nossos clientes. om tudo isso, temos pessoas cada vez mais capacitadas e experientes, trabalhando na criação de milhares de linhas de código todos os dias.

Além disso, temos um super aquecimento na área de tecnologia, o que faz termos muitas oportunidades no mercado, em que temos pessoas recém saídas da universidade entrando nas empresas, trabalhando com pessoas com vários anos de experiência, programas de estágio rolando em paralelo. Ufa!

O resultado na área de engenharia de software não depende de um modelo fixo e rígido de trabalho, apenas buscando melhorar a eficiência do processo para produzir mais ou reduzir custos. Nosso modelo e processo de trabalho é flexível, a organização dos times muda de time para time, a forma como se abordam os problemas e a forma como se resolvem estes problemas deve emergir de cada pessoa e time. Nós trabalhamos com metas, prazos e objetivos, mas o principal é atender as necessidades dos clientes, buscando feedback contínuo e rápido, errando cedo, aprendendo mais rápido possível e mitigando desperdícios.

Dito isso, as pessoas são a principal parte dessa equação, nada matemática. O ponto fundamental é ter as pessoas certas, motivadas, com saúde e felizes, sendo reconhecidas em todas as etapas do processo.

Mas como as pessoas sabem como está indo o projeto? Como sabem como está a performance delas? o que você sabe sobre elas? Como você transmite metas e objetivos? Como você define a evolução de conhecimento e carreira dessas pessoas?

Neste artigo, trago uma série de dicas e ferramentas que estamos utilizando para fazer a gestão das pessoas, focando em métricas e ferramentas para as pessoas desenvolvedoras de Software.

Primeiro quero falar sobre saúde e motivação das pessoas:

Quando falo em saúde, me refiro a física, e a mental. As pessoas precisam estar bem, equilibrando a vida pessoal e profissional. É claro que nem sempre é possível, pois não somos seres que mantém 100% de equilíbrio o tempo todo; porém, isso é fundamental. É preciso entender que às vezes as pessoas estão bem e às vezes não, devemos tentar ajudar e respeitar cada momento.

O principal ponto é ter um acordo claro sobre quais objetivos a empresa/equipe tem para determinado período e acordar junto a pessoa as expectativas de comportamento e resultados para determinada entrega.

Além disso, é preciso mapear se a pessoa está preparada para atingir a meta, se não, é preciso desenvolver um plano para ajudar na evolução. Talvez, uma oportunidade que tenhamos aqui, é desenvolver as pessoas através de metas ou objetivos desafiadores. Ou seja, alinhamos a expectativa do fim, porém, também combinamos como ele será alcançado, fazendo com que a pessoa ao fim do objetivo, olhe para trás e perceba que se desenvolveu nas skills necessárias para o desafio.

Outro ponto, é entender sobre fit com a cultura da empresa, com a equipe e com a job em questão.

O pior para saúde e para performance de uma pessoa é estar no lugar errado ou no momento errado. Aqui um ponto importante, todos os seres humanos têm suas fases boas e ruins, não é porque uma pessoa está em um momento ruim, pessoal ou profissional que ela não “serve” mais para a empresa, ajudar neste processo é parte da gestão das pessoas.

Quando falo em momento errado, também pode estar relacionado a expectativa da pessoa ou da empresa e por mais que a pessoas esteja bem, o fit pode não fluir.

Para isso geralmente utilizo os conceitos de Tour Of Dutyexplicados aqui

Por fim, motivação — as pessoas precisam saber, seu propósito, como e para onde ir, como elas crescem, como elas fazem a empresa crescer, quais são as etapas para alcançar e receber constante alinhamentos sobre isso, além claro, de serem reconhecidas sempre. E se algo não está de acordo com as expectativas e propósito das pessoas e da empresa, conversar para tentar conectar ambos.

A principal ferramenta para tudo isso é o 1–1. Conversas semanais sobre assuntos que tanto a liderança quanto o IC (Individual Contributor) sugerem. O primeiro ponto é ouvir, entender como a pessoa está. Na sequência, abordar assuntos diversos como performance, carreira, metas, ajustes de rota, sugestões e feedbacks. Saber sobre família e dia a dia fora da empresa ajuda bastante, gera confiança e proximidade e também ajuda a entender o momento de cada um. Além disso ter conversas difíceis e desafiadores, mantendo confiança e alinhamento entre liderança e liderados.

Agora quero falar sobre processo e práticas:

Aqui na RD, nosso processo de gestão de performance é contínuo, utilizamos o Lattice (https://lattice.com/) para fazer toda gestão desta interação entre líder e liderado.

O processo começa com a definição de goals de entrega e de desenvolvimento.

Os goals de entrega, geralmente têm origem através dos objetivos estratégicos da empresa, que se desdobram em projetos e as equipes geralmente compartilham os mesmos.

Também podemos ter alguns goals de entrega, específicos por time, de pontos que são importantes, mas não estão necessariamente mapeados para objetivos estratégicos, como por exemplo aumento da cobertura de testes automatizados, é intrínseco que qualidade é inegociável, por isso não temos um objetivo estratégico para isso.

Há também os goals de desenvolvimento, que são definidos pelo IC e pela liderança, e dizem respeito à capacitação e desenvolvimento de habilidades necessárias, para que o IC possa se desenvolver em sua job/carreira e por consequência apoiar nos goals de entrega.

Passada essa fase, como fazemos 1–1 constante, vamos monitorando a execução e a evolução das metas, geralmente a cada 1 mês.

Alguns ajustes podem ser feitos no decorrer do caminho e a atualização de status ocorre também, para que no fim do período, a meta seja simplesmente encerrada.

Outra parte do processo que estamos começando a fazer é o feedback 360, que tem como objetivo é ampliar o conhecimento que a pessoa tem sobre seus pontos fortes/melhoria e apoiar os goals e plano de desenvolvimento. Geralmente uma pessoa escolhe 4 pessoas da empresa toda e pede um feedback que fica registrado no sistema, alguns times também executam isso presencialmente.

Depois temos a Calibração, que serve para garantir a equidade de critérios utilizados pelos líderes para avaliar a performance dos times.

Este ciclo se repete todos os semestres.

Sabe o que levamos em conta para falar de performance?

As primeiras métricas são produto entregue e satisfação dos clientes, além de feedbacks qualitativos das entregas. Se dentro do que foi planejado, estamos conseguindo impactar os clientes positivamente, é o primeiro ponto conquistado. Prazos também são importantes quando eles são a restrição principal, como exigências legais, por exemplo. Porém, não podemos esquecer que qualidade é inegociável, independente do prazo estipulado. E isso é muito importante para a atual indústria do software. Quantos projetos você lembra de ter declinado de qualidade para cumprir uma determinada deadline? Então, aqui na RD, tentamos quebrar este ciclo.

Mas o que olhamos?

  • NPS
  • Volume de entregas em produção (evolução do time comparado com ele mesmo, pois iterar cada vez mais rápido é importante)
  • Evolução do MRR atrelada a feature ou time
  • Redução do Churn atrelada a feature do time
  • Projetos planejados no início do semestre concluídos com sucesso (geralmente conclusão de 100% das metas de entrega).

Depois olhamos para o “como” estamos fazendo, analisando as métricas de fluxo de Kanban e ações de melhoria que causaram impactos positivos.

Mas o que olhamos?

Temos três principais indicadores de fluxo que medem nossa vazão:

  • Coeficiente de variação — é a métrica que mostra o quão constante o time está no médio prazo, a constância nos ajuda a entender o quanto podemos confiar na previsibilidade daquele time.
  • Throughput — quantidade de cards done por um período de tempo
  • Lead Time — tempo em dias para dar done em um card

Se estamos acertando no “que” e no “como”, vamos um passo mais longe e avaliamos métricas de código em uma ferramenta chamada Velocity, que nos mostra a saúde do código da engenharia.

Mas o que olhamos?

Separamos algumas métricas que entendemos ser fundamentais com relação a performance de um time e das pessoas desse time, são elas:

Coding days — The average number of days per week that a team member is working with code

Cycle Time — The time between when a Pull Request’s first commit is authored and when the Pull Request is merged.

Review Speed — The duration of time between when a pull request is opened and when it receives its first review.

Unreviewed PR — An unreviewed PR is one which was merged without review

Tamanho Pull Request

Ciclo de Review — The number of times pull requests receive new reviews after adding commits before merging.

Você pode entender um pouco mais neste artigo.

Por fim, olhamos de forma individual o comportamento e exemplos positivos de cada pessoa, perante o processo de desenvolvimento: pró-atividade, agilidade na tomada de decisão, escopo de influência e comunicação.

Mas o que olhamos?

Desde a contratação de novas pessoas, quanto na avaliação de evolução dos comportamentos e atitudes das pessoas observamos os fatores do nosso culture code:

  1. A-Team
  2. Excellence
  3. Out Teach
  4. Lean
  5. Data-Driven
  6. Customer First

Você pode ter mais detalhes aqui (https://resultadosdigitais.com.br/blog/culture-code-rd/)

E claro, comemorações e reconhecimentos!

O último passo deste ciclo todo é comemorar em equipe os resultados e avaliar todo aprendizado, vale até uma retrospectiva do que foi bom e do que foi aprendido.

Depois disso, desenhamos o próximo tour, os próximos desafios, a barra sobe e tudo recomeça.

--

--