SlideShare uma empresa Scribd logo
T h e D e v e l o p e r ’ s C o n f e r e n c e 2 0 1 6
ANÁLISE EFETIVA DE
MICROSSERVIÇOS EM 3 PASSOS
Taíse Dias da Silva
BACKGROUND
2
2009
Ciência da Computação, UFPE
Metodologias ágeis
Web services
2013
Microsserviços
2014
Análise de
Microsserviços
FALAREMOS SOBRE
3
Análise
Microsserviços
Contexto & Desafios
3 passos para análise
4
ANÁLISE
Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan.
O QUE É FAZER ANÁLISE?
5
“Deixa que a gente se preocupa
com os detalhes.”
Conta com
a gente pra
fazermos nossa
tarefa de casa,
pra toda e cada
iteração!
Ajudar a definir histórias do usuário
Fazer a análise detalhada
Garantir que fizemos nosso
trabalho
Sei o que
quero, mas como
descrevo isso?
Fazer web site
3 meses
Artefatos de análise
O que? Por quê? Pra quem?
HISTÓRIA DO USUÁRIO
6
O que? Por quê? Pra quem?
HISTÓRIA DO USUÁRIO
7
Como palestrante do TheDevConf que
não mora mais em SP
Eu preciso listar nome, preço e
localização de hotéis de SP disponíveis
em 5 de julho
Para que eu possa escolher um hotel
perto do local do evento
O que? Por quê? Pra quem?
HISTÓRIA DO USUÁRIO
8
I Independente
Como palestrante do TheDevConf que
não mora mais em SP
Eu preciso listar nome, preço e
localização de hotéis de SP disponíveis
em 5 de julho
Para que eu possa escolher um hotel
perto do local do evento
O que? Por quê? Pra quem?
HISTÓRIA DO USUÁRIO
9
I
N
Independente
Negociável
Como palestrante do TheDevConf que
não mora mais em SP
Eu preciso listar nome, preço e
localização de hotéis de SP disponíveis
em 5 de julho
Para que eu possa escolher um hotel
perto do local do evento
O que? Por quê? Pra quem?
HISTÓRIA DO USUÁRIO
10
I
N
V
Independente
Negociável
Valiosa
Interface com o usuário (HTML, CSS)
Camada do meio (C#, Java, Python)
Camada de dados (Oracle, SQL Server)
Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan.
Como palestrante do TheDevConf que
não mora mais em SP
Eu preciso listar nome, preço e
localização de hotéis de SP disponíveis
em 5 de julho
Para que eu possa escolher um hotel
perto do local do evento
O que? Por quê? Pra quem?
HISTÓRIA DO USUÁRIO
11
I
N
V
E
Independente
Negociável
Valiosa
Estimável
Interface com o usuário (HTML, CSS)
Camada do meio (C#, Java, Python)
Camada de dados (Oracle, SQL Server)
Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan.
Como palestrante do TheDevConf que
não mora mais em SP
Eu preciso listar nome, preço e
localização de hotéis de SP disponíveis
em 5 de julho
Para que eu possa escolher um hotel
perto do local do evento
O que? Por quê? Pra quem?
HISTÓRIA DO USUÁRIO
12
I
N
V
E
S
Independente
Negociável
Valiosa
Estimável
Pequena (small)
Interface com o usuário (HTML, CSS)
Camada do meio (C#, Java, Python)
Camada de dados (Oracle, SQL Server)
Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan.
Como palestrante do TheDevConf que
não mora mais em SP
Eu preciso listar nome, preço e
localização de hotéis de SP disponíveis
em 5 de julho
Para que eu possa escolher um hotel
perto do local do evento
O que? Por quê? Pra quem?
HISTÓRIA DO USUÁRIO
13
I
N
V
E
S
T
Independente
Negociável
Valiosa
Estimável
Pequena (small)
Testável
Interface com o usuário (HTML, CSS)
Camada do meio (C#, Java, Python)
Camada de dados (Oracle, SQL Server)
Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan.
Como palestrante do TheDevConf que
não mora mais em SP
Eu preciso listar nome, preço e
localização de hotéis de SP disponíveis
em 5 de julho
Para que eu possa escolher um hotel
perto do local do evento
O que? Por quê? Pra quem?
HISTÓRIA DO USUÁRIO
14
I
N
V
E
S
T
Independente
Negociável
Valiosa
Estimável
Pequena (small)
Testável
Interface com o usuário (HTML, CSS)
Camada do meio (C#, Java, Python)
Camada de dados (Oracle, SQL Server)
Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan.
Como palestrante do TheDevConf que
não mora mais em SP
Eu preciso listar nome, preço e
localização de hotéis de SP disponíveis
em 5 de julho
Para que eu possa escolher um hotel
perto do local do evento
HISTÓRIA
ÁGIL TRADICIONAL
BACKLOG
▫︎Conjunto das histórias para features do produto
15
BACKLOG
▫︎Conjunto das histórias para features do produto
▫︎Épico: agrupam histórias de mesma área do domínio
16
BACKLOG
▫︎Conjunto das histórias para features do produto
▫︎Épico: agrupam histórias de mesma área do domínio
17
ÉPICO: Cadastro
de cliente
BACKLOG
▫︎Conjunto das histórias para features do produto
▫︎Épico: agrupam histórias de mesma área do domínio
18
ÉPICO: Cadastro
de cliente
História #1:
Cadastro manual:
nome, email, …
História #2:
Cadastro via
facebook
E quando as histórias são
implementadas por microsserviços?
19
20
MICROSSERVIÇOS
QUE PROBLEMA MICROSSERVIÇOS TENTA RESOLVER?
21
Arquitetura monolítica: várias features
em um único executável
QUE PROBLEMA MICROSSERVIÇOS TENTA RESOLVER?
22
Arquitetura monolítica: várias features
em um único executável
Problemas:
-Implantação de uma feature requer
implantação de todas
QUE PROBLEMA MICROSSERVIÇOS TENTA RESOLVER?
23
Arquitetura monolítica: várias features
em um único executável
Problemas:
-Implantação de uma feature requer
implantação de todas
-Difícil de manter a modularização
QUE PROBLEMA MICROSSERVIÇOS TENTA RESOLVER?
24
Arquitetura monolítica: várias features
em um único executável
Problemas:
-Implantação de uma feature requer
implantação de todas
-Difícil de manter a modularização
-Escalar horizontalmente requer mais
infra
O QUE SÃO MICROSSERVIÇOS?
25
Arquitetura monolítica: várias features
em um único executável
Arquitetura de microsserviços: conjunto
de serviços, cada um sendo um executável
e responsável por uma feature
O QUE SÃO MICROSSERVIÇOS?
26
Arquitetura monolítica: várias features
em um único executável
Arquitetura de microsserviços: conjunto
de serviços, cada um sendo um executável
e responsável por uma feature
Problemas:
-Implantação de uma feature requer
implantação de todas
Soluções:
-Implantação de uma feature
independente de outras
O QUE SÃO MICROSSERVIÇOS?
27
Arquitetura monolítica: várias features
em um único executável
Arquitetura de microsserviços: conjunto
de serviços, cada um sendo um executável
e responsável por uma feature
Problemas:
-Implantação de uma feature requer
implantação de todas
-Difícil de manter a modularização
Soluções:
-Implantação de uma feature
independente de outras
-Comunicação simples, protege
módulos
O QUE SÃO MICROSSERVIÇOS?
28
Arquitetura monolítica: várias features
em um único executável
Arquitetura de microsserviços: conjunto
de serviços, cada um sendo um executável
e responsável por uma feature
Problemas:
-Implantação de uma feature requer
implantação de todas
-Difícil de manter a modularização
-Escalar horizontalmente requer mais
infra
Soluções:
-Implantação de uma feature
independente de outras
-Comunicação simples, protege
módulos
-Escalar horizontalmente requer
menos infra
BOAS PRÁTICAS
▫︎Testes automatizados em todos os níveis
▫︎Unitários, integração, contratos, jornadas de usuários
29
BOAS PRÁTICAS
▫︎Testes automatizados em todos os níveis
▫︎Unitários, integração, contratos, jornadas de usuários
▫︎Integração contínua
30
BOAS PRÁTICAS
▫︎Testes automatizados em todos os níveis
▫︎Unitários, integração, contratos, jornadas de usuários
▫︎Integração contínua
▫︎Implantação automatizada
31
BOAS PRÁTICAS
▫︎Testes automatizados em todos os níveis
▫︎Unitários, integração, contratos, jornadas de usuários
▫︎Integração contínua
▫︎Implantação automatizada
▫︎Monitoração
32
BOAS PRÁTICAS
▫︎Testes automatizados em todos os níveis
▫︎Unitários, integração, contratos, jornadas de usuários
▫︎Integração contínua
▫︎Implantação automatizada
▫︎Monitoração
▫︎Times cuidando de feature
33
BOAS PRÁTICAS
▫︎Testes automatizados em todos os níveis
▫︎Unitários, integração, contratos, jornadas de usuários
▫︎Integração contínua
▫︎Implantação automatizada
▫︎Monitoração
▫︎Times cuidando de feature
▫︎Times mantendo os microsserviços independentes
34
BOAS PRÁTICAS
▫︎Testes automatizados em todos os níveis
▫︎Unitários, integração, contratos, jornadas de usuários
▫︎Integração contínua
▫︎Implantação automatizada
▫︎Monitoração
▫︎Times cuidando de feature
▫︎Times mantendo os microsserviços independentes
35
JORNADA
Mas e enquanto não se consegue
adotar todas as boas práticas?
36
37
CONTEXTO &
DESAFIOS
ORGANIZAÇÃO DOS TIMES: CENÁRIO IDEAL
38
Produto'B'
Web$Service$A$
Produto'A'
Web$Service$B$
Portal$
Web$Service$C$ Web$Service$D$
Time'4'Time'3'
Aplicação$$$$$Cliente$
Time'2'Time'1'
ORGANIZAÇÃO DOS TIMES: CENÁRIO REAL
39
Produto'B'
Web$Service$A$
Produto'A'
Web$Service$B$
Portal$
Web$Service$C$ Web$Service$D$
Time'4'Time'3'
Aplicação$$$$$Cliente$
Time'2'
Time'1'
ORGANIZAÇÃO DO BACKLOG: CENÁRIO IDEAL
40
Produto'B'
Web$Service$A$
Produto'A'
Web$Service$B$
Portal$
Web$Service$C$ Web$Service$D$
Backlog'4'Backlog'3'
Aplicação$$$$$Cliente$
Backlog'2'Backlog'1'
ORGANIZAÇÃO DO BACKLOG: CENÁRIO REAL
41
Produto'B'
Web$Service$A$
Produto'A'
Web$Service$B$
Portal$
Web$Service$C$ Web$Service$D$
Backlog'4'Backlog'3'
Aplicação$$$$$Cliente$
Backlog'2'
Backlog'1'
DESAFIO #1
▫︎Quando times perdem a visão do todo
42
Produto'B'
Web$Service$A$
Produto'A'
Web$Service$B$
Portal$
Web$Service$C$ Web$Service$D$
Time'4'Time'3'
Aplicação$$$$$Cliente$
Time'2'
Time'1'
DESAFIO #1
▫︎Quando times perdem a visão do todo
▫︎Escopo das histórias delimitado por endpoints
43
Produto'B'
Web$Service$A$
Produto'A'
Web$Service$B$
Portal$
Web$Service$C$ Web$Service$D$
Backlog'4'Backlog'3'
Aplicação$$$$$Cliente$
Backlog'2'
Backlog'1'
Produto'B'
Web$Service$A$
Produto'A'
Web$Service$B$
Portal$
Web$Service$C$ Web$Service$D$
Time'4'Time'3'
Aplicação$$$$$Cliente$
Time'2'
Time'1'
DESAFIO #1
▫︎Quando times perdem a visão do todo
▫︎Escopo das histórias delimitado por endpoints
44
História - time 1:
[Serviço] Listar
hotéis
DESAFIO #1
▫︎Quando times perdem a visão do todo
▫︎Escopo das histórias delimitado por endpoints
▫︎Pode perder o benefício das características INVEST
45
DESAFIO #1
▫︎Quando times perdem a visão do todo
▫︎Escopo das histórias delimitado por endpoints
▫︎Pode perder o benefício das características INVEST
46
I dependência entre histórias do cliente e serviço
V
DESAFIO #1
▫︎Quando times perdem a visão do todo
▫︎Escopo das histórias delimitado por endpoints
▫︎Pode perder o benefício das características INVEST
47
I dependência entre histórias do cliente e serviço
endpoints podem ser features incompletas
V
DESAFIO #1
▫︎Quando times perdem a visão do todo
▫︎Escopo das histórias delimitado por endpoints
▫︎Pode perder o benefício das características INVEST
48
I
T
dependência entre histórias do cliente e serviço
endpoints podem ser features incompletas
usuários não acessam endpoints
DESAFIO #2
▫︎Quando times ficam bloqueados por dependência em
histórias de outros times
49
DESAFIO #2
▫︎Quando times ficam bloqueados por dependência em
histórias de outros times
50
Produto'B'
Web$Service$A$
Produto'A'
Web$Service$B$
Portal$
Web$Service$C$ Web$Service$D$
Backlog'4'Backlog'3'
Aplicação$$$$$Cliente$
Backlog'2'
Backlog'1'
História - time 1:
[Serviço] Listar
hotéis
História - time 2:
[UI] Visualizar
lista de hotéis
DESAFIO #2
▫︎Quando times ficam bloqueados por dependência em
histórias de outros times
▫︎Difícil de alinhar prioridades entre times
▫︎Time do cliente dependendo do time de serviços
51
Produto'B'
Web$Service$A$
Produto'A'
Web$Service$B$
Portal$
Web$Service$C$ Web$Service$D$
Backlog'4'Backlog'3'
Aplicação$$$$$Cliente$
Backlog'2'
Backlog'1'
História - time 1:
[Serviço] Listar
hotéis
História - time 2:
[UI] Visualizar
lista de hotéis
DESAFIO #2
▫︎Quando times ficam bloqueados por dependência em
histórias de outros times
▫︎Difícil de alinhar prioridades entre times
▫︎Time do cliente dependendo do time de serviços
▫︎Velocidades por histórias em vez de por features
podem dar uma falsa visão de progresso
52
DESAFIO #2
▫︎Quando times ficam bloqueados por dependência em
histórias de outros times
▫︎Difícil de alinhar prioridades entre times
▫︎Time do cliente dependendo do time de serviços
▫︎Velocidades por histórias em vez de por features
podem dar uma falsa visão de progresso
53
História - time 1:
[Serviço] Listar
hotéis
DESAFIO #2
▫︎Quando times ficam bloqueados por dependência em
histórias de outros times
▫︎Difícil de alinhar prioridades entre times
▫︎Time do cliente dependendo do time de serviços
▫︎Velocidades por histórias em vez de por features
podem dar uma falsa visão de progresso
54
História - time 1:
[Serviço] Listar
hotéis
DONE
▫︎Quando times ficam bloqueados por dependência em
histórias de outros times
▫︎Difícil de alinhar prioridades entre times
▫︎Time do cliente dependendo do time de serviços
▫︎Velocidades por histórias em vez de por features
podem dar uma falsa visão de progresso
História - time 1:
[Serviço] Listar
hotéis
DESAFIO #2
55
História - time 1:
[Serviço] Reservar
quarto
DONE
DESAFIO #2
▫︎Quando times ficam bloqueados por dependência em
histórias de outros times
▫︎Difícil de alinhar prioridades entre times
▫︎Time do cliente dependendo do time de serviços
▫︎Velocidades por histórias em vez de por features
podem dar uma falsa visão de progresso
56
História - time 1:
[Serviço] Reservar
quarto
DONE
História - time 1:
[Serviço] Listar
hotéis
DONE
DESAFIO #2
▫︎Quando times ficam bloqueados por dependência em
histórias de outros times
▫︎Difícil de alinhar prioridades entre times
▫︎Time do cliente dependendo do time de serviços
▫︎Velocidades por histórias em vez de por features
podem dar uma falsa visão de progresso
57
História - time 1:
[Serviço] Reservar
quarto
DONE
História - time 1:
[Serviço] Listar
hotéis
DONE
História - time 1:
[Serviço] Cancelar
reserva
DESAFIO #2
▫︎Quando times ficam bloqueados por dependência em
histórias de outros times
▫︎Difícil de alinhar prioridades entre times
▫︎Time do cliente dependendo do time de serviços
▫︎Velocidades por histórias em vez de por features
podem dar uma falsa visão de progresso
58
História - time 1:
[Serviço] Reservar
quarto
História - time 1:
[Serviço] Listar
hotéis
DONE DONE
História - time 1:
[Serviço] Cancelar
reserva
DONE
DESAFIO #2
▫︎Quando times ficam bloqueados por dependência em
histórias de outros times
▫︎Difícil de alinhar prioridades entre times
▫︎Time do cliente dependendo do time de serviços
▫︎Velocidades por histórias em vez de por features
podem dar uma falsa visão de progresso
59
História - time 2:
[UI] Visualizar
lista de hotéis
História - time 1:
[Serviço] Reservar
quarto
História - time 1:
[Serviço] Listar
hotéis
DONE DONE
História - time 1:
[Serviço] Cancelar
reserva
DONE
DESAFIO #2
▫︎Quando times ficam bloqueados por dependência em
histórias de outros times
▫︎Difícil de alinhar prioridades entre times
▫︎Time do cliente dependendo do time de serviços
▫︎Velocidades por histórias em vez de por features
podem dar uma falsa visão de progresso
60
História - time 2:
[UI] Visualizar
lista de hotéis WIP
História - time 1:
[Serviço] Reservar
quarto
História - time 1:
[Serviço] Listar
hotéis
DONE DONE
História - time 1:
[Serviço] Cancelar
reserva
DONE
▫︎Quando demora pra surgirem problemas de integrações
DESAFIO #3
61
DESAFIO #3
▫︎Quando demora pra surgirem problemas de integrações
62
História - time 1:
[Serviço] Listar
hotéis
Fevereiro
DESAFIO #3
▫︎Quando demora pra surgirem problemas de integrações
63
História - time 2:
[UI] Visualizar
lista de hotéis
História - time 1:
[Serviço] Listar
hotéis
Fevereiro Junho
▫︎Quando demora pra surgirem problemas de integrações
▫︎mau funcionamento do produto
▫︎pode atrasar ou abortar entregas
DESAFIO #3
64
História - time 2:
[UI] Visualizar
lista de hotéis
História - time 1:
[Serviço] Listar
hotéis
Como conseguir fazer uma análise
efetiva nesse contexto?
65
66
3 PASSOS PARA ANÁLISE
3 PASSOS PARA ANÁLISE
1. Mapear features em épicos
67
3 PASSOS PARA ANÁLISE
1. Mapear features em épicos
2. Mapear dependências entre histórias do épico
68
3 PASSOS PARA ANÁLISE
1. Mapear features em épicos
2. Mapear dependências entre histórias do épico
3. Definir critérios de aceitação para integrações
69
1. MAPEAR FEATURES EM ÉPICOS
▫︎Problema: falta de visão do todo
70
1. MAPEAR FEATURES EM ÉPICOS
▫︎Problema: falta de visão do todo
▫︎Solução: tratar épico como cidadão de primeira classe
71
1. MAPEAR FEATURES EM ÉPICOS
▫︎Problema: falta de visão do todo
▫︎Solução: tratar épico como cidadão de primeira classe
▫︎Ou seja, como história tradicional
▫︎O que? Por quê? Pra quem?
72
1. MAPEAR FEATURES EM ÉPICOS
▫︎Problema: falta de visão do todo
▫︎Solução: tratar épico como cidadão de primeira classe
▫︎Ou seja, como história tradicional
▫︎O que? Por quê? Pra quem?
▫︎Usar épico na priorização e velocidade
73
1. MAPEAR FEATURES EM ÉPICOS
▫︎Problema: falta de visão do todo
▫︎Solução: tratar épico como cidadão de primeira classe
▫︎Ou seja, como história tradicional
▫︎O que? Por quê? Pra quem?
▫︎Usar épico na priorização e velocidade
74
Épico: Visualizar
lista de hotéis
1. MAPEAR FEATURES EM ÉPICOS
▫︎Problema: falta de visão do todo
▫︎Solução: tratar épico como cidadão de primeira classe
▫︎Ou seja, como história tradicional
▫︎O que? Por quê? Pra quem?
▫︎Usar épico na priorização e velocidade
75
Épico: Visualizar
lista de hotéis
1. MAPEAR FEATURES EM ÉPICOS
▫︎Problema: falta de visão do todo
▫︎Solução: tratar épico como cidadão de primeira classe
▫︎Ou seja, como história tradicional
▫︎O que? Por quê? Pra quem?
▫︎Usar épico na priorização e velocidade
76
Épico: Visualizar
lista de hotéis
História - time 1:
[Serviço] Listar
hotéis
1. MAPEAR FEATURES EM ÉPICOS
▫︎Problema: falta de visão do todo
▫︎Solução: tratar épico como cidadão de primeira classe
▫︎Ou seja, como história tradicional
▫︎O que? Por quê? Pra quem?
▫︎Usar épico na priorização e velocidade
77
Épico: Visualizar
lista de hotéis
História - time 1:
[Serviço] Listar
hotéis
1. MAPEAR FEATURES EM ÉPICOS
▫︎Problema: falta de visão do todo
▫︎Solução: tratar épico como cidadão de primeira classe
▫︎Ou seja, como história tradicional
▫︎O que? Por quê? Pra quem?
▫︎Usar épico na priorização e velocidade
78
Épico: Visualizar
lista de hotéis
História - time 2:
[UI] Visualizar
lista de hotéis
História - time 1:
[Serviço] Listar
hotéis
1. MAPEAR FEATURES EM ÉPICOS
▫︎Problema: falta de visão do todo
▫︎Solução: tratar épico como cidadão de primeira classe
▫︎Ou seja, como história tradicional
▫︎O que? Por quê? Pra quem?
▫︎Usar épico na priorização e velocidade
79
Épico: Visualizar
lista de hotéis
História - time 2:
[UI] Visualizar
lista de hotéis
História - time 1:
[Serviço] Listar
hotéis
PRIORIDADE
1. MAPEAR FEATURES EM ÉPICOS
▫︎Problema: falta de visão do todo
▫︎Solução: tratar épico como cidadão de primeira classe
▫︎Ou seja, como história tradicional
▫︎O que? Por quê? Pra quem?
▫︎Usar épico na priorização e velocidade
80
Épico: Visualizar
lista de hotéis
História - time 2:
[UI] Visualizar
lista de hotéis
História - time 1:
[Serviço] Listar
hotéis
PRIORIDADE P R I O R I D A D E
1. MAPEAR FEATURES EM ÉPICOS
▫︎Problema: falta de visão do todo
▫︎Solução: tratar épico como cidadão de primeira classe
▫︎Ou seja, como história tradicional
▫︎O que? Por quê? Pra quem?
▫︎Usar épico na priorização e velocidade
81
Épico: Visualizar
lista de hotéis
História - time 2:
[UI] Visualizar
lista de hotéis
História - time 1:
[Serviço] Listar
hotéis
1. MAPEAR FEATURES EM ÉPICOS
▫︎Problema: falta de visão do todo
▫︎Solução: tratar épico como cidadão de primeira classe
▫︎Ou seja, como história tradicional
▫︎O que? Por quê? Pra quem?
▫︎Usar épico na priorização e velocidade
82
Épico: Visualizar
lista de hotéis
História - time 2:
[UI] Visualizar
lista de hotéis
História - time 1:
[Serviço] Listar
hotéis
DONE
1. MAPEAR FEATURES EM ÉPICOS
▫︎Problema: falta de visão do todo
▫︎Solução: tratar épico como cidadão de primeira classe
▫︎Ou seja, como história tradicional
▫︎O que? Por quê? Pra quem?
▫︎Usar épico na priorização e velocidade
83
Épico: Visualizar
lista de hotéis
História - time 2:
[UI] Visualizar
lista de hotéis
História - time 1:
[Serviço] Listar
hotéis
DONE D O N E
▫︎Problema: bloqueios por conta de dependências
2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO
84
▫︎Problema: bloqueios por conta de dependências
▫︎Solução: colaborar para identificar quais as capacidades
que cada serviço precisa ter
2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO
85
▫︎Problema: bloqueios por conta de dependências
▫︎Solução: colaborar para identificar quais as capacidades
que cada serviço precisa ter
▫︎Identificar as possíveis dependências entre elas para
que o usuário consiga atingir seu objetivo
2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO
86
▫︎Problema: bloqueios por conta de dependências
▫︎Solução: colaborar para identificar quais as capacidades
que cada serviço precisa ter
▫︎Identificar as possíveis dependências entre elas para
que o usuário consiga atingir seu objetivo
▫︎Usar como base a arquitetura definida pelos times
para a feature
2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO
87
plano
1. Requisitar margem de lucro
▫︎Problema: bloqueios por conta de dependências
▫︎Solução: colaborar para identificar quais as capacidades
que cada serviço precisa ter
▫︎Identificar as possíveis dependências entre elas para
que o usuário consiga atingir seu objetivo
▫︎Usar como base a arquitetura definida pelos times
para a feature
2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO
88
custo
plano
1. Requisitar margem de lucro
2. Requisitar
custo
▫︎Problema: bloqueios por conta de dependências
▫︎Solução: colaborar para identificar quais as capacidades
que cada serviço precisa ter
▫︎Identificar as possíveis dependências entre elas para
que o usuário consiga atingir seu objetivo
▫︎Usar como base a arquitetura definida pelos times
para a feature
2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO
89
custo preço
plano
1. Requisitar margem de lucro
3. Requisitar
preço
2. Requisitar
custo
▫︎Problema: bloqueios por conta de dependências
▫︎Solução: colaborar para identificar quais as capacidades
que cada serviço precisa ter
▫︎Identificar as possíveis dependências entre elas para
que o usuário consiga atingir seu objetivo
▫︎Usar como base a arquitetura definida pelos times
para a feature
2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO
90
custo preço
plano
1. Requisitar margem de lucro
3. Requisitar
preço
2. Requisitar
custo
4. Calcular
margem de lucro
▫︎Problema: bloqueios por conta de dependências
▫︎Solução: colaborar para identificar quais as capacidades
que cada serviço precisa ter
▫︎Identificar as possíveis dependências entre elas para
que o usuário consiga atingir seu objetivo
▫︎Usar como base a arquitetura definida pelos times
para a feature
▫︎Priorização baseada nas dependências
2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO
91
EXEMPLO
92
[ÉPICO] Visualizar margem de lucro
Como planejador de inventário
Eu preciso saber qual a margem de
lucro do meu plano de compras
Para que eu possa tomar decisões
de planejamento de acordo com
meu orçamento
Objetivo do
ponto de vista
do usuário
EXEMPLO
93
[ÉPICO] Visualizar margem de lucro
Como planejador de inventário
Eu preciso saber qual a margem de
lucro do meu plano de compras
Para que eu possa tomar decisões
de planejamento de acordo com
meu orçamento
[Plano] Calcular
margem de
lucro
Objetivo do
ponto de vista
do usuário
Histórias de
serviços para
atingir o objetivo
EXEMPLO
94
[ÉPICO] Visualizar margem de lucro
Como planejador de inventário
Eu preciso saber qual a margem de
lucro do meu plano de compras
Para que eu possa tomar decisões
de planejamento de acordo com
meu orçamento
[Custo] Listar
custo do
produto
[Plano] Calcular
margem de
lucro
[Preço] Listar
preço do
produto
Objetivo do
ponto de vista
do usuário
Histórias de
serviços para
atingir o objetivo
3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES
▫︎Problema: integração causa mau funcionamento dos
produtos e possíveis atrasos de entrega
95
3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES
▫︎Problema: integração causa mau funcionamento dos
produtos e possíveis atrasos de entrega
▫︎Solução
▫︎Usar jornadas de usuário pra definir critérios de
aceitação no nível de épico
96
3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES
▫︎Problema: integração causa mau funcionamento dos
produtos e possíveis atrasos de entrega
▫︎Solução
▫︎Usar jornadas de usuário pra definir critérios de
aceitação no nível de épico
▫︎Considerar os produtos impactados
97
[ÉPICO] Visualizar margem de lucro
Como planejador de inventário
Eu preciso saber qual a margem de
lucro do meu plano de compras
Para que eu possa tomar decisões
de planejamento de acordo com
meu orçamento
3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES
▫︎Problema: integração causa mau funcionamento dos
produtos e possíveis atrasos de entrega
▫︎Solução
▫︎Usar jornadas de usuário pra definir critérios de
aceitação no nível de épico
▫︎Considerar os produtos impactados
98
[ÉPICO] Visualizar margem de lucro
Como planejador de inventário
Eu preciso saber qual a margem de
lucro do meu plano de compras
Para que eu possa tomar decisões
de planejamento de acordo com
meu orçamento
Jornada passando por múltiplos
produtos
3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES
▫︎Problema: integração causa mau funcionamento dos
produtos e possíveis atrasos de entrega
▫︎Solução
▫︎Usar jornadas de usuário pra definir critérios de
aceitação no nível de épico
▫︎Considerar os produtos impactados
99
[ÉPICO] Visualizar margem de lucro
Como planejador de inventário
Eu preciso saber qual a margem de
lucro do meu plano de compras
Para que eu possa tomar decisões
de planejamento de acordo com
meu orçamento
Jornada passando por múltiplos
produtos
1. Usuário do produto de gerenciar custo
define o custo do produto
3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES
▫︎Problema: integração causa mau funcionamento dos
produtos e possíveis atrasos de entrega
▫︎Solução
▫︎Usar jornadas de usuário pra definir critérios de
aceitação no nível de épico
▫︎Considerar os produtos impactados
100
[ÉPICO] Visualizar margem de lucro
Como planejador de inventário
Eu preciso saber qual a margem de
lucro do meu plano de compras
Para que eu possa tomar decisões
de planejamento de acordo com
meu orçamento
Jornada passando por múltiplos
produtos
1. Usuário do produto de gerenciar custo
define o custo do produto
2. Usuário do produto de gerenciar preços
define o preço do produto
3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES
▫︎Problema: integração causa mau funcionamento dos
produtos e possíveis atrasos de entrega
▫︎Solução
▫︎Usar jornadas de usuário pra definir critérios de
aceitação no nível de épico
▫︎Considerar os produtos impactados
101
[ÉPICO] Visualizar margem de lucro
Como planejador de inventário
Eu preciso saber qual a margem de
lucro do meu plano de compras
Para que eu possa tomar decisões
de planejamento de acordo com
meu orçamento
Jornada passando por múltiplos
produtos
1. Usuário do produto de gerenciar custo
define o custo do produto
2. Usuário do produto de gerenciar preços
define o preço do produto
3. Planejador acessa produto de plano de
compras do produto e visualiza a
margem de lucro
3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES
▫︎Problema: integração causa mau funcionamento dos
produtos e possíveis atrasos de entrega
▫︎Solução
▫︎Usar jornadas de usuário pra definir critérios de
aceitação no nível de épico
▫︎Considerar os produtos impactados
▫︎Definir critérios de aceitação pros serviços
102
3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES
▫︎Problema: integração causa mau funcionamento dos
produtos e possíveis atrasos de entrega
▫︎Solução
▫︎Usar jornadas de usuário pra definir critérios de
aceitação no nível de épico
▫︎Considerar os produtos impactados
▫︎Definir critérios de aceitação pros serviços
▫︎foco em regras de negócio, independente de
interface
103
3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES
▫︎Problema: integração causa mau funcionamento dos
produtos e possíveis atrasos de entrega
▫︎Solução
▫︎Usar jornadas de usuário pra definir critérios de
aceitação no nível de épico
▫︎Considerar os produtos impactados
▫︎Definir critérios de aceitação pros serviços
▫︎foco em regras de negócio, independente de
interface
▫︎Feedback mais rápido sobre os problemas de
integração 104
EXEMPLO: CRITÉRIO DE ACEITAÇÃO PRAS HISTÓRIAS
105
Serviço que
gerencia
custo
[Custo] Listar custo do produto
Dado que camisas regatas brancas
pro verão de 2016 custa 2 dólares
Quando eu listo custo de camisa
regata branca do verão de 2016
Então vejo que o custo é 2 dólares
EXEMPLO: CRITÉRIO DE ACEITAÇÃO PRAS HISTÓRIAS
106
Serviço que
gerencia
custo
[Custo] Listar custo do produto
Dado que camisas regatas brancas
pro verão de 2016 custa 2 dólares
Quando eu listo custo de camisa
regata branca do verão de 2016
Então vejo que o custo é 2 dólares
[Preço] Listar preço do produto
Dado que camisas regatas brancas
pro verão de 2016 valem 20 dólares
Quando eu listo preço de camisa
regata branca do verão de 2016
Então vejo que o preço é 20 dólares
Serviço que
gerencia
preço
EXEMPLO: CRITÉRIO DE ACEITAÇÃO PRAS HISTÓRIAS
107
Serviço que
gerencia
custo
[Custo] Listar custo do produto
Dado que camisas regatas brancas
pro verão de 2016 custa 2 dólares
Quando eu listo custo de camisa
regata branca do verão de 2016
Então vejo que o custo é 2 dólares
[Preço] Listar preço do produto
Dado que camisas regatas brancas
pro verão de 2016 valem 20 dólares
Quando eu listo preço de camisa
regata branca do verão de 2016
Então vejo que o preço é 20 dólares
Serviço que
gerencia
preço
Serviço que
gerencia
plano
[Lucro] Calcular margem de lucro
Dado que camisas regatas brancas
pro verão de 2016 custam 2 dólares
e valem 20 dólares
Quando eu visualizo a margem de
lucro do meu plano de compras
Então vejo a margem é de 18 dólares
108
RESUMO
RESUMO
Para o contexto em que:
109
RESUMO
Para o contexto em que:
▫︎times não são organizados por features
110
RESUMO
Para o contexto em que:
▫︎times não são organizados por features
▫︎cuidam de serviços que são utilizados por múltiplos produtos
111
RESUMO
Para o contexto em que:
▫︎times não são organizados por features
▫︎cuidam de serviços que são utilizados por múltiplos produtos
▫︎ainda não conseguem usar todas as boas práticas pra se
trabalhar com microsserviços
112
RESUMO
Para o contexto em que:
▫︎times não são organizados por features
▫︎cuidam de serviços que são utilizados por múltiplos produtos
▫︎não conseguem usar todas as boas práticas pra se trabalhar
com microsserviços
A análise dos microsserviços podem ser feita como segue:
113
RESUMO
Para o contexto em que:
▫︎times não são organizados por features
▫︎cuidam de serviços que são utilizados por múltiplos produtos
▫︎não conseguem usar todas as boas práticas pra se trabalhar
com microsserviços
A análise dos microsserviços podem ser feita como segue:
▫︎mapeando features em épicos para os times não perderem a
visão do todo
114
RESUMO
Para o contexto em que:
▫︎times não são organizados por features
▫︎cuidam de serviços que são utilizados por múltiplos produtos
▫︎não conseguem usar todas as boas práticas pra se trabalhar
com microsserviços
A análise dos microsserviços podem ser feita como segue:
▫︎mapeando features em épicos para os times não perderem a
visão do todo
▫︎mapeando dependências entre histórias de um mesmo épico
pra que um time não fique bloqueado
115
RESUMO
Para o contexto em que:
▫︎times não são organizados por features
▫︎cuidam de serviços que são utilizados por múltiplos produtos
▫︎não conseguem usar todas as boas práticas pra se trabalhar
com microsserviços
A análise dos microsserviços podem ser feita como segue:
▫︎mapeando features em épicos para os times não perderem a
visão do todo
▫︎mapeando dependências entre histórias de um mesmo épico
pra que um time não fique bloqueado
▫︎planejar critérios de aceitação nos níveis de épicos e histórias
para minimizar os problemas de integração
116
Perguntas?
OBRIGADA
@taisedias
github.com/taisedias
linkedin.com/in/taisedias
REFERÊNCIAS
▫︎The Agile Samurai: How Agile Masters Deliver Great
Software. Rasmusson, Jonathan.
▫︎Microservices. Martin Fowler.
▫︎MicroservicePrerequisites. Martin Fowler.
▫︎Microservice trade offs. Martin Fowler.
▫︎Enterprise Integration Using REST. Martin Fowler.
118

Mais conteúdo relacionado

Destaque

NOVEMBRO DE 2012 A SENTINELA
NOVEMBRO DE 2012 A SENTINELANOVEMBRO DE 2012 A SENTINELA
NOVEMBRO DE 2012 A SENTINELA
Kayo Batista
 
O que Fazer Quando Nossa Paz Está Ameaçada?
O que Fazer Quando Nossa Paz Está Ameaçada?O que Fazer Quando Nossa Paz Está Ameaçada?
O que Fazer Quando Nossa Paz Está Ameaçada?
IBMemorialJC
 
Nova República
Nova RepúblicaNova República
Nova República
Portal do Vestibulando
 
Seleção de Zé Ramalho
Seleção de Zé RamalhoSeleção de Zé Ramalho
Seleção de Zé Ramalho
Partitura de Banda
 
Adding Audio To Slideshare
Adding Audio To SlideshareAdding Audio To Slideshare
Adding Audio To Slideshare
Quentin Brown
 
Religiões de matriz africana
Religiões de matriz africanaReligiões de matriz africana
Religiões de matriz africana
Portal do Vestibulando
 
Partituradebanda.o pastorzinho
Partituradebanda.o pastorzinhoPartituradebanda.o pastorzinho
Partituradebanda.o pastorzinho
Partitura de Banda
 

Destaque (7)

NOVEMBRO DE 2012 A SENTINELA
NOVEMBRO DE 2012 A SENTINELANOVEMBRO DE 2012 A SENTINELA
NOVEMBRO DE 2012 A SENTINELA
 
O que Fazer Quando Nossa Paz Está Ameaçada?
O que Fazer Quando Nossa Paz Está Ameaçada?O que Fazer Quando Nossa Paz Está Ameaçada?
O que Fazer Quando Nossa Paz Está Ameaçada?
 
Nova República
Nova RepúblicaNova República
Nova República
 
Seleção de Zé Ramalho
Seleção de Zé RamalhoSeleção de Zé Ramalho
Seleção de Zé Ramalho
 
Adding Audio To Slideshare
Adding Audio To SlideshareAdding Audio To Slideshare
Adding Audio To Slideshare
 
Religiões de matriz africana
Religiões de matriz africanaReligiões de matriz africana
Religiões de matriz africana
 
Partituradebanda.o pastorzinho
Partituradebanda.o pastorzinhoPartituradebanda.o pastorzinho
Partituradebanda.o pastorzinho
 

Semelhante a TheDevConf 2016 - Análise efetiva de microservices em 3 passos

Taise Dias - Análise efetiva de microserviços em 3 passos
Taise Dias - Análise efetiva de microserviços em 3 passosTaise Dias - Análise efetiva de microserviços em 3 passos
Taise Dias - Análise efetiva de microserviços em 3 passos
minastestingconference
 
MTC_2016-analise_efetiva_de_microsservicos
MTC_2016-analise_efetiva_de_microsservicosMTC_2016-analise_efetiva_de_microsservicos
MTC_2016-analise_efetiva_de_microsservicos
Taise Dias da Silva
 
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
Renato Groff
 
Desenvolvimento de Software: Navegando em Águas Misteriosas
Desenvolvimento de Software: Navegando em Águas MisteriosasDesenvolvimento de Software: Navegando em Águas Misteriosas
Desenvolvimento de Software: Navegando em Águas Misteriosas
Nícolas Iensen
 
Ir para cloud com arquitetura de microservices resolverá o meu problema?
Ir para cloud com arquitetura de microservices resolverá o meu problema?Ir para cloud com arquitetura de microservices resolverá o meu problema?
Ir para cloud com arquitetura de microservices resolverá o meu problema?
Better Developer
 
Alternativas para implementação de Microsserviços no Azure | MVPConf Latam 2021
Alternativas para implementação de Microsserviços no Azure | MVPConf Latam 2021Alternativas para implementação de Microsserviços no Azure | MVPConf Latam 2021
Alternativas para implementação de Microsserviços no Azure | MVPConf Latam 2021
Renato Groffe
 
Curriculum vitae u05_lutonda
Curriculum vitae u05_lutondaCurriculum vitae u05_lutonda
Curriculum vitae u05_lutonda
Sebastião Dias Lutonda
 
Feature Injection - Descobrindo e entregando valor testável
Feature Injection - Descobrindo e entregando valor testávelFeature Injection - Descobrindo e entregando valor testável
Feature Injection - Descobrindo e entregando valor testável
Hélio Medeiros
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Renato Groffe
 
Skalena - Overview de Soluções
Skalena - Overview de Soluções Skalena - Overview de Soluções
Skalena - Overview de Soluções
Edgar Silva
 
Azure Service Fabric - Orquestrando aplicações .Net
Azure Service Fabric - Orquestrando aplicações .NetAzure Service Fabric - Orquestrando aplicações .Net
Azure Service Fabric - Orquestrando aplicações .Net
Jhonathan de Souza Soares
 
The Developers Conference 2014 | Porto Alegre
The Developers Conference 2014 | Porto AlegreThe Developers Conference 2014 | Porto Alegre
The Developers Conference 2014 | Porto Alegre
Bruno Brandes
 
Webinar Azure - Dia 04
Webinar Azure - Dia 04Webinar Azure - Dia 04
Webinar Azure - Dia 04
Alvaro Rezende
 
Hello NoSQL World
Hello NoSQL WorldHello NoSQL World
Hello NoSQL World
FATEC São José dos Campos
 
Escala Já!
Escala Já!Escala Já!
Escala Já!
Lucas Mousinho
 
[ServiceNow] Visão geral da plataforma
[ServiceNow] Visão geral da plataforma[ServiceNow] Visão geral da plataforma
[ServiceNow] Visão geral da plataforma
Alessandro Almeida
 
Webinar Azure - Dia 03
Webinar Azure - Dia 03Webinar Azure - Dia 03
Webinar Azure - Dia 03
Alvaro Rezende
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
Felipe Klerk Signorini
 
Proposta para especificação de histórias de usuários alinhadas a IEEE 830
Proposta para especificação de histórias de usuários alinhadas a IEEE 830Proposta para especificação de histórias de usuários alinhadas a IEEE 830
Proposta para especificação de histórias de usuários alinhadas a IEEE 830
André Agostinho
 
Webinar Azure - Dia 07
Webinar Azure - Dia 07Webinar Azure - Dia 07
Webinar Azure - Dia 07
Alvaro Rezende
 

Semelhante a TheDevConf 2016 - Análise efetiva de microservices em 3 passos (20)

Taise Dias - Análise efetiva de microserviços em 3 passos
Taise Dias - Análise efetiva de microserviços em 3 passosTaise Dias - Análise efetiva de microserviços em 3 passos
Taise Dias - Análise efetiva de microserviços em 3 passos
 
MTC_2016-analise_efetiva_de_microsservicos
MTC_2016-analise_efetiva_de_microsservicosMTC_2016-analise_efetiva_de_microsservicos
MTC_2016-analise_efetiva_de_microsservicos
 
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
 
Desenvolvimento de Software: Navegando em Águas Misteriosas
Desenvolvimento de Software: Navegando em Águas MisteriosasDesenvolvimento de Software: Navegando em Águas Misteriosas
Desenvolvimento de Software: Navegando em Águas Misteriosas
 
Ir para cloud com arquitetura de microservices resolverá o meu problema?
Ir para cloud com arquitetura de microservices resolverá o meu problema?Ir para cloud com arquitetura de microservices resolverá o meu problema?
Ir para cloud com arquitetura de microservices resolverá o meu problema?
 
Alternativas para implementação de Microsserviços no Azure | MVPConf Latam 2021
Alternativas para implementação de Microsserviços no Azure | MVPConf Latam 2021Alternativas para implementação de Microsserviços no Azure | MVPConf Latam 2021
Alternativas para implementação de Microsserviços no Azure | MVPConf Latam 2021
 
Curriculum vitae u05_lutonda
Curriculum vitae u05_lutondaCurriculum vitae u05_lutonda
Curriculum vitae u05_lutonda
 
Feature Injection - Descobrindo e entregando valor testável
Feature Injection - Descobrindo e entregando valor testávelFeature Injection - Descobrindo e entregando valor testável
Feature Injection - Descobrindo e entregando valor testável
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
 
Skalena - Overview de Soluções
Skalena - Overview de Soluções Skalena - Overview de Soluções
Skalena - Overview de Soluções
 
Azure Service Fabric - Orquestrando aplicações .Net
Azure Service Fabric - Orquestrando aplicações .NetAzure Service Fabric - Orquestrando aplicações .Net
Azure Service Fabric - Orquestrando aplicações .Net
 
The Developers Conference 2014 | Porto Alegre
The Developers Conference 2014 | Porto AlegreThe Developers Conference 2014 | Porto Alegre
The Developers Conference 2014 | Porto Alegre
 
Webinar Azure - Dia 04
Webinar Azure - Dia 04Webinar Azure - Dia 04
Webinar Azure - Dia 04
 
Hello NoSQL World
Hello NoSQL WorldHello NoSQL World
Hello NoSQL World
 
Escala Já!
Escala Já!Escala Já!
Escala Já!
 
[ServiceNow] Visão geral da plataforma
[ServiceNow] Visão geral da plataforma[ServiceNow] Visão geral da plataforma
[ServiceNow] Visão geral da plataforma
 
Webinar Azure - Dia 03
Webinar Azure - Dia 03Webinar Azure - Dia 03
Webinar Azure - Dia 03
 
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability EngineeringTDC 2017 - Borg até o Prometheus: Site Reliability Engineering
TDC 2017 - Borg até o Prometheus: Site Reliability Engineering
 
Proposta para especificação de histórias de usuários alinhadas a IEEE 830
Proposta para especificação de histórias de usuários alinhadas a IEEE 830Proposta para especificação de histórias de usuários alinhadas a IEEE 830
Proposta para especificação de histórias de usuários alinhadas a IEEE 830
 
Webinar Azure - Dia 07
Webinar Azure - Dia 07Webinar Azure - Dia 07
Webinar Azure - Dia 07
 

Mais de Taise Dias da Silva

TheDevConf 2016 - 4 dicas valiosas para uma piramide de testes saudavel
TheDevConf 2016 - 4 dicas valiosas para uma piramide de testes saudavelTheDevConf 2016 - 4 dicas valiosas para uma piramide de testes saudavel
TheDevConf 2016 - 4 dicas valiosas para uma piramide de testes saudavel
Taise Dias da Silva
 
Testes automatizados com alto valor de negócio e baixo custo de manutenção
Testes automatizados com alto valor de negócio e baixo custo de manutençãoTestes automatizados com alto valor de negócio e baixo custo de manutenção
Testes automatizados com alto valor de negócio e baixo custo de manutenção
Taise Dias da Silva
 
MTC2015-Automatizar_testes_efetivos
MTC2015-Automatizar_testes_efetivosMTC2015-Automatizar_testes_efetivos
MTC2015-Automatizar_testes_efetivos
Taise Dias da Silva
 
Geek night-2015
Geek night-2015Geek night-2015
Geek night-2015
Taise Dias da Silva
 
Cucumber-QA_Night
Cucumber-QA_NightCucumber-QA_Night
Cucumber-QA_Night
Taise Dias da Silva
 
Cucumber
CucumberCucumber

Mais de Taise Dias da Silva (6)

TheDevConf 2016 - 4 dicas valiosas para uma piramide de testes saudavel
TheDevConf 2016 - 4 dicas valiosas para uma piramide de testes saudavelTheDevConf 2016 - 4 dicas valiosas para uma piramide de testes saudavel
TheDevConf 2016 - 4 dicas valiosas para uma piramide de testes saudavel
 
Testes automatizados com alto valor de negócio e baixo custo de manutenção
Testes automatizados com alto valor de negócio e baixo custo de manutençãoTestes automatizados com alto valor de negócio e baixo custo de manutenção
Testes automatizados com alto valor de negócio e baixo custo de manutenção
 
MTC2015-Automatizar_testes_efetivos
MTC2015-Automatizar_testes_efetivosMTC2015-Automatizar_testes_efetivos
MTC2015-Automatizar_testes_efetivos
 
Geek night-2015
Geek night-2015Geek night-2015
Geek night-2015
 
Cucumber-QA_Night
Cucumber-QA_NightCucumber-QA_Night
Cucumber-QA_Night
 
Cucumber
CucumberCucumber
Cucumber
 

TheDevConf 2016 - Análise efetiva de microservices em 3 passos

  • 1. T h e D e v e l o p e r ’ s C o n f e r e n c e 2 0 1 6 ANÁLISE EFETIVA DE MICROSSERVIÇOS EM 3 PASSOS Taíse Dias da Silva
  • 2. BACKGROUND 2 2009 Ciência da Computação, UFPE Metodologias ágeis Web services 2013 Microsserviços 2014 Análise de Microsserviços
  • 3. FALAREMOS SOBRE 3 Análise Microsserviços Contexto & Desafios 3 passos para análise
  • 5. Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan. O QUE É FAZER ANÁLISE? 5 “Deixa que a gente se preocupa com os detalhes.” Conta com a gente pra fazermos nossa tarefa de casa, pra toda e cada iteração! Ajudar a definir histórias do usuário Fazer a análise detalhada Garantir que fizemos nosso trabalho Sei o que quero, mas como descrevo isso? Fazer web site 3 meses Artefatos de análise
  • 6. O que? Por quê? Pra quem? HISTÓRIA DO USUÁRIO 6
  • 7. O que? Por quê? Pra quem? HISTÓRIA DO USUÁRIO 7 Como palestrante do TheDevConf que não mora mais em SP Eu preciso listar nome, preço e localização de hotéis de SP disponíveis em 5 de julho Para que eu possa escolher um hotel perto do local do evento
  • 8. O que? Por quê? Pra quem? HISTÓRIA DO USUÁRIO 8 I Independente Como palestrante do TheDevConf que não mora mais em SP Eu preciso listar nome, preço e localização de hotéis de SP disponíveis em 5 de julho Para que eu possa escolher um hotel perto do local do evento
  • 9. O que? Por quê? Pra quem? HISTÓRIA DO USUÁRIO 9 I N Independente Negociável Como palestrante do TheDevConf que não mora mais em SP Eu preciso listar nome, preço e localização de hotéis de SP disponíveis em 5 de julho Para que eu possa escolher um hotel perto do local do evento
  • 10. O que? Por quê? Pra quem? HISTÓRIA DO USUÁRIO 10 I N V Independente Negociável Valiosa Interface com o usuário (HTML, CSS) Camada do meio (C#, Java, Python) Camada de dados (Oracle, SQL Server) Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan. Como palestrante do TheDevConf que não mora mais em SP Eu preciso listar nome, preço e localização de hotéis de SP disponíveis em 5 de julho Para que eu possa escolher um hotel perto do local do evento
  • 11. O que? Por quê? Pra quem? HISTÓRIA DO USUÁRIO 11 I N V E Independente Negociável Valiosa Estimável Interface com o usuário (HTML, CSS) Camada do meio (C#, Java, Python) Camada de dados (Oracle, SQL Server) Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan. Como palestrante do TheDevConf que não mora mais em SP Eu preciso listar nome, preço e localização de hotéis de SP disponíveis em 5 de julho Para que eu possa escolher um hotel perto do local do evento
  • 12. O que? Por quê? Pra quem? HISTÓRIA DO USUÁRIO 12 I N V E S Independente Negociável Valiosa Estimável Pequena (small) Interface com o usuário (HTML, CSS) Camada do meio (C#, Java, Python) Camada de dados (Oracle, SQL Server) Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan. Como palestrante do TheDevConf que não mora mais em SP Eu preciso listar nome, preço e localização de hotéis de SP disponíveis em 5 de julho Para que eu possa escolher um hotel perto do local do evento
  • 13. O que? Por quê? Pra quem? HISTÓRIA DO USUÁRIO 13 I N V E S T Independente Negociável Valiosa Estimável Pequena (small) Testável Interface com o usuário (HTML, CSS) Camada do meio (C#, Java, Python) Camada de dados (Oracle, SQL Server) Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan. Como palestrante do TheDevConf que não mora mais em SP Eu preciso listar nome, preço e localização de hotéis de SP disponíveis em 5 de julho Para que eu possa escolher um hotel perto do local do evento
  • 14. O que? Por quê? Pra quem? HISTÓRIA DO USUÁRIO 14 I N V E S T Independente Negociável Valiosa Estimável Pequena (small) Testável Interface com o usuário (HTML, CSS) Camada do meio (C#, Java, Python) Camada de dados (Oracle, SQL Server) Fonte: The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan. Como palestrante do TheDevConf que não mora mais em SP Eu preciso listar nome, preço e localização de hotéis de SP disponíveis em 5 de julho Para que eu possa escolher um hotel perto do local do evento HISTÓRIA ÁGIL TRADICIONAL
  • 15. BACKLOG ▫︎Conjunto das histórias para features do produto 15
  • 16. BACKLOG ▫︎Conjunto das histórias para features do produto ▫︎Épico: agrupam histórias de mesma área do domínio 16
  • 17. BACKLOG ▫︎Conjunto das histórias para features do produto ▫︎Épico: agrupam histórias de mesma área do domínio 17 ÉPICO: Cadastro de cliente
  • 18. BACKLOG ▫︎Conjunto das histórias para features do produto ▫︎Épico: agrupam histórias de mesma área do domínio 18 ÉPICO: Cadastro de cliente História #1: Cadastro manual: nome, email, … História #2: Cadastro via facebook
  • 19. E quando as histórias são implementadas por microsserviços? 19
  • 21. QUE PROBLEMA MICROSSERVIÇOS TENTA RESOLVER? 21 Arquitetura monolítica: várias features em um único executável
  • 22. QUE PROBLEMA MICROSSERVIÇOS TENTA RESOLVER? 22 Arquitetura monolítica: várias features em um único executável Problemas: -Implantação de uma feature requer implantação de todas
  • 23. QUE PROBLEMA MICROSSERVIÇOS TENTA RESOLVER? 23 Arquitetura monolítica: várias features em um único executável Problemas: -Implantação de uma feature requer implantação de todas -Difícil de manter a modularização
  • 24. QUE PROBLEMA MICROSSERVIÇOS TENTA RESOLVER? 24 Arquitetura monolítica: várias features em um único executável Problemas: -Implantação de uma feature requer implantação de todas -Difícil de manter a modularização -Escalar horizontalmente requer mais infra
  • 25. O QUE SÃO MICROSSERVIÇOS? 25 Arquitetura monolítica: várias features em um único executável Arquitetura de microsserviços: conjunto de serviços, cada um sendo um executável e responsável por uma feature
  • 26. O QUE SÃO MICROSSERVIÇOS? 26 Arquitetura monolítica: várias features em um único executável Arquitetura de microsserviços: conjunto de serviços, cada um sendo um executável e responsável por uma feature Problemas: -Implantação de uma feature requer implantação de todas Soluções: -Implantação de uma feature independente de outras
  • 27. O QUE SÃO MICROSSERVIÇOS? 27 Arquitetura monolítica: várias features em um único executável Arquitetura de microsserviços: conjunto de serviços, cada um sendo um executável e responsável por uma feature Problemas: -Implantação de uma feature requer implantação de todas -Difícil de manter a modularização Soluções: -Implantação de uma feature independente de outras -Comunicação simples, protege módulos
  • 28. O QUE SÃO MICROSSERVIÇOS? 28 Arquitetura monolítica: várias features em um único executável Arquitetura de microsserviços: conjunto de serviços, cada um sendo um executável e responsável por uma feature Problemas: -Implantação de uma feature requer implantação de todas -Difícil de manter a modularização -Escalar horizontalmente requer mais infra Soluções: -Implantação de uma feature independente de outras -Comunicação simples, protege módulos -Escalar horizontalmente requer menos infra
  • 29. BOAS PRÁTICAS ▫︎Testes automatizados em todos os níveis ▫︎Unitários, integração, contratos, jornadas de usuários 29
  • 30. BOAS PRÁTICAS ▫︎Testes automatizados em todos os níveis ▫︎Unitários, integração, contratos, jornadas de usuários ▫︎Integração contínua 30
  • 31. BOAS PRÁTICAS ▫︎Testes automatizados em todos os níveis ▫︎Unitários, integração, contratos, jornadas de usuários ▫︎Integração contínua ▫︎Implantação automatizada 31
  • 32. BOAS PRÁTICAS ▫︎Testes automatizados em todos os níveis ▫︎Unitários, integração, contratos, jornadas de usuários ▫︎Integração contínua ▫︎Implantação automatizada ▫︎Monitoração 32
  • 33. BOAS PRÁTICAS ▫︎Testes automatizados em todos os níveis ▫︎Unitários, integração, contratos, jornadas de usuários ▫︎Integração contínua ▫︎Implantação automatizada ▫︎Monitoração ▫︎Times cuidando de feature 33
  • 34. BOAS PRÁTICAS ▫︎Testes automatizados em todos os níveis ▫︎Unitários, integração, contratos, jornadas de usuários ▫︎Integração contínua ▫︎Implantação automatizada ▫︎Monitoração ▫︎Times cuidando de feature ▫︎Times mantendo os microsserviços independentes 34
  • 35. BOAS PRÁTICAS ▫︎Testes automatizados em todos os níveis ▫︎Unitários, integração, contratos, jornadas de usuários ▫︎Integração contínua ▫︎Implantação automatizada ▫︎Monitoração ▫︎Times cuidando de feature ▫︎Times mantendo os microsserviços independentes 35 JORNADA
  • 36. Mas e enquanto não se consegue adotar todas as boas práticas? 36
  • 38. ORGANIZAÇÃO DOS TIMES: CENÁRIO IDEAL 38 Produto'B' Web$Service$A$ Produto'A' Web$Service$B$ Portal$ Web$Service$C$ Web$Service$D$ Time'4'Time'3' Aplicação$$$$$Cliente$ Time'2'Time'1'
  • 39. ORGANIZAÇÃO DOS TIMES: CENÁRIO REAL 39 Produto'B' Web$Service$A$ Produto'A' Web$Service$B$ Portal$ Web$Service$C$ Web$Service$D$ Time'4'Time'3' Aplicação$$$$$Cliente$ Time'2' Time'1'
  • 40. ORGANIZAÇÃO DO BACKLOG: CENÁRIO IDEAL 40 Produto'B' Web$Service$A$ Produto'A' Web$Service$B$ Portal$ Web$Service$C$ Web$Service$D$ Backlog'4'Backlog'3' Aplicação$$$$$Cliente$ Backlog'2'Backlog'1'
  • 41. ORGANIZAÇÃO DO BACKLOG: CENÁRIO REAL 41 Produto'B' Web$Service$A$ Produto'A' Web$Service$B$ Portal$ Web$Service$C$ Web$Service$D$ Backlog'4'Backlog'3' Aplicação$$$$$Cliente$ Backlog'2' Backlog'1'
  • 42. DESAFIO #1 ▫︎Quando times perdem a visão do todo 42 Produto'B' Web$Service$A$ Produto'A' Web$Service$B$ Portal$ Web$Service$C$ Web$Service$D$ Time'4'Time'3' Aplicação$$$$$Cliente$ Time'2' Time'1'
  • 43. DESAFIO #1 ▫︎Quando times perdem a visão do todo ▫︎Escopo das histórias delimitado por endpoints 43 Produto'B' Web$Service$A$ Produto'A' Web$Service$B$ Portal$ Web$Service$C$ Web$Service$D$ Backlog'4'Backlog'3' Aplicação$$$$$Cliente$ Backlog'2' Backlog'1'
  • 44. Produto'B' Web$Service$A$ Produto'A' Web$Service$B$ Portal$ Web$Service$C$ Web$Service$D$ Time'4'Time'3' Aplicação$$$$$Cliente$ Time'2' Time'1' DESAFIO #1 ▫︎Quando times perdem a visão do todo ▫︎Escopo das histórias delimitado por endpoints 44 História - time 1: [Serviço] Listar hotéis
  • 45. DESAFIO #1 ▫︎Quando times perdem a visão do todo ▫︎Escopo das histórias delimitado por endpoints ▫︎Pode perder o benefício das características INVEST 45
  • 46. DESAFIO #1 ▫︎Quando times perdem a visão do todo ▫︎Escopo das histórias delimitado por endpoints ▫︎Pode perder o benefício das características INVEST 46 I dependência entre histórias do cliente e serviço
  • 47. V DESAFIO #1 ▫︎Quando times perdem a visão do todo ▫︎Escopo das histórias delimitado por endpoints ▫︎Pode perder o benefício das características INVEST 47 I dependência entre histórias do cliente e serviço endpoints podem ser features incompletas
  • 48. V DESAFIO #1 ▫︎Quando times perdem a visão do todo ▫︎Escopo das histórias delimitado por endpoints ▫︎Pode perder o benefício das características INVEST 48 I T dependência entre histórias do cliente e serviço endpoints podem ser features incompletas usuários não acessam endpoints
  • 49. DESAFIO #2 ▫︎Quando times ficam bloqueados por dependência em histórias de outros times 49
  • 50. DESAFIO #2 ▫︎Quando times ficam bloqueados por dependência em histórias de outros times 50 Produto'B' Web$Service$A$ Produto'A' Web$Service$B$ Portal$ Web$Service$C$ Web$Service$D$ Backlog'4'Backlog'3' Aplicação$$$$$Cliente$ Backlog'2' Backlog'1' História - time 1: [Serviço] Listar hotéis História - time 2: [UI] Visualizar lista de hotéis
  • 51. DESAFIO #2 ▫︎Quando times ficam bloqueados por dependência em histórias de outros times ▫︎Difícil de alinhar prioridades entre times ▫︎Time do cliente dependendo do time de serviços 51 Produto'B' Web$Service$A$ Produto'A' Web$Service$B$ Portal$ Web$Service$C$ Web$Service$D$ Backlog'4'Backlog'3' Aplicação$$$$$Cliente$ Backlog'2' Backlog'1' História - time 1: [Serviço] Listar hotéis História - time 2: [UI] Visualizar lista de hotéis
  • 52. DESAFIO #2 ▫︎Quando times ficam bloqueados por dependência em histórias de outros times ▫︎Difícil de alinhar prioridades entre times ▫︎Time do cliente dependendo do time de serviços ▫︎Velocidades por histórias em vez de por features podem dar uma falsa visão de progresso 52
  • 53. DESAFIO #2 ▫︎Quando times ficam bloqueados por dependência em histórias de outros times ▫︎Difícil de alinhar prioridades entre times ▫︎Time do cliente dependendo do time de serviços ▫︎Velocidades por histórias em vez de por features podem dar uma falsa visão de progresso 53 História - time 1: [Serviço] Listar hotéis
  • 54. DESAFIO #2 ▫︎Quando times ficam bloqueados por dependência em histórias de outros times ▫︎Difícil de alinhar prioridades entre times ▫︎Time do cliente dependendo do time de serviços ▫︎Velocidades por histórias em vez de por features podem dar uma falsa visão de progresso 54 História - time 1: [Serviço] Listar hotéis DONE
  • 55. ▫︎Quando times ficam bloqueados por dependência em histórias de outros times ▫︎Difícil de alinhar prioridades entre times ▫︎Time do cliente dependendo do time de serviços ▫︎Velocidades por histórias em vez de por features podem dar uma falsa visão de progresso História - time 1: [Serviço] Listar hotéis DESAFIO #2 55 História - time 1: [Serviço] Reservar quarto DONE
  • 56. DESAFIO #2 ▫︎Quando times ficam bloqueados por dependência em histórias de outros times ▫︎Difícil de alinhar prioridades entre times ▫︎Time do cliente dependendo do time de serviços ▫︎Velocidades por histórias em vez de por features podem dar uma falsa visão de progresso 56 História - time 1: [Serviço] Reservar quarto DONE História - time 1: [Serviço] Listar hotéis DONE
  • 57. DESAFIO #2 ▫︎Quando times ficam bloqueados por dependência em histórias de outros times ▫︎Difícil de alinhar prioridades entre times ▫︎Time do cliente dependendo do time de serviços ▫︎Velocidades por histórias em vez de por features podem dar uma falsa visão de progresso 57 História - time 1: [Serviço] Reservar quarto DONE História - time 1: [Serviço] Listar hotéis DONE História - time 1: [Serviço] Cancelar reserva
  • 58. DESAFIO #2 ▫︎Quando times ficam bloqueados por dependência em histórias de outros times ▫︎Difícil de alinhar prioridades entre times ▫︎Time do cliente dependendo do time de serviços ▫︎Velocidades por histórias em vez de por features podem dar uma falsa visão de progresso 58 História - time 1: [Serviço] Reservar quarto História - time 1: [Serviço] Listar hotéis DONE DONE História - time 1: [Serviço] Cancelar reserva DONE
  • 59. DESAFIO #2 ▫︎Quando times ficam bloqueados por dependência em histórias de outros times ▫︎Difícil de alinhar prioridades entre times ▫︎Time do cliente dependendo do time de serviços ▫︎Velocidades por histórias em vez de por features podem dar uma falsa visão de progresso 59 História - time 2: [UI] Visualizar lista de hotéis História - time 1: [Serviço] Reservar quarto História - time 1: [Serviço] Listar hotéis DONE DONE História - time 1: [Serviço] Cancelar reserva DONE
  • 60. DESAFIO #2 ▫︎Quando times ficam bloqueados por dependência em histórias de outros times ▫︎Difícil de alinhar prioridades entre times ▫︎Time do cliente dependendo do time de serviços ▫︎Velocidades por histórias em vez de por features podem dar uma falsa visão de progresso 60 História - time 2: [UI] Visualizar lista de hotéis WIP História - time 1: [Serviço] Reservar quarto História - time 1: [Serviço] Listar hotéis DONE DONE História - time 1: [Serviço] Cancelar reserva DONE
  • 61. ▫︎Quando demora pra surgirem problemas de integrações DESAFIO #3 61
  • 62. DESAFIO #3 ▫︎Quando demora pra surgirem problemas de integrações 62 História - time 1: [Serviço] Listar hotéis Fevereiro
  • 63. DESAFIO #3 ▫︎Quando demora pra surgirem problemas de integrações 63 História - time 2: [UI] Visualizar lista de hotéis História - time 1: [Serviço] Listar hotéis Fevereiro Junho
  • 64. ▫︎Quando demora pra surgirem problemas de integrações ▫︎mau funcionamento do produto ▫︎pode atrasar ou abortar entregas DESAFIO #3 64 História - time 2: [UI] Visualizar lista de hotéis História - time 1: [Serviço] Listar hotéis
  • 65. Como conseguir fazer uma análise efetiva nesse contexto? 65
  • 66. 66 3 PASSOS PARA ANÁLISE
  • 67. 3 PASSOS PARA ANÁLISE 1. Mapear features em épicos 67
  • 68. 3 PASSOS PARA ANÁLISE 1. Mapear features em épicos 2. Mapear dependências entre histórias do épico 68
  • 69. 3 PASSOS PARA ANÁLISE 1. Mapear features em épicos 2. Mapear dependências entre histórias do épico 3. Definir critérios de aceitação para integrações 69
  • 70. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo 70
  • 71. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo ▫︎Solução: tratar épico como cidadão de primeira classe 71
  • 72. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo ▫︎Solução: tratar épico como cidadão de primeira classe ▫︎Ou seja, como história tradicional ▫︎O que? Por quê? Pra quem? 72
  • 73. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo ▫︎Solução: tratar épico como cidadão de primeira classe ▫︎Ou seja, como história tradicional ▫︎O que? Por quê? Pra quem? ▫︎Usar épico na priorização e velocidade 73
  • 74. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo ▫︎Solução: tratar épico como cidadão de primeira classe ▫︎Ou seja, como história tradicional ▫︎O que? Por quê? Pra quem? ▫︎Usar épico na priorização e velocidade 74 Épico: Visualizar lista de hotéis
  • 75. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo ▫︎Solução: tratar épico como cidadão de primeira classe ▫︎Ou seja, como história tradicional ▫︎O que? Por quê? Pra quem? ▫︎Usar épico na priorização e velocidade 75 Épico: Visualizar lista de hotéis
  • 76. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo ▫︎Solução: tratar épico como cidadão de primeira classe ▫︎Ou seja, como história tradicional ▫︎O que? Por quê? Pra quem? ▫︎Usar épico na priorização e velocidade 76 Épico: Visualizar lista de hotéis História - time 1: [Serviço] Listar hotéis
  • 77. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo ▫︎Solução: tratar épico como cidadão de primeira classe ▫︎Ou seja, como história tradicional ▫︎O que? Por quê? Pra quem? ▫︎Usar épico na priorização e velocidade 77 Épico: Visualizar lista de hotéis História - time 1: [Serviço] Listar hotéis
  • 78. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo ▫︎Solução: tratar épico como cidadão de primeira classe ▫︎Ou seja, como história tradicional ▫︎O que? Por quê? Pra quem? ▫︎Usar épico na priorização e velocidade 78 Épico: Visualizar lista de hotéis História - time 2: [UI] Visualizar lista de hotéis História - time 1: [Serviço] Listar hotéis
  • 79. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo ▫︎Solução: tratar épico como cidadão de primeira classe ▫︎Ou seja, como história tradicional ▫︎O que? Por quê? Pra quem? ▫︎Usar épico na priorização e velocidade 79 Épico: Visualizar lista de hotéis História - time 2: [UI] Visualizar lista de hotéis História - time 1: [Serviço] Listar hotéis PRIORIDADE
  • 80. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo ▫︎Solução: tratar épico como cidadão de primeira classe ▫︎Ou seja, como história tradicional ▫︎O que? Por quê? Pra quem? ▫︎Usar épico na priorização e velocidade 80 Épico: Visualizar lista de hotéis História - time 2: [UI] Visualizar lista de hotéis História - time 1: [Serviço] Listar hotéis PRIORIDADE P R I O R I D A D E
  • 81. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo ▫︎Solução: tratar épico como cidadão de primeira classe ▫︎Ou seja, como história tradicional ▫︎O que? Por quê? Pra quem? ▫︎Usar épico na priorização e velocidade 81 Épico: Visualizar lista de hotéis História - time 2: [UI] Visualizar lista de hotéis História - time 1: [Serviço] Listar hotéis
  • 82. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo ▫︎Solução: tratar épico como cidadão de primeira classe ▫︎Ou seja, como história tradicional ▫︎O que? Por quê? Pra quem? ▫︎Usar épico na priorização e velocidade 82 Épico: Visualizar lista de hotéis História - time 2: [UI] Visualizar lista de hotéis História - time 1: [Serviço] Listar hotéis DONE
  • 83. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo ▫︎Solução: tratar épico como cidadão de primeira classe ▫︎Ou seja, como história tradicional ▫︎O que? Por quê? Pra quem? ▫︎Usar épico na priorização e velocidade 83 Épico: Visualizar lista de hotéis História - time 2: [UI] Visualizar lista de hotéis História - time 1: [Serviço] Listar hotéis DONE D O N E
  • 84. ▫︎Problema: bloqueios por conta de dependências 2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO 84
  • 85. ▫︎Problema: bloqueios por conta de dependências ▫︎Solução: colaborar para identificar quais as capacidades que cada serviço precisa ter 2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO 85
  • 86. ▫︎Problema: bloqueios por conta de dependências ▫︎Solução: colaborar para identificar quais as capacidades que cada serviço precisa ter ▫︎Identificar as possíveis dependências entre elas para que o usuário consiga atingir seu objetivo 2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO 86
  • 87. ▫︎Problema: bloqueios por conta de dependências ▫︎Solução: colaborar para identificar quais as capacidades que cada serviço precisa ter ▫︎Identificar as possíveis dependências entre elas para que o usuário consiga atingir seu objetivo ▫︎Usar como base a arquitetura definida pelos times para a feature 2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO 87 plano 1. Requisitar margem de lucro
  • 88. ▫︎Problema: bloqueios por conta de dependências ▫︎Solução: colaborar para identificar quais as capacidades que cada serviço precisa ter ▫︎Identificar as possíveis dependências entre elas para que o usuário consiga atingir seu objetivo ▫︎Usar como base a arquitetura definida pelos times para a feature 2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO 88 custo plano 1. Requisitar margem de lucro 2. Requisitar custo
  • 89. ▫︎Problema: bloqueios por conta de dependências ▫︎Solução: colaborar para identificar quais as capacidades que cada serviço precisa ter ▫︎Identificar as possíveis dependências entre elas para que o usuário consiga atingir seu objetivo ▫︎Usar como base a arquitetura definida pelos times para a feature 2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO 89 custo preço plano 1. Requisitar margem de lucro 3. Requisitar preço 2. Requisitar custo
  • 90. ▫︎Problema: bloqueios por conta de dependências ▫︎Solução: colaborar para identificar quais as capacidades que cada serviço precisa ter ▫︎Identificar as possíveis dependências entre elas para que o usuário consiga atingir seu objetivo ▫︎Usar como base a arquitetura definida pelos times para a feature 2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO 90 custo preço plano 1. Requisitar margem de lucro 3. Requisitar preço 2. Requisitar custo 4. Calcular margem de lucro
  • 91. ▫︎Problema: bloqueios por conta de dependências ▫︎Solução: colaborar para identificar quais as capacidades que cada serviço precisa ter ▫︎Identificar as possíveis dependências entre elas para que o usuário consiga atingir seu objetivo ▫︎Usar como base a arquitetura definida pelos times para a feature ▫︎Priorização baseada nas dependências 2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO 91
  • 92. EXEMPLO 92 [ÉPICO] Visualizar margem de lucro Como planejador de inventário Eu preciso saber qual a margem de lucro do meu plano de compras Para que eu possa tomar decisões de planejamento de acordo com meu orçamento Objetivo do ponto de vista do usuário
  • 93. EXEMPLO 93 [ÉPICO] Visualizar margem de lucro Como planejador de inventário Eu preciso saber qual a margem de lucro do meu plano de compras Para que eu possa tomar decisões de planejamento de acordo com meu orçamento [Plano] Calcular margem de lucro Objetivo do ponto de vista do usuário Histórias de serviços para atingir o objetivo
  • 94. EXEMPLO 94 [ÉPICO] Visualizar margem de lucro Como planejador de inventário Eu preciso saber qual a margem de lucro do meu plano de compras Para que eu possa tomar decisões de planejamento de acordo com meu orçamento [Custo] Listar custo do produto [Plano] Calcular margem de lucro [Preço] Listar preço do produto Objetivo do ponto de vista do usuário Histórias de serviços para atingir o objetivo
  • 95. 3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES ▫︎Problema: integração causa mau funcionamento dos produtos e possíveis atrasos de entrega 95
  • 96. 3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES ▫︎Problema: integração causa mau funcionamento dos produtos e possíveis atrasos de entrega ▫︎Solução ▫︎Usar jornadas de usuário pra definir critérios de aceitação no nível de épico 96
  • 97. 3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES ▫︎Problema: integração causa mau funcionamento dos produtos e possíveis atrasos de entrega ▫︎Solução ▫︎Usar jornadas de usuário pra definir critérios de aceitação no nível de épico ▫︎Considerar os produtos impactados 97 [ÉPICO] Visualizar margem de lucro Como planejador de inventário Eu preciso saber qual a margem de lucro do meu plano de compras Para que eu possa tomar decisões de planejamento de acordo com meu orçamento
  • 98. 3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES ▫︎Problema: integração causa mau funcionamento dos produtos e possíveis atrasos de entrega ▫︎Solução ▫︎Usar jornadas de usuário pra definir critérios de aceitação no nível de épico ▫︎Considerar os produtos impactados 98 [ÉPICO] Visualizar margem de lucro Como planejador de inventário Eu preciso saber qual a margem de lucro do meu plano de compras Para que eu possa tomar decisões de planejamento de acordo com meu orçamento Jornada passando por múltiplos produtos
  • 99. 3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES ▫︎Problema: integração causa mau funcionamento dos produtos e possíveis atrasos de entrega ▫︎Solução ▫︎Usar jornadas de usuário pra definir critérios de aceitação no nível de épico ▫︎Considerar os produtos impactados 99 [ÉPICO] Visualizar margem de lucro Como planejador de inventário Eu preciso saber qual a margem de lucro do meu plano de compras Para que eu possa tomar decisões de planejamento de acordo com meu orçamento Jornada passando por múltiplos produtos 1. Usuário do produto de gerenciar custo define o custo do produto
  • 100. 3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES ▫︎Problema: integração causa mau funcionamento dos produtos e possíveis atrasos de entrega ▫︎Solução ▫︎Usar jornadas de usuário pra definir critérios de aceitação no nível de épico ▫︎Considerar os produtos impactados 100 [ÉPICO] Visualizar margem de lucro Como planejador de inventário Eu preciso saber qual a margem de lucro do meu plano de compras Para que eu possa tomar decisões de planejamento de acordo com meu orçamento Jornada passando por múltiplos produtos 1. Usuário do produto de gerenciar custo define o custo do produto 2. Usuário do produto de gerenciar preços define o preço do produto
  • 101. 3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES ▫︎Problema: integração causa mau funcionamento dos produtos e possíveis atrasos de entrega ▫︎Solução ▫︎Usar jornadas de usuário pra definir critérios de aceitação no nível de épico ▫︎Considerar os produtos impactados 101 [ÉPICO] Visualizar margem de lucro Como planejador de inventário Eu preciso saber qual a margem de lucro do meu plano de compras Para que eu possa tomar decisões de planejamento de acordo com meu orçamento Jornada passando por múltiplos produtos 1. Usuário do produto de gerenciar custo define o custo do produto 2. Usuário do produto de gerenciar preços define o preço do produto 3. Planejador acessa produto de plano de compras do produto e visualiza a margem de lucro
  • 102. 3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES ▫︎Problema: integração causa mau funcionamento dos produtos e possíveis atrasos de entrega ▫︎Solução ▫︎Usar jornadas de usuário pra definir critérios de aceitação no nível de épico ▫︎Considerar os produtos impactados ▫︎Definir critérios de aceitação pros serviços 102
  • 103. 3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES ▫︎Problema: integração causa mau funcionamento dos produtos e possíveis atrasos de entrega ▫︎Solução ▫︎Usar jornadas de usuário pra definir critérios de aceitação no nível de épico ▫︎Considerar os produtos impactados ▫︎Definir critérios de aceitação pros serviços ▫︎foco em regras de negócio, independente de interface 103
  • 104. 3. DEFINIR CRITÉRIOS DE ACEITAÇÃO PARA INTEGRAÇÕES ▫︎Problema: integração causa mau funcionamento dos produtos e possíveis atrasos de entrega ▫︎Solução ▫︎Usar jornadas de usuário pra definir critérios de aceitação no nível de épico ▫︎Considerar os produtos impactados ▫︎Definir critérios de aceitação pros serviços ▫︎foco em regras de negócio, independente de interface ▫︎Feedback mais rápido sobre os problemas de integração 104
  • 105. EXEMPLO: CRITÉRIO DE ACEITAÇÃO PRAS HISTÓRIAS 105 Serviço que gerencia custo [Custo] Listar custo do produto Dado que camisas regatas brancas pro verão de 2016 custa 2 dólares Quando eu listo custo de camisa regata branca do verão de 2016 Então vejo que o custo é 2 dólares
  • 106. EXEMPLO: CRITÉRIO DE ACEITAÇÃO PRAS HISTÓRIAS 106 Serviço que gerencia custo [Custo] Listar custo do produto Dado que camisas regatas brancas pro verão de 2016 custa 2 dólares Quando eu listo custo de camisa regata branca do verão de 2016 Então vejo que o custo é 2 dólares [Preço] Listar preço do produto Dado que camisas regatas brancas pro verão de 2016 valem 20 dólares Quando eu listo preço de camisa regata branca do verão de 2016 Então vejo que o preço é 20 dólares Serviço que gerencia preço
  • 107. EXEMPLO: CRITÉRIO DE ACEITAÇÃO PRAS HISTÓRIAS 107 Serviço que gerencia custo [Custo] Listar custo do produto Dado que camisas regatas brancas pro verão de 2016 custa 2 dólares Quando eu listo custo de camisa regata branca do verão de 2016 Então vejo que o custo é 2 dólares [Preço] Listar preço do produto Dado que camisas regatas brancas pro verão de 2016 valem 20 dólares Quando eu listo preço de camisa regata branca do verão de 2016 Então vejo que o preço é 20 dólares Serviço que gerencia preço Serviço que gerencia plano [Lucro] Calcular margem de lucro Dado que camisas regatas brancas pro verão de 2016 custam 2 dólares e valem 20 dólares Quando eu visualizo a margem de lucro do meu plano de compras Então vejo a margem é de 18 dólares
  • 109. RESUMO Para o contexto em que: 109
  • 110. RESUMO Para o contexto em que: ▫︎times não são organizados por features 110
  • 111. RESUMO Para o contexto em que: ▫︎times não são organizados por features ▫︎cuidam de serviços que são utilizados por múltiplos produtos 111
  • 112. RESUMO Para o contexto em que: ▫︎times não são organizados por features ▫︎cuidam de serviços que são utilizados por múltiplos produtos ▫︎ainda não conseguem usar todas as boas práticas pra se trabalhar com microsserviços 112
  • 113. RESUMO Para o contexto em que: ▫︎times não são organizados por features ▫︎cuidam de serviços que são utilizados por múltiplos produtos ▫︎não conseguem usar todas as boas práticas pra se trabalhar com microsserviços A análise dos microsserviços podem ser feita como segue: 113
  • 114. RESUMO Para o contexto em que: ▫︎times não são organizados por features ▫︎cuidam de serviços que são utilizados por múltiplos produtos ▫︎não conseguem usar todas as boas práticas pra se trabalhar com microsserviços A análise dos microsserviços podem ser feita como segue: ▫︎mapeando features em épicos para os times não perderem a visão do todo 114
  • 115. RESUMO Para o contexto em que: ▫︎times não são organizados por features ▫︎cuidam de serviços que são utilizados por múltiplos produtos ▫︎não conseguem usar todas as boas práticas pra se trabalhar com microsserviços A análise dos microsserviços podem ser feita como segue: ▫︎mapeando features em épicos para os times não perderem a visão do todo ▫︎mapeando dependências entre histórias de um mesmo épico pra que um time não fique bloqueado 115
  • 116. RESUMO Para o contexto em que: ▫︎times não são organizados por features ▫︎cuidam de serviços que são utilizados por múltiplos produtos ▫︎não conseguem usar todas as boas práticas pra se trabalhar com microsserviços A análise dos microsserviços podem ser feita como segue: ▫︎mapeando features em épicos para os times não perderem a visão do todo ▫︎mapeando dependências entre histórias de um mesmo épico pra que um time não fique bloqueado ▫︎planejar critérios de aceitação nos níveis de épicos e histórias para minimizar os problemas de integração 116
  • 118. REFERÊNCIAS ▫︎The Agile Samurai: How Agile Masters Deliver Great Software. Rasmusson, Jonathan. ▫︎Microservices. Martin Fowler. ▫︎MicroservicePrerequisites. Martin Fowler. ▫︎Microservice trade offs. Martin Fowler. ▫︎Enterprise Integration Using REST. Martin Fowler. 118