thedevconf 2016 - análise efetiva de microservices em 3 passos

118
The Developer’s Conference 2016 ANÁLISE EFETIVA DE MICROSSERVIÇOS EM 3 PASSOS Taíse Dias da Silva

Upload: taise-dias-da-silva

Post on 12-Jan-2017

355 views

Category:

Software


0 download

TRANSCRIPT

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

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

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

BACKGROUND

2

2009

Ciência da Computação, UFPE Metodologias ágeis Web services

2013Microsserviços

2014

Análise de Microsserviços

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

FALAREMOS SOBRE

3

Análise

Microsserviços

Contexto & Desafios

3 passos para análise

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

4

ANÁLISE

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

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

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

O que? Por quê? Pra quem?

HISTÓRIA DO USUÁRIO

6

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

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

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

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

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

O que? Por quê? Pra quem?

HISTÓRIA DO USUÁRIO

9

I

N

Independente

NegociávelComo 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

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

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

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

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

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

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

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

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ávelInterface 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

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

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ávelInterface 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

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

BACKLOG

▫︎Conjunto das histórias para features do produto

15

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

BACKLOG

▫︎Conjunto das histórias para features do produto

▫︎ Épico: agrupam histórias de mesma área do domínio

16

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

BACKLOG

▫︎Conjunto das histórias para features do produto

▫︎ Épico: agrupam histórias de mesma área do domínio

17

ÉPICO: Cadastro de cliente

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

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

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

E quando as histórias são implementadas por microsserviços?

19

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

20

MICROSSERVIÇOS

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

QUE PROBLEMA MICROSSERVIÇOS TENTA RESOLVER?

21

Arquitetura monolítica: várias features em um único executável

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

BOAS PRÁTICAS

▫︎ Testes automatizados em todos os níveis

▫︎Unitários, integração, contratos, jornadas de usuários

29

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

BOAS PRÁTICAS

▫︎ Testes automatizados em todos os níveis

▫︎Unitários, integração, contratos, jornadas de usuários

▫︎ Integração contínua

30

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

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

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

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

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

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

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

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

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

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

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

Mas e enquanto não se consegue adotar todas as boas práticas?

36

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

37

CONTEXTO & DESAFIOS

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

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'

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

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'

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

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'

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

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'

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

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'

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

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'

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

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

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

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

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

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

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

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

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

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

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

DESAFIO #2

▫︎Quando times ficam bloqueados por dependência em histórias de outros times

49

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

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

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

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

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

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

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

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

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

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

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

▫︎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

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

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

DONEHistória - time 1: [Serviço] Listar hotéis

DONE

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

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

DONEHistória - time 1: [Serviço] Listar hotéis

DONEHistória - time 1: [Serviço] Cancelar reserva

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

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 DONEHistória - time 1: [Serviço] Cancelar reserva

DONE

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

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 DONEHistória - time 1: [Serviço] Cancelar reserva

DONE

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

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 DONEHistória - time 1: [Serviço] Cancelar reserva

DONE

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

▫︎Quando demora pra surgirem problemas de integrações

DESAFIO #3

61

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

DESAFIO #3

▫︎Quando demora pra surgirem problemas de integrações

62

História - time 1: [Serviço] Listar hotéis

Fevereiro

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

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

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

▫︎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

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

Como conseguir fazer uma análise efetiva nesse contexto?

65

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

66

3 PASSOS PARA ANÁLISE

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

3 PASSOS PARA ANÁLISE

1. Mapear features em épicos

67

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

3 PASSOS PARA ANÁLISE

1. Mapear features em épicos

2. Mapear dependências entre histórias do épico

68

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

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

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

1. MAPEAR FEATURES EM ÉPICOS

▫︎ Problema: falta de visão do todo

70

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

1. MAPEAR FEATURES EM ÉPICOS

▫︎ Problema: falta de visão do todo

▫︎ Solução: tratar épico como cidadão de primeira classe

71

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

▫︎ Problema: bloqueios por conta de dependências

2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO

84

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

▫︎ 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

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

▫︎ 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

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

▫︎ 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

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

▫︎ 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

88custo

plano

1. Requisitar margem de lucro

2. Requisitar custo

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

▫︎ 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

89custo preço

plano

1. Requisitar margem de lucro

3. Requisitar preço

2. Requisitar custo

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

▫︎ 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

90custo preço

plano

1. Requisitar margem de lucro

3. Requisitar preço

2. Requisitar custo

4. Calcular margem de lucro

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

▫︎ 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

108

RESUMO

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

RESUMO

Para o contexto em que:

109

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

RESUMO

Para o contexto em que:

▫︎ times não são organizados por features

110

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

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

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

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

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

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

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

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

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

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

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

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

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

Perguntas?

OBRIGADA

@taisedias github.com/taisedias

linkedin.com/in/taisedias

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

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