As incríveis técnicas para fatiar a entrega do seu software

Compartilhe

As incríveis técnicas para fatiar a entrega do seu software

16/05/19 - 7 minutos de leitura

No artigo O trabalho de FDP do Product Owner, nosso amigo e coach Magno escreve sobre a importância do Product Owner (PO) saber Fatiar, Descartar e Priorizar as entregas de seu produto. Neste artigo, escrevo sobre como fatiar o software em pequenas entregas que agregam valor ao negócio. Antes de falarmos sobre isso, vamos a algumas definições importantes.

O que são fatias?

Fatias são itens do backlog (Product Backlog) que não possuem dependência entre si e podem ser entregues para uso, avaliação e feedback de clientes, consumidores e demais stakeholders. Um ponto importantíssimo é: toda vez que eu entrego uma fatia é fundamental que eu observe as métricas de uso e de negócio para que eu saiba quais são as próximas que o time irá desenvolver.

O que não são?

Fatias são diferentes de camadas. Estas são itens técnicos necessários para que a fatia seja criada. Por exemplo, se eu quero criar uma busca no meu site, é provável que o time de desenvolvimento tenha que criar tabelas, escrever a consulta, montar serviços, preparar a tela de resultados, etc. Nesse caso, tabelas, consultas, serviços e tela são camadas necessárias para eu entregar a fatia. São importantes, mas sozinhas não agregam valor ao meu produto. Você não pode entregar um comando SQL para o seu consumidor.

Uma analogia que podemos utilizar aqui é: imagine que você queira um meio mais rápido de locomoção. Um skate é uma fatia que resolve o problema. Você se locomoverá mais rápido. Todavia, se alguém te der uma roda apenas, ela não terá serventia alguma.

Além disso, fatia também não é uma etapa do fluxo de desenvolvimento. Se o time tem uma “fatia” de planejamento, outra de desenvolvimento e outra de testes, sinto em dizer, esse time não é ágil.

Por que fatiar?

Quanto mais e melhor for o fatiamento:

  • mais rápido o PO poderá validar hipóteses de negócio;
  • mais rápido será a construção do produto;
  • menos incerteza haverá no desenvolvimento;
  • menor será a complexidade tanto para o time quanto para os clientes;
  • aumenta o Retorno sobre o Investimento (RoI);
  • reduz os riscos do projeto;
  • reduz o custo de desenvolvimento;
  • Entre diversas outras.

Como fatiar?

Existem algumas técnicas que podem ser utilizadas para fatiar o produto. Abaixo descrevo algumas delas. Como exemplo, iremos utilizar um site de e-commerce.

Fluxo do consumidor

A primeira forma de fatiar é através do mapeamento do fluxo do consumidor e entrega das etapas do fluxo. Digamos que a necessidade seja: após acessar o site de e-commerce, o consumidor busca os produtos que precisa, verifica se achou o produto desejado e inclui no carrinho. Ele repete esses passos até terminar a compra. Depois ele define onde deseja receber o produto, efetua o pagamento e recebe o produto.

Fatiando o fluxo do consumidor poderíamos ter:

Fluxo de um consumidor. Começa com o consumidor Buscando produtos, na sequência ele vendo detalhes do produto, adicionando o produto ao carrinho. Daqui ele pode buscar novos produtos ou prosseguir para o checkout definindo o local da entrega, pagando e finalmente recebendo o produto.

Fluxo do Consumidor

Mas aí o PO pode se indagar: se tivermos somente a busca, eu não posso colocar o site no ar pois as pessoas vão buscar e nada acontecerá.

Perceba que o importante nesse momento é que já temos algo que pode ser avaliado. O Product Owner pode chamar um conjunto de consumidores e pedir para eles usarem a busca por produtos. Ele poderá ver o comportamento deles e quais as expectativas que eles tinham e comparar com os resultados alcançados. Com essas informações, o PO já poderá criar novos itens do backlog, excluir aqueles que se mostraram desnecessários ou melhorar alguns dos já existentes.

Informações de Entrada e Saída

