Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

TDC2016SP - Trilha Microservices

458 views

Published on

Análise efetiva de microsserviços em 3 passos

Published in: Education
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

TDC2016SP - Trilha Microservices

  1. 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. 2. BACKGROUND 2 2009 Ciência da Computação, UFPE Metodologias ágeis Web services 2013 Microsserviços 2014 Análise de Microsserviços
  3. 3. FALAREMOS SOBRE 3 Análise Microsserviços Contexto & Desafios 3 passos para análise
  4. 4. 4 ANÁLISE
  5. 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. 6. O que? Por quê? Pra quem? HISTÓRIA DO USUÁRIO 6
  7. 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. 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. 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. 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. 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. 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. 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. 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. 15. BACKLOG ▫︎Conjunto das histórias para features do produto 15
  16. 16. BACKLOG ▫︎Conjunto das histórias para features do produto ▫︎Épico: agrupam histórias de mesma área do domínio 16
  17. 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. 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. 19. E quando as histórias são implementadas por microsserviços? 19
  20. 20. 20 MICROSSERVIÇOS
  21. 21. QUE PROBLEMA MICROSSERVIÇOS TENTA RESOLVER? 21 Arquitetura monolítica: várias features em um único executável
  22. 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. 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. 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. 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. 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. 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. 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. 29. BOAS PRÁTICAS ▫︎Testes automatizados em todos os níveis ▫︎Unitários, integração, contratos, jornadas de usuários 29
  30. 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. 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. 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. 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. 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. 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. 36. Mas e enquanto não se consegue adotar todas as boas práticas? 36
  37. 37. 37 CONTEXTO & DESAFIOS
  38. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 49. DESAFIO #2 ▫︎Quando times ficam bloqueados por dependência em histórias de outros times 49
  50. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 61. ▫︎Quando demora pra surgirem problemas de integrações DESAFIO #3 61
  62. 62. DESAFIO #3 ▫︎Quando demora pra surgirem problemas de integrações 62 História - time 1: [Serviço] Listar hotéis Fevereiro
  63. 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. 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. 65. Como conseguir fazer uma análise efetiva nesse contexto? 65
  66. 66. 66 3 PASSOS PARA ANÁLISE
  67. 67. 3 PASSOS PARA ANÁLISE 1. Mapear features em épicos 67
  68. 68. 3 PASSOS PARA ANÁLISE 1. Mapear features em épicos 2. Mapear dependências entre histórias do épico 68
  69. 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. 70. 1. MAPEAR FEATURES EM ÉPICOS ▫︎Problema: falta de visão do todo 70
  71. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 84. ▫︎Problema: bloqueios por conta de dependências 2. MAPEAR DEPENDÊNCIAS ENTRE HISTÓRIAS DO ÉPICO 84
  85. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  108. 108. 108 RESUMO
  109. 109. RESUMO Para o contexto em que: 109
  110. 110. RESUMO Para o contexto em que: ▫︎times não são organizados por features 110
  111. 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. 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. 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. 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. 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. 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
  117. 117. Perguntas? OBRIGADA @taisedias github.com/taisedias linkedin.com/in/taisedias
  118. 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

×