Slide 1

Slide 1 text

PRODUTIVIDADE em times de tecnologia

Slide 2

Slide 2 text

Eduardo Matos Pai da Duda e do João Líder em Tech há +8 anos Desenvolvedor há +17 JWT | R7.com | Creditas | GetNinjas | Nubank | Will Bank | iFood

Slide 3

Slide 3 text

Produtividade é o tema da moda

Slide 4

Slide 4 text

https://about.fb.com/br/news/2023/03/atualizacao-sobre-o-ano-de-eficiencia-da-meta/

Slide 5

Slide 5 text

McKinsey Em grandes empresas, problemas estruturais são o principal obstáculo para alcançar as metas digitais “As empresas esperam que grande parte de seu crescimento de curto prazo seja impulsionado pelo digital, mas o impacto continua elusivo. Além disso, faltam estruturas organizacionais eficazes, responsabilidade e métricas e incentivos significativos. À medida que os executivos se envolvem mais nos esforços digitais, eles devem trabalhar para garantir que suas estruturas e processos de negócios sejam configurados para aproveitar ao máximo as oportunidades que os esforços digitais oferecem”

Slide 6

Slide 6 text

"Arquitetura de software e estrutura organizacional fracamente acopladas é um pilar chave da performance de entrega contínua e da capacidade de dimensionar a organização e aumentar o desempenho linearmente”

Slide 7

Slide 7 text

um pouco de história Ainda nos amparamos no Taylorismo ou Fordismo para descobrir como otimizar o trabalho das pessoas O argumento de Taylor sobre e fi ciência passa pelo entendimento de que era necessário escolher as pessoas certas e treiná-las nas funções que iriam desenvolver. Já ouviu por aí esse argumento? Num trabalho que exige uma técnica repetitiva, isso pode até ter algum sentido, mas quando lidamos com criatividade pra resolver problemas, dos mais variados, essa perspectiva não cabe. Frederick Taylor

Slide 8

Slide 8 text

Tentar usar essas práticas de gestão que funcionam num ambiente de fábrica, num contexto onde é crucial pensar em como resolver problemas das maneiras mais criativas, causa uma perda de inovação e de surgimento de potenciais ideias que podem gerar mais benefícios para os clientes ou empresa. O trabalho do conhecimento envolve uma série de fatores que vão além de ter pessoas certas ou bem treinadas.

Slide 9

Slide 9 text

como resolver isso? Ainda há poucos estudos relacionados à produtividade em trabalhadores do conhecimento, mas algumas vertentes tem seguido o caminho de diminuir a quantidade de contextos e tornar a carga cognitiva de conhecimento mais simples.

Slide 10

Slide 10 text

mas então não dá pra medir o quanto estamos produtivos? Existem muito mais fatores humanos do que técnicos ou ferramentais, embora as ferramentas ajudem muito a diminuir a fricção no trabalho a ser feito.

Slide 11

Slide 11 text

o que temos hojee Nos últimos anos, algumas abordagens surgiram pra tentar nos ajudar a melhorar nossa e fi ciência ao entregar software. DORA Metrics, SPACE framework foram duas delas.

Slide 12

Slide 12 text

DORA Metrics DORA é um acrônimo (DevOps Research and Assessment) de um time de pesquisa que foi responsável por elencar 4 principais métricas que indicam a performance de um time: ⁃ Deployment Frequency - quantas vezes um time/organização consegue entregar em produção com sucesso; ⁃ Lead Time for Changes - quanto tempo leva desde o primeiro commit até estar em produção ⁃ Change Failure Rate - Porcentagem de falhas nos deployments em produção ⁃ Time to Restore Service - Quanto tempo se leva para recuperar de um incidente em produção. ⁃

Slide 13

Slide 13 text

Essas métricas nos ajudam a descobrir pontos de melhoria no fl uxo de entrega de código, desde ferramentas de CI/CD, até de observabilidade e resiliência. A grande questão por trás dessas métricas, é que elas servem para nortear ações, e não exatamente de fi nir se estamos produtivos ou não Veja que, deployment frequency alto pode signi fi car alta capacidade produtiva, mas nem sempre signi fi car entregas e fi cazes.

Slide 14

Slide 14 text

ser ou estar produtivo Eu tenho percebido nos últimos anos que não existe “ser” produtivo, mas “estar” produtivo. Isso signi fi ca que o meio em que as pessoas estão trabalhando in fl uenciam o “estar” produtivo. Precisamos entender que individualizar produtividade pode ser um erro gigante. Os aspectos sócio-técnicos do trabalho in fl uenciam 100% o quanto as pessoas podem “estar” produtivas.

Slide 15

Slide 15 text

sistemas sócio… o quê? Sistemas sócio-técnicos é uma teoria que estuda a relação entre aspectos sociais e tecnológicos, entre os sistemas (um grupo de partes interativas e interdependentes que forma um todo complexo). Esses fatores afetam diretamente a experiência das pessoas desenvolvedoras. Exemplos de fatores: interrupções, ferramentas de desenvolvimento que causam fricção no trabalho, código mal organizado, tarefas não claras.

Slide 16

Slide 16 text

aí que entra DevEx Um estudo recente trouxe 3 grandes pilares que afetam a produtividade de pessoas de tecnologia: Feedback Loops Cognitive Load Flow State https://queue.acm.org/detail.cfm?id=3595878

Slide 17

Slide 17 text

| feedback loops Esse pilar diz respeito à qualidade e velocidade de resposta para algumas ações serem feitas. Por exemplo, tempo de compilação, tempo pra rodar a suíte de testes, tempo pra code-review, entre outros assuntos. Quando esse tempo é muito grande, possivelmente as pessoas vão trocar de tarefas esperando essas fricções se resolverem, ou até mesmo fi car aguardando - gerando frustração e menos velocidade nas entregas. Diminuir esse loop é importantíssimo! https://queue.acm.org/detail.cfm?id=3595878

Slide 18

Slide 18 text

| carga cognitiva Carga cognitiva é a quantidade de processamento mental requerido para uma pessoa executar um trabalho. Exemplos de coisas que podemos observar quando há alta carga cognitiva, é a quantidade de serviços que um time precisa lidar, complexidade ou alto acoplamento de código, di fi culdade em descobrir causas de incidente, demora para novas pessoas no time estarem prontas para executar o trabalho. Times que tem muitos domínios sob sua responsabilidade provavelmente sofrem com alta carga cognitiva.

Slide 19

Slide 19 text

🧠 Sobrecarga de Domínios Problemas resultantes da sobrecarga: • Conhecimento super fi cial do contexto de negócio; • Demora pra ganhar contexto novamente sobre o domínio, diminuindo a produtividade; • Baixo conhecimento sobre a arquitetura ou o ecossistema que o domínio abrange; • Aumento do tempo para corrigir e identi fi car problemas; • Alta demora na recuperação de incidentes (MTTR - mean time to recovery); • Sobrecarga de assuntos, o que pode levar à fadiga mental e stress; • Di fi culdade ao lembrar de detalhes importantes das jornadas; • Fadiga na tomada de decisão - tende-se a tomar decisões mais pobres por conta da quantidade de assuntos pra lidar; • Tempo de onboarding mais alto para novas pessoas no time;

Slide 20

Slide 20 text

Casos da vida real Já liderei times que tinham diversos domínios sob sua responsabilidade. Alguns desa fi os eram constantes, como a priorização de iniciativas, de fi nição dos objetivos, o entendimento do capacity dos times e o stress que o time tinha ao ter que buscar informações de fl uxos que nem sabiam que tinham responsabilidade.

Slide 21

Slide 21 text

Mihaly Csikszentmihalyi (Flow: The Psychology of Optimal Experience) | flow state “O estado mental altamente efetivo de uma pessoa completamente imersa em uma atividade”

Slide 22

Slide 22 text

quando você está “no fl ow”… • há a uma sensação de "ecstasy" e clareza; • você sabe exatamente o que você quer fazer de um momento para outro; • o senso de tempo desaparece; • você esquece de você mesmo; • você se sente parte de algo maior. Photo by Mulyadi on Unsplash

Slide 23

Slide 23 text

você já se sentiu assim alguma vez? Pra quem trabalha desenvolvendo software, essa sensação acontece quando estamos tão imersas ou imersos no código que esquecemos a hora e a realização ao ver a conclusão de uma entrega (por exemplo, um endpoint de uma API funcionando como deveria, ou um trecho de código executando algo de forma perfeita) gera um grande prazer e alegria. Ver as coisas funcionando depois que você fez aquele código é uma sensação realmente diferente.

Slide 24

Slide 24 text

flow em desenvolvimento de software cada história fl ui da "ideia" ao entregável, software funcionando diretamente sem fi las, sem um inventário (trabalho em processo), distração, interrupção ou multitasking

Slide 25

Slide 25 text

O que impede o flow? • Fadiga • Requisitos perdidos • Troca de contexto e falta dele • Interrupções no fl uxo de trabalho • Distrações • Espera por clareza do trabalho • Barreiras de comunicação • Falta de conhecimento/skills • Reuniões desnecessárias • Dependências externas ou de outros times • Expectativas irreais ou não claras;

Slide 26

Slide 26 text

Carga Cognitiva e Flow Flow tem uma relação próxima com carga cognitiva. Se as pessoas do time precisam parar pra ganhar contexto do trabalho, buscar informações para ter clareza do trabalho a ser feito, por conta da falta de contexto e das dependências não explícitas ou não declaradas, di fi cilmente vão conseguir encontrar o estado de Flow.

Slide 27

Slide 27 text

então como aumentar a produtividade do meu time/empresa? Dentro desses 3 pilares, existem métricas que você pode acompanhar

Slide 28

Slide 28 text

https://queue.acm.org/detail.cfm?id=3595878

Slide 29

Slide 29 text

como posso começar uma jornada de produtividade no meu time?

Slide 30

Slide 30 text

observe como o trabalho é feito Veja como as demandas chegam, como elas são escolhidas pelas pessoas, como elas tiram dúvidas (se tiram), como o trabalho fi ca visível, que passos normalmente acontecem durante essa jornada.

Slide 31

Slide 31 text

converse com as pessoas Medir é a última parte da jornada. Conversar com seu time vai te trazer mais ideias, repensar outras e con fi rmar hipóteses.

Slide 32

Slide 32 text

vá além do óbvio Nem sempre baixa produtividade é causada por falta de conhecimento do time. Muitas vezes as pessoas estão lidando com muita informação e contexto pra fazer o trabalho. A complexidade dos assuntos que um mesmo time cuida pode ser a causa de ine fi ciência. É importante entender o quê do trabalho em si parece gerar fricção e atrapalhar as pessoas de terem espaço pra pensar e criar boas soluções. Às vezes uma estrutura de time mais enxuta e com domínios claros pode ser mais efetiva do que um time grande e com muitas responsabilidades

Slide 33

Slide 33 text

entenda como o código é feito e finalizado Saber como seu time entrega o código, testa, roda localmente, pode abrir um leque de oportunidades de melhorar a produtividade das pessoas. Monolitos altamente acoplados tendem a diminuir a velocidade do time. O nível de complexidade e acoplamento afeta diretamente o poder de resolver problemas.

Slide 34

Slide 34 text

use métricas pra reflexão, e não para cobranças ou metas Usar métricas como metas é um erro clássico. Metas moldam comportamentos. Então se você colocar metas pra reduzir tempo de code-review, você pode gerar problemas de qualidade (as pessoas vão apenas aprovar rápido, pra bater a meta de diminuir time to review) Abra as métricas com seu time, e deixe claro o objetivo de visualiza-las, tirando o caráter de cobrança ou de meta.

Slide 35

Slide 35 text

não podemos individualizar problemas de eficiência, antes de prover um espaço e ambiente propício para que as pessoas estejam produtivas

Slide 36

Slide 36 text

mini-jabá :)

Slide 37

Slide 37 text

mini-jabá :) https://www.youtube.com/@people-tech

Slide 38

Slide 38 text

mentoria, treinamentos e consultoria Link para agendar mentoria ☝ contact@eduardomatos.me Se precisar de ajuda com assuntos relacionados a liderança, arquitetura de software, design organizacional e cultura de engenharia, me manda um email no:

Slide 39

Slide 39 text

Referências • Flow: The Psychology of Optimal Experience by Mihaly Csikszentmihalyi | Goodreads. • The Principles of Product Development Flow: Second Generation Lean Product Development (English Edition) - eBooks em Inglês na Amazon.com.br • DevEx: What Actually Drives Productivity • Mckinsey study: The digital tipping point

Slide 40

Slide 40 text

Obrigado :) @eduj.matos @eduardojmatos @people-tech Clube People Tech contact@eduardomatos.me