Não vamos tratar das desvantagens de TR ● Falta de contato social ● Falta de motivação ● Fadiga de reuniões virtuais ● Dificuldade de desconectar do trabalho ● etc 13 Trabalho remoto não é uma bala de prata
Não vamos tratar de práticas genéricas ● Ter um bom espaço de trabalho em casa ● Ter uma boa cadeira, computador, Internet, etc ● Ter uma rotina; não trabalhar fora do expediente ● Sempre ligar a câmara, mas mutar o microfone ● Não fazer reuniões com mais de 4-5 participantes ● etc 20
Fizemos a seguinte pergunta para 415 devs brasileiros 23 Fonte: Surveying the Impacts of COVID-19 on the Perceived Productivity of Brazilian Software Developers. SBES 2020
Hoje (Scrum) 31 PO Devs Stakeholders ● Durante sprint, PO explica histórias (requisitos) para devs ● Troca-se documentação formal e escrita por documentação verbal e informal ● Histórias são convites para conversas entre PO e Devs Fonte: @engsoftmoderrna
Será que temos que voltar para Waterfall? 34 Linguagem natural (poderia levar anos para ficar pronto) Stakeholders Analista de Requisitos Devs Fonte: @engsoftmoderrna
Shape Up ● Especificação simplificada de requisitos ● Resultado: pitch (documento simplificado de requisitos) ○ Problema ○ Esboço da solução (sketches) ○ Rabbit holes (soluções para possíveis impasses) ○ No-gos (limitações que serão aceitas) 38
Shape Up ● Quem propõe e escreve o pitch? ○ Gerentes sêniores (produto) ○ No caso da Basecamp: 4 pessoas ● Processo de escrita: ○ Assíncrono ○ Reunião final, síncrona, para decidir os pitches do próximo ciclo 42
Ciclos ● Duração: 6 semanas ○ Mais longos que sprints de Scrum ○ Embora possam existir ciclos de duas semanas ● Não existe prorrogação na duração de um ciclo 43
Times ● Tamanho: 2 devs + 1 designer ○ Ainda menores que os times Scrum ● Autonomia: ○ Implementar pitches (pitch = projeto; e não tarefas) ○ Definir horários de trabalho, reuniões, daily, etc 44
Cool Down lembra slacks em XP 47 "You can structure slack in many ways. [For example], one week in eight could be Geek Week." -- K. Beck, Extreme Programming Explained
Problema ● A popularidade da linguagem Go está crescendo ● Precisamos que o RefDiff funcione com Go! ● RefDiff: ferramenta para detectar refactorings em commits ○ Para depois ajudar na realização de code reviews, etc 49
Rabbit Holes ● Implementação de um call graph não é trivial ● Usar a implementação mais simples possível ○ Baseada em uma análise sintática bem simples ○ Sem considerar escopo, polimorfismo, interfaces, etc ○ Restrita aos arquivos modificados no commit 53
Estimativa vs Apetites ● Projetos tradicionais: fixa-se escopo e prazo (estimativa) ● Shape Up: fixa-se apenas prazo e escopo pode variar ○ Implementação pode ser mais simples ou complexa ○ Prazo (ou apetite): sinalização de quanto a feature vale para o negócio da empresa 57
Circuit Breaker ● Se time não entrega no final do ciclo, projeto é cancelado ● Ou seja, não existem extensões de prazos ● Coloca uma pressão (positiva?) sobre o time 58
Software Produto ● Clientes não têm poder para escolher features ● Features definidas por um gerente de produto ● Mais fácil entender o que gerentes de produto querem ● Mais fácil trabalhar assincronamente ● Caso da Basecamp (Shape Up) 62
Software Personalizado ● Requisitos específicos (muitas vezes, complexos) ● Apenas alguns clientes conhecem os requisitos ● Domínio bem específico (exemplo: seguros de aviões) ● Desenvolvedores sem experiência no domínio ● Papel do PO é fundamental! ● Mais desafiador trabalhar assincronamente 63
Boas práticas para trabalho remoto [dentre outras] ● Trabalho remoto ~ Trabalho [bastante] assíncrono ● Algumas práticas: ○ Documento simplificado de requisitos ○ Micro-times ○ Período de cool down 69