Nem todas as informações são necessárias na primeira fatia. Por exemplo, se o consumidor está fazendo a busca do produto, a primeira fatia pode contemplar apenas a busca pelo nome do produto. Daí em diante, o PO pode escrever outras fatias que incrementem a primeira em filtros como marca, tipo, tamanho, avaliações, filtros específicos por produto, etc.

Fatias de um filtro de busca. Construir incrementalmente: Busca por nome, busca por marca, busca por tipo, busca por tamanho, busca por avaliações, filtros específicos do tipo de produto X, Filtros específicos para o produto Y.

Fatiamento por informações de entrada e saída da busca por produtos.

Da mesma forma, não é necessário apresentar a saída mais brilhante possível na primeira entrega. Imagine que um gestor da empresa de e-commerce está com um problema: ele precisa tomar uma decisão sobre investimento em logística do próximo trimestre. Para isso, ele pensou em um super relatório de vendas. Este terá um mapa do Brasil em que ele clica e visualiza quantas vendas foram realizadas na cidade, estado ou região com gráficos de acompanhamento, maior pico e pior vale. Bem complexo. Podemos fatiar essa entrega dessa forma:

1ª Fatia: todos os dados extraídos do banco de dados para uma planilha em que ele terá algum esforço, mas conseguirá ter os resultados. Perceba que com isso ele já consegue tomar a decisão necessária.

Primeira fatia da entrega. Dados brutos

Primeira fatia da entrega do relatório – Dados brutos

2ª Fatia: os dados condensados por cidades, estados e regiões do Brasil

Segunda fatia da entrega do relatório - Dados condensados

Segunda fatia da entrega do relatório – Dados condensados

3ª Fatia: os dados condensados por cidades, estados e regiões do Brasil e gráficos de acompanhamento.

Terceira fatia da entrega do relatório - Dados condensados com gráficos por regiões

Terceira fatia da entrega do relatório – Dados condensados com gráficos

4ª Fatia: Mapa do Brasil clicável.

Muitas das vezes não é necessário chegar na versão com o Mapa do Brasil. O gestor já estará tomando suas decisões e é provável que a 4ª fatia seja descartada, pois representa muito esforço de desenvolvimento para pouco retorno.

Canal de Integração

Uma outra forma de fatiar a nossa entrega é por canais de integração. Por exemplo, no caso de pagamento. Podemos ter as fatias: Boleto e Cartão de Crédito. Dentro da fatia Cartão de crédito, podemos fatiar ainda mais pela bandeira do cartão (Visa, Master, American) e por aí vai. Para cada canal de integração, teremos uma fatia diferente. Duas coisas são importantes: conhecer quais os canais mais importantes e perceber que ao integrar o primeiro canal já torna possível iniciar as vendas do site de e-commerce.

Exemplo de Fatias de Bandeiras Cartão de Crédito

Plataforma

É muito importante que o PO conheça seu consumidor e saiba como ele chega até a empresa. Isso o ajudará a definir em quais plataformas ele deverá lançar o seu produto. Plataformas insignificantes ou incompatíveis com os objetivos de negócio devem ser descartadas.

Exemplo de Fatias por Device

Operações

Quando desenhamos um software, é comum fazermos as operações de CRUD (Create, Retrieve, Update and Delete). São as operações de banco de dados (Inserir, Consultar, Atualizar e Excluir)

O PO pode utilizá-las para o fatiamento, pois nada impede o time de começar o desenvolvimento pelas consultas, por exemplo. A inserção pode ser feita através de uma planilha e comandos executados direto no banco de dados. A criação de novos registros poderá ser feita depois (2ª fatia). Em seguida, a exclusão (3ª fatia) e isso já é o suficiente para manter os registros atualizados. Depois, podemos fazer a edição e atualização das informações (4ª fatia).

Fatias CRUD

Tipo do Consumidor

Consumidores não são iguais e possuem interesses e formas de uso diferentes quando. Um cliente pessoa física é bem diferente de uma pessoa jurídica. Um gerente e um cliente final tem interesses distintos e mesmo os clientes podem possuir propósitos diferentes quando estão utilizando o seu produto.

Fatias por Tipo de Consumidor

Solução mais simples

Imagine que você é o PO em uma empresa que adquiriu uma outra e terá que fazer a fusão dos sistemas de e-commerce de ambas. Antes de partir para uma junção completa, podemos criar uma casca de integração. Para o cliente será como se ele utilizasse um sistema único, mas por debaixo dos panos ainda estaremos utilizando os dois. Com o tempo vamos fazendo a fusão e desligando os sistemas antigo.

Outra solução poderia ser o inverso disso. Quando queremos substituir um produto que nossos clientes já utilizam, é comum fazermos do modo switch. Primeiro, “convertemos” todas as funcionalidades do produto antigo para o novo e um dia nós desligamos o antigo e colocamos o novo no ar. Quem trabalha desse modo acaba sofrendo alguns problemas:

  • medo de substituir o que está funcionando;
  • horas-extras para colocar o produto novo no ar com o mínimo de problemas;
  • salas de guerra / crise
  • a reação do cliente é um grande desconhecido. Pode se tornar uma bomba para a imagem da empresa, do time e principalmente do PO;
  • podemos ter convertido funcionalidades inúteis (reduzimos o Retorno sobre o Investimento).

Muito melhor é fazer a conversão utilizando o modelo dimmer. As funcionalidades antigas são substituídas pelas novas e o sistema permanece o mesmo. Enquanto isso, o PO já pode coletar métricas e feedback para entender como os consumidores utilizam o produto e qual o impacto no negócio. Permite inclusive que descartemos aquelas funcionalidades que são pouco ou jamais foram utilizadas.

Fatias por Soluções

Já estive em times que utilizaram essa estratégia para migração de Cobol para C# e Delphi Desktop para Java Web. Substituindo, criando e excluindo uma funcionalidade de cada vez.

Mais sobre esse assunto em: https://k21.global/br/blog/nova-versao-do-sistema

Por conteúdo

Outra forma de fatiar o seu produto é por conteúdo. Para isso, o Product Owner deve conhecer qual é o conteúdo mais consumido pelos seus clientes. Imagine o site de e-commerce. Se a maioria dos meus clientes compra livros, as primeiras fatias serão de livros. A segunda, da segunda coisa mais consumida e assim em diante.

Fatias por Conteúdo

Conclusão

Essas foram algumas formas que nós utilizamos para ajudar Product Owners a fatiar seus produtos. Se quiser saber mais sobre esse assunto, te convido para participar do nosso treinamento de Certified Scrum Product Owner. Além de aprender essas e outras técnicas, práticas e valores você termina o curso com o certificado internacional fornecido pela Scrum Alliance.

Também te convido a ler o e-book Epicentro – A arte de começar pelo que mais importa escrito pelo Magno sobre fatiamento e priorização de produtos.

Pretendemos escrever em breve sobre o fatiamento de outros tipos de produto (não software). Continue acompanhando o nosso blog.

Compartilhe

Escrito por

Avelino Ferreira Gomes Filho

Trainer na K21


Avelino Ferreira é formado e mestre em Ciência da Computação. Teve uma longa trajetória na TI, começando como programador e chegando a gestor de diversos times de criação de produtos digitais. Conheceu e começou a adotar as melhores prática de de Métodos Ágeis em 2008. Desde então, se dedica a auxiliar outras empresas na construção da cultura ágil. Atualmente, é Consultor e Trainer na K21
Esta postagem se encontra sob a licença Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Artigos relacionados

Como utilizar Inteligência Artificial para criar um product Backlog em 3 passos
06/03/24
8 minutos de leitura
Cemitério Mexicano: Comemorando os produtos que não fizemos
07/02/24
10 minutos de leitura
5 Tipos de Vieses Cognitivos (Cognitive Bias) comuns no desenvolvimento de produtos
09/10/23
8 minutos de leitura
Coragem em 4 pontos: sem eles não há transformação
20/09/23
3 minutos de leitura

    Receba mais conteúdos K21

    Deixe seu nome e email que nós te deixamos por dentro de tudo que rola por aqui.

    Ao informar meus dados, eu concordo com a Política de Privacidade.