Allen Holub publicou uma série de heurísticas sobre sua visão atualizada sobre o Manifesto Ágil. De forma geral, ele reforça e endossa o manifesto, ajustando a linguagem para um formato mais atual e adicionando alguns elementos próprios.
Eu resolvi traduzir aqui as heurísticas porque elas reverberam com minha prática. E traduzir é uma forma de estudar e contribuir.
O autor faz questão de destacar que elas representam a visão dele em um momento, 24 de julho de 2021, que não são verdades absolutas e podem mudar com o tempo
Artigo original: https://holub.com/heuristics-for-effective-software-development-a-continuously-evolving-list/
1 Sem segurança psicológica, respeito e confiança, nada do que segue abaixo é possível.
2 Processos existem a serviço das pessoas. As pessoas vem primeiro.
3 As melhores formas de trabalhar são colaborativas. Negociação não é colaboração. Indivíduos isolados fazendo um esforço heróico nunca são tão efetivos como grupos colaborativos. Nós obtemos os melhores resultados quando clientes, pessoas de negócio, e desenvolvedores, literalmente, trabalham juntos.
4 Bem-vinda mudança – em organizações, processos, produtos, planos – e qualquer tempo. Você não pode ser simultaneamente rígido e ágil.
5 Os resultados (outcomes) importam mais do que o produto criado (output). Foco no produto criado (output) gera resultados abaixo da média.
6 O trabalho do conhecimento tem preocupações únicas que não são relacionadas às de uma fábrica ou canteiro de obras.
7 A maneira como nós trabalhamos, o trabalho que nós fazemos, e as organizações nas quais trabalhamos são todos parte de um sistema conectado. Você não pode mudar qualquer coisa sem mudar tudo. Você não pode melhorar um sistema apenas mexendo nas peças.
8 As organizações mais efetivas são as organizações de aprendizagem. Aprendizagem – sobre os produtos que produzem e a maneira como produzem – é contínuo. Aprendizagem não é apenas uma atividade normal do trabalho, é o trabalho.
9 Nós melhoramos continuamente observando como trabalhamos e corrigindo os problemas que encontramos. Melhorar é uma atividade contínua, não periódica. Quando um problema acontece nós paramos e imaginamos uma forma de melhorar nosso processo para que o problema não ocorra novamente. O foco está no sistema, não nas pessoas. Ocasionalmente, nós iremos parar e refletir sobre nosso trabalho para fazer melhorias proativas.
10 Simplicidade é essencial. A regra se aplica para todas as coisas, desde a estrutura organizacional até o processo de escrever código. Nós não desperdiçamos tempo construindo (produtos ou organizações) para um futuro que nós não podemos prever.
11 Trabalho é transitório. Nós esperamos mudar ou ainda descartar, tudo que nós construímos, de produtos até organizações e processos. Tudo é um experimento.
12 Nós trabalhamos para fazer a vida dos nossos clientes melhor e seu trabalho mais fácil. Nós fazemos isso provendo um fluxo constante de artefatos e fazemos isso de uma maneira que eles encontrem valor.
13 Nós pensamos holisticamente. Nós trabalhamos em produtos completos, não projetos. Se você não tem projetos, você não tem necessidade de gestão de projetos.
14 No coração da nossa maneira de trabalhar está receber feedback rápido e continuamente. Nós fazemos uma pequena mudança, entregamos o resultado nas mãos dos nossos clientes, obtemos feedback, e então ajustamos o que nós fizemos com base neste feedback. O ciclo é tão curto quanto possível – minutos, horas, ocasionalmente alguns dias – não semanas. Este ciclo de inspecionar e adaptar se aplica tanto ao processo de desenvolvimento do produto quanto à melhoria do processo. As mudanças que entregamos tem alta qualidade (exemplo, no código: nenhum erro conhecido, pronto para produção, seguro, etc).
15 Qualidade não é negociável (esta regra se aplica para todos os aspectos de qualidade, não apenas testes).
16 Os melhores planos são estratégicos, não táticos.
17 Estimativas não são confiáveis. Estimativas não são promessas.
18 Nossas principal medida de progresso é entregar nas mãos de nossos clientes coisas que eles consideram valiosas.
19 Gestão oferece condução estratégica e a suporta. Diga aos times o que você precisa, confie neles para descobrir como executar.
20 Dê as pessoas o ambiente e o suporte que elas precisam, então, não atrapalhe. Nós confiamos em times autônomos para controlar a forma como eles trabalham e o ambiente no qual eles trabalham. Times são auto organizados e auto gerenciáveis. Nós esperamos que eles mudem ambos o produto e eles mesmos conforme considerem necessário. Se todos os times estão trabalhando da mesma forma – usando o mesmo processo ou framework, por exemplo – você não tem autonomia.
21 Autonomia não significa que os times não se coordenam uns com os outros e com a organização maior. Estar alinhado desde os objetivos estratégicos até questões de implementação tecnológica é essencial.
22 Os melhores times são estáveis. Traga trabalho para os times. Não forme times para trabalhar. “Fund the teams, not the work” (em progresso)
23 Times que dependem de outros times não podem responder rápido o suficiente. Assim, membros de um time devem ter dentro do próprio time todas as habilidades necessárias para transformar uma ideia em algo na mão dos clientes. Sobreponha as habilidades, assim, nenhum indivíduo sozinho é essencial.
24 Pessoas devem iniciar o dia renovadas, relaxadas e prontas para fazer seu melhor trabalho.
25 Pertencimento, autonomia, maestria e propósito são direcionadores essenciais. Recompensa e punição são ativamente destrutivos.
26 Comunicação é central para resultados efetivos. Efetividade na comunicação melhora com o nível de proximidade física e a riqueza do meio de comunicação. Reuniões presenciais são melhores, embora nem sempre possíveis, nos aproximamos o melhor que pudermos.
Quer comentar? no Twitter.