Como Fatiar Grandes Lotes de Trabalho para um Backlog Eficiente

Camila Rocha
4 min readJan 22, 2024

--

Quando se trata de desenvolver software, enfrentamos desafios complexos que requerem um planejamento meticuloso e organização impecável. Para garantir a entrega de funcionalidades de forma eficiente e com qualidade, é fundamental quebremos o trabalho em um backlog bem estruturado. Neste artigo, vamos explorar práticas e técnicas para fatiar grandes lotes de trabalho em histórias menores e mais gerenciáveis, usando o conceito INVEST como nosso guia.

1. As Histórias de Usuário como Base

Para construir um backlog sólido, precisamos das histórias de usuário como alicerce. Ao criá-las, o acrônimo INVEST nos ajuda a garantir que sejam Independentes, Negociáveis, Valiosas, Estimáveis, Pequenas e Testáveis. Isso nos permite desenvolvê-las de forma incremental, sem depender de outras funcionalidades.

2. Caminhos e Casos: Entendendo o Percurso

Antes de fatiar uma história, é essencial compreender os caminhos e casos de uso relacionados à funcionalidade. Identificar as trajetórias positivas e negativas, bem como os cenários comuns, nos ajuda a dividir a história em partes menores e tratá-las separadamente.

3. Operações e Ações: Pensando no Detalhe

Se a história inclui operações de gerenciamento, como editar ou atualizar, é interessante fatiá-la com base nessas ações específicas. Desenvolver cada operação de forma independente simplifica o processo e nos ajuda a manter o foco em cada detalhe.

4. Núcleo e Extensão: Crescendo Gradualmente

Uma abordagem interessante é identificar o cerne da funcionalidade e, em seguida, adicionar extensões para aumentar a complexidade. Priorizando as partes essenciais, podemos incorporar recursos adicionais em etapas posteriores.

5. Critérios de Aceite: Combinando Expectativas

Ao fatiar o trabalho, é importante estabelecer critérios claros de aceite para cada história. Isso assegura que todos compreendam o que é esperado para considerar a funcionalidade concluída e pronta para entrega.

6. Variedade de Dados e Fronteiras: Explorando Diferenças

Se a funcionalidade envolver diferentes tipos de dados ou fronteiras específicas, podemos fatiar o trabalho com base nessas variações. Testar cada cenário individualmente evita problemas de integração e facilita a identificação precoce de possíveis problemas.

7. Interfaces Complexas e Plataformas Variadas: Dividindo por Ambiente

Para histórias com interfaces complexas ou abrangendo diversas plataformas, como iOS, Android e navegadores, podemos fatiar o trabalho por ambiente. Isso permite que a equipe se concentre em desenvolver e testar uma interface de cada vez.

8. Regras de Negócio e Exceções: Lidando com Complexidades

Histórias que envolvem regras de negócio complexas ou exceções específicas podem ser fatiadas para abordar cada uma delas de forma individual. Essa abordagem facilita o entendimento e a implementação correta de cada regra.

9. Diferentes Papéis e Requisitos Não Funcionais: Foco na Especificidade

Se a funcionalidade se aplicar a diferentes papéis de usuário ou exigir requisitos não funcionais específicos, podemos fatiar o trabalho para cada caso, delimitando claramente as responsabilidades e necessidades de cada parte.

10. Priorizando o Essencial: A Entrega Gradual

É válido considerar adiar o tratamento de erros não críticos e atualizações dinâmicas para fases posteriores do desenvolvimento. Isso nos permite entregar primeiro as funcionalidades mais essenciais, acelerando a entrega inicial.

Dicas para um Backlog Eficiente Além da Quebra

Para otimizar ainda mais o backlog, podemos:

Integrar e Entregar Continuamente: Garantir que o trabalho seja fatiado para permitir a integração e entrega contínua de partes funcionais do sistema. Isso nos ajuda a identificar problemas precocemente e a garantir entregas frequentes e estáveis.

  1. Reaproveitar Recursos: Identificar partes do trabalho que possam ser reutilizadas em diferentes funcionalidades ou projetos. Isso promove a modularidade e evita duplicações desnecessárias.
  2. Componentizar para Independência: Fatiar o trabalho em componentes independentes que possam ser desenvolvidos, testados e implantados separadamente. Isso permite a evolução de cada componente de forma isolada.
  3. Arquitetura com Boas Práticas: Garantir que cada história esteja em conformidade com as melhores práticas de arquitetura. Isso assegura a consistência e a qualidade do código.
  4. Revisar e Dar Feedback Constantemente: Realizar revisões regulares do backlog com a equipe e stakeholders para obter feedback contínuo. Isso ajuda a ajustar prioridades e identificar mudanças necessárias.
  5. Prototipar para Validar: Utilizar protótipos rápidos para validar conceitos antes de incluí-los no backlog. Isso reduz o risco de desenvolver funcionalidades desnecessárias ou inviáveis.
  6. Integração com Terceiros: Se a funcionalidade exigir integração com sistemas de terceiros, fatiar o trabalho por etapas de integração. Isso permite validações incrementais e facilita a resolução de problemas.
  7. Incrementar em Camadas: Fatiar o trabalho em camadas progressivas de complexidade, começando pelas funcionalidades básicas e adicionando recursos gradualmente. Isso permite entregas mais frequentes e demonstrações de progresso.
  8. Lidar com Riscos: Identificar riscos técnicos ou de implementação e fatiar o trabalho para abordá-los separadamente. Isso reduz a exposição a riscos significativos.
  9. Equilíbrio entre Funcionalidades e Infraestrutura: Certificar-se de que o backlog inclua uma mistura equilibrada de funcionalidades e melhorias na infraestrutura. Isso garante que o software evolua de maneira sustentável e atenda às necessidades dos usuários e do negócio.

Lembre-se de que cada projeto é único, portanto, adapte essas técnicas conforme necessário. A quebra eficiente do backlog é uma jornada colaborativa que resultará em um desenvolvimento mais fluente e bem-sucedido.

--

--

Camila Rocha

Consultora em gestão, agilista, gestora de produtos , apaixonada por pessoas para construção de ambientes produtivos e integrais nas organizações.