3 pontos de atenção para acelerar sua entrega de valor

Posted by

Olá, vamos conversar um pouco sobre aquele código muito bem escrito e testado com as melhores técnicas, que estão à sua disposição mas, que não são disponibilizados para o cliente, porque ficam parados em alguma fila de revisão ou deploy por um longo período de tempo. Algumas vezes podem até perder o seu valor completamente e até mesmo serem descartados. Sem contar todo o trabalho gerado na solução de conflitos, tanto de código como com pessoas, devido a outras mudanças que aconteceram nesse intervalo de tempo.

O que é valor?

Valor significa o grau de importância que sua modificação de código impacta o cliente, o quanto não ter o seu código disponível interfere na percepção em relação aos objetivos de resultado que ele deseja alcançar. Para determinar o tamanho do valor de uma entrega uso essa formula que é uma das mais brilhantes contribuições que David Hussman deixou para nossa comunidade.

(imagem do blog: jorgeaudy.com)

Onde o valor é medido: pelo motivo de sua mudança de existir, divida pela forma como ela é implementada, ou seja:
1. Se sua mudança tem um motivo forte de existir e uma forma simples de implementar e entregar, ela tem grande valor.
2. Se sua mudança tem um motivo forte de existir e uma forma muito complicada de implementar e entregar, pode acontecer que durante o processo de implementação e entrega, muito desse valor seja perdido.
3. Se sua mudança tem um motivo fraco para sua existência mas uma forma simples de implementar e entregar, pode ser que você ainda tenha o desejo de vê-la sendo usada pelo seu cliente.
4. Se sua mudança tem um motivo fraco para sua existência e uma forma complicada de implementar e entregar, acho que podemos procurar outra coisa para fazer.

Então quando a palavra valor aparecer, estamos falando sobre esse conceito, tudo bem?

Pontos de atenção para ficar de olho no dia a dia

1. Aguardando revisão de código.

  • Geralmente seu código fica parado aqui pelo motivo de que as pessoas estão mais preocupadas em codificar do que realmente entregar valor, mudar essa mentalidade é muito importante para melhorar suas entregas, escrever código é o meio e não o fim da entrega de valor.
  • Falta de colaboração entre o time, pessoas não querem fazer o trabalho de revisão, podem existir motivos para isso e é preciso identificar esses motivos e atuar para contorna-los junto com o time.
  • Falta de um limite máximo explicito nessa etapa, ou seja, se o limite for 4 tarefas, quando chegar na quarta tarefa, não será aceito adicionar mais tarefas nessa fila, sendo necessário abrir espaço, sim o time será obrigado e entregar pelo menos uma revisão para poder aceitar outra na fila. Defina um limite nessa etapa, isso ajudará seu time a discutir sobre o problema e procurar uma solução juntos.

2. Em revisão de código

  • Uma mudança grande e complexa, isso realmente faz com que seu código fique em revisão exageradamente: Pessoas precisam de tempo para entender, revisar toda mudança e quando encontram problemas, geralmente a correção também é grande. O ideal e quebrar uma tarefa grande em PRs menores, assim eles serão mais simples de entender e corrigir caso se encontre qualquer problema, como exemplo, podemos usar feature flags para isso, cuide do tamanho do seu PR, isso é muito importante.
  • Discussões sobre estilo de código, nossa isso realmente consome um tempo e paciência de quem revisa e de quem é revisado :-), defina no time explicitamente a regra de estilo de código, e se possível automatize essa verificação, sendo assim, somente será revisado pelas pessoas código que já estiver no padrão de código definido.

3. Aguardando deploy em produção

  • Seu deploy esta definido para ser ser feito por uma pessoa ou time especifico, isso é muito ruim para o fluxo, evite gerar essas dependências, delegue essa responsabilidade ao desenvolvedor, isso acelera a entrada de código e ajuda a desenvolver o sentimento de dono pela qualidade as pessoas do time.

Pratique na sua organização

Listei estas 3 formas pois como citei anteriormente considero como as mais comuns, mas é bom ficar atento a qualquer fila ou ponto de checagem que não tenha suas políticas claras de como as pessoas devem agir. Nesses pontos geralmente acontecem discussões infindáveis e/ou acúmulo por falta de foco, fazendo com que a tarefa fique parada por muito tempo. Esse tipo de problema pode acabar deteriorando o valor da entrega ou em alguns casos, geram retrabalho desnecessário, o que impacta a confiança e a percepção de qualidade do cliente em relação ao time / organização.

Espero que isso te ajude a enxergar essas situações e desperte a motivação para agir rapidamente na melhoria do processo. E com isso consiga entregar software funcionando com qualidade e no momento certo, fortalecendo a confiança do seu cliente no seu time/organização.

Tem outra situação de exemplo? Tem alguma técnica para minimizar esse problema? Compartilhe conosco nos comentários.

Grande abraço.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s