DevOps em Times distribuídos (DevOpsDays Recife 2019)

DevOps em Times distribuídos (DevOpsDays Recife 2019)

Palestra apresentada dia 14 de dezembro de 2019 no DevOpsDays Recife - SP (https://devopsdays.org/events/2019-recife/program/wellington-figueira-da-silva). Mostramos como começamos implantar trabalho remoto no escritório brasileiro da Cabify/Easytaxi, passando pelo remote manifesto, pelo modelo de trabalho de Gitlab, pelas vantagens e desvantages, comunicação e ferramentas para melhoria dessa comunicação.

280fecb4f048de5ecf36bec281609ea4?s=128

Wellington F. Silva

December 14, 2019
Tweet

Transcript

  1. DevOps em times Distribuídos Recife 2019

  2. Wellington F. Silva contato: @_wsilva nicks: wsilva, boina, tom, fisi*

    funções: pai, tec. telecom, programador, sysadmin, docker community leader, instrutor, escritor, zend certified engineer, docker certified associate e certified kubernetes administrator * deprecation in favor of Well
  3. Agenda • História • Remote Manifesto • Vantagens e desvantagens

    • Persistência de dados X Comunicação
  4. Disclaimer • Não vamos abordar o que é ou não

    DevOps • Vamos focar principalmente em comunicação • Thanks to Pablo Carranza and Daniele Valeriani
  5. Primeiro uma História

  6. História • Easytaxi + Tapsi - Ganhamos um sueco no

    time
  7. História • Easytaxi + Tapsi - Ganhamos um sueco no

    time • Como integrar e dividir tarefas com esse cara?
  8. História • Easytaxi + Tapsi - Ganhamos um sueco no

    time • Como integrar e dividir tarefas com esse cara? • Mattermost + daily hangouts
  9. História Insights sobre a experiência: • Seria legal poder trabalhar

    de casa um dia que acordarmos meio virados não?
  10. História Insights sobre a experiência: • Seria legal poder trabalhar

    de casa um dia que acordarmos meio virados não? • Grupo de discussão no Mattermost
  11. História Insights sobre a experiência: • Seria legal poder trabalhar

    de casa um dia que acordarmos meio virados não? • Grupo de discussão no Mattermost • Levamos ideia aos coordenadores
  12. História Resultado:

  13. História Resultado: • Começamos home-office 1 a 2 vezes por

    semana alinhados com outros times e com RH
  14. História Resultado: • Começamos home-office 1 a 2 vezes por

    semana alinhados com outros times e com RH Nesse meio tempo: • Cabify + Easytaxi
  15. História • Em Madri ninguém do time de infra ficava

    no escritório
  16. História • Em Madri ninguém do time de infra ficava

    no escritório • Integração SP - Madri muito ruim
  17. História • Em Madri ninguém do time de infra ficava

    no escritório • Integração SP - Madri muito ruim • Líderes da Cabify pintaram em São Paulo (meses depois)
  18. História • Em Madri ninguém do time de infra ficava

    no escritório • Integração SP - Madri muito ruim • Líderes da Cabify pintaram em São Paulo (meses depois) • Cada um dos lados do oceano mostrou como trabalhava
  19. História • Mostramos sobre home-office

  20. História • Mostramos sobre home-office • Pediram:

  21. História • Mostramos sobre home-office • Pediram: • Fazer TODOS

    OS DIAS
  22. História • Mostramos sobre home-office • Pediram: • Fazer TODOS

    OS DIAS • Combinar um dia por semana para se encontrar (se possível) mas não necessariamente no escritório
  23. História • Mostramos sobre home-office • Pediram: • Fazer TODOS

    OS DIAS • Combinar um dia por semana para se encontrar (se possível) mas não necessariamente no escritório • Se fossemos ao escritório, sentar cada dia em um lugar diferente
  24. Primeiras impressões

  25. Primeiras impressões • Interrupções diminuíram drasticamente

  26. Primeiras impressões • Interrupções diminuíram drasticamente • Mais projetos de

    evolução começaram sair
  27. Primeiras impressões • Interrupções diminuíram drasticamente • Mais projetos de

    evolução começaram sair • Sentimos a necessidade de daily para alinhar o que cada um estava fazendo
  28. Primeiras impressões • Interrupções diminuíram drasticamente • Mais projetos de

    evolução começaram sair • Sentimos a necessidade de daily para alinhar o que cada um estava fazendo • Incidentes mais difíceis de tratar
  29. Primeiras impressões • Muita liberdade para trabalhar de casa, em

    viagem, etc
  30. Primeiras impressões • Muita liberdade para trabalhar de casa, em

    viagem, etc • Problemas de COMUNICAÇÃO surgiram☹:
  31. Primeiras impressões • Muita liberdade para trabalhar de casa, em

    viagem, etc • Problemas de COMUNICAÇÃO surgiram☹: • Alinhar reuniões presenciais • Ferramenta e pessoas de fora • Lentidão até alinhar todos envolvidos
  32. Conways Law

  33. “Organizations which design systems ... are constrained to produce designs

    which are copies of the communication structures of these organizations”
  34. Tradução livre: Organizações que desenham sistemas ... são limitados a

    produzir desenhos que são cópias da estrutura de comunicação delas mesmas.
  35. Tradução livre: Organizações que desenham sistemas ... são limitados a

    produzir desenhos que são cópias da estrutura de comunicação delas mesmas.
  36. Feedback

  37. Feedback • Estão no caminho mas pode melhorar

  38. Feedback • Estão no caminho mas pode melhorar • Citamos

    o Gitlab como referência
  39. Feedback • Estão no caminho mas pode melhorar • Citamos

    o Gitlab como referência • Alguns integrantes do time de infra da Cabify eram ex-Gitlab, inclusive líderes
  40. Feedback • Estão no caminho mas pode melhorar • Citamos

    o Gitlab como referência • Alguns integrantes do time de infra da Cabify eram ex-Gitlab, inclusive líderes • REMOTE MANIFESTO https://about.gitlab.com/ 2015/04/08/the-remote-manifesto/
  41. Remote Manifesto

  42. Remote Manifesto • Trabalhe de onde quiser

  43. Remote Manifesto • Trabalhe de onde quiser • Se comunique

    de maneira assíncrona
  44. Remote Manifesto • Trabalhe de onde quiser • Se comunique

    de maneira assíncrona • Reconheça que o futuro é incerto
  45. Remote Manifesto • Trabalhe de onde quiser • Se comunique

    de maneira assíncrona • Reconheça que o futuro é incerto • Tenha reuniões on-line cara-a-cara
  46. Remote Manifesto • Trabalhe de onde quiser • Se comunique

    de maneira assíncrona • Reconheça que o futuro é incerto • Tenha reuniões on-line cara-a-cara • Reuniões são para gerar vínculo, para blockers e futuro
  47. Remote Manifesto • Trabalhe de onde quiser • Se comunique

    de maneira assíncrona • Reconheça que o futuro é incerto • Tenha reuniões on-line cara-a-cara • Reuniões são para gerar vínculo, para blockers e futuro • Crie vínculos na vida real
  48. Remote Manifesto • Trabalhe de onde quiser • Se comunique

    de maneira assíncrona • Reconheça que o futuro é incerto • Tenha reuniões on-line cara-a-cara • Reuniões são para gerar vínculo, para blockers e futuro • Crie vínculos na vida real • Dê créditos aos envolvidos e sempre lembre de agradecer
  49. –Victor, Product Manager, GitLab “Remote is not a challenge to

    overcome. It's a clear business advantage.”
  50. Porque remoto?

  51. Porque remoto Para funcionários: Mais flexibilidade no dia a dia

    (família, passeio, esportes)
  52. Porque remoto Para funcionários: Mais flexibilidade no dia a dia

    (família, passeio, esportes) Sem desperdício de tempo e dinheiro com transporte
  53. Porque remoto Para funcionários: Mais flexibilidade no dia a dia

    (família, passeio, esportes) Sem desperdício de tempo e dinheiro com transporte (subway and bus fees, gas, car maintenance, tolls, etc.) Menos exposição a doenças em transporte público e de colegas de trabalho
  54. Porque remoto Para funcionários: Redução de interrupções e aumento de

    produtividade
  55. Porque remoto Para funcionários: Redução de interrupções e aumento de

    produtividade Possibilidade de viajar sem precisar tirar férias
  56. Porque remoto Para funcionários: Redução de interrupções e aumento de

    produtividade Possibilidade de viajar sem precisar tirar férias Possibilidade de mudar de cidades
  57. Porque remoto Para funcionários: Redução de interrupções e aumento de

    produtividade Possibilidade de viajar sem precisar tirar férias Possibilidade de mudar de cidades Alguns se comunicam melhor em ambientes diferentes
  58. Porque remoto Para funcionários: A integração (onboard) pode ser menos

    estressante socialmente
  59. Porque remoto Para funcionários: A integração (onboard) pode ser menos

    estressante socialmente Refeições em casa são geralmente mais baratas e mais saudáveis
  60. Porque remoto Para funcionários: A integração (onboard) pode ser menos

    estressante socialmente Refeições em casa são geralmente mais baratas e mais saudáveis Impostos mais baratos em alguns países
  61. Porque remoto Para funcionários: A integração (onboard) pode ser menos

    estressante socialmente Refeições em casa são geralmente mais baratas e mais saudáveis Impostos mais baratos em alguns países Sem regras para roupas
  62. Porque remoto Para funcionários: Falta de contato físico dificulta integração

  63. Porque remoto Para funcionários: Falta de contato físico dificulta integração

    Primeiro mês pode ser solitário
  64. Porque remoto Para funcionários: Falta de contato físico dificulta integração

    Primeiro mês pode ser solitário O setup para trabalho remoto pode impactar capacidade de comunicação
  65. Porque remoto Para funcionários: Falta de contato físico dificulta integração

    Primeiro mês pode ser solitário O setup para trabalho remoto pode impactar capacidade de comunicação Trabalhar no mesmo ambiente onde vivem e dormem pode ser desafiador para alguns
  66. Porque remoto Para funcionários: Horários de reuniões podem ser ruins

    por causa de timezone
  67. Porque remoto Para funcionários: Horários de reuniões podem ser ruins

    por causa de timezone Impostos podem ser ruins dependendo do país
  68. Porque remoto Para funcionários: Horários de reuniões podem ser ruins

    por causa de timezone Impostos podem ser ruins dependendo do país Trabalhar sempre em alta performance por muito tempo pode levar a um Burnout ⚠
  69. Porque remoto Para empresas: Possível contratar pessoas incríveis em qualquer

    lugar do mundo
  70. Porque remoto Para empresas: Possível contratar pessoas incríveis em qualquer

    lugar do mundo Maior produtividade, menos distrações
  71. Porque remoto Para empresas: Possível contratar pessoas incríveis em qualquer

    lugar do mundo Maior produtividade, menos distrações Economia com custos de escritório
  72. Porque remoto Para empresas: Possível contratar pessoas incríveis em qualquer

    lugar do mundo Maior produtividade, menos distrações Economia com custos de escritório Atração natural de talentos e iniciantes
  73. Porque remoto Para empresas: Possível contratar pessoas incríveis em qualquer

    lugar do mundo Maior produtividade, menos distrações Economia com custos de escritório Atração natural de talentos e iniciantes Mais fácil para crescer empresa
  74. Porque remoto Para empresas: Possível contratar pessoas incríveis em qualquer

    lugar do mundo Maior produtividade, menos distrações Economia com custos de escritório Atração natural de talentos e iniciantes Mais fácil para crescer empresa Menos reuniões mais foco em resultado.
  75. Porque remoto Para empresas: Empresa continua funcionando mesmo em caso

    de desastres naturais ou eventos políticos
  76. Porque remoto Para empresas: Empresa continua funcionando mesmo em caso

    de desastres naturais ou eventos políticas Diferentes países, diferentes moedas, diferentes legislações podem ser desafiadores
  77. Porque remoto Para empresas: Empresa continua funcionando mesmo em caso

    de desastres naturais ou eventos políticas Diferentes países, diferentes moedas, diferentes legislações podem ser desafiadores 100% remoto preocupa investidores, parceiros e clientes
  78. Porque remoto Quer mais detalhes sobre porque remoto? https://www.owllabs.com/state-of-remote-work

  79. Mas como quebrar silos com cada um em sua casa?

  80. Comunicação

  81. Comunicação Voltamos ao item 2 do manifesto: Comunicação Assíncrona

  82. Comunicação Voltamos ao item 2 do manifesto: Comunicação Assíncrona •

    Não copiar o escritório, usar issues, ferramentas de chat e video call
  83. Comunicação Voltamos ao item 2 do manifesto: Comunicação Assíncrona •

    Não copiar o escritório, usar issues, ferramentas de chat e video call • Escolher o canal correto de acordo com a necessidade da tarefa (pode esperar alguns minutos? algumas horas? alguns dias?)
  84. Comunicação Voltamos ao item 2 do manifesto: Comunicação Assíncrona •

    Não copiar o escritório, usar issues, ferramentas de chat e video call • Escolher o canal correto de acordo com a necessidade da tarefa (pode esperar alguns minutos? algumas horas? alguns dias?) • Não interrompa o trabalho dos outros se não há necessidade
  85. Comunicação • Mesmo trabalhando em um mesmo escritório anote e

    documente tudo para pessoas remotas e para futuros contribuidores
  86. Teorema CAPS

  87. Teorema CAPS Consistent reads , Availability , Partition Tolerance

  88. CAPS Paralelo entre sistema de armazenamento e pessoas trabalhando em

    grupo para produzir resultados
  89. CAPS Paralelo entre sistema de armazenamento e pessoas trabalhando em

    grupo para produzir resultados • Partições não podem ocorrer, não podemos abrir mão
  90. CAPS Paralelo entre sistema de armazenamento e pessoas trabalhando em

    grupo para produzir resultados • Partições não podem ocorrer, não podemos abrir mão • Podemos projetar para que o sistema seja consistente ou disponíveis
  91. CAPS Paralelo entre sistema de armazenamento e pessoas trabalhando em

    grupo para produzir resultados • Partições não podem ocorrer, não podemos abrir mão • Podemos projetar para que o sistema seja consistente ou disponíveis • Os escritórios clássicos são consistentes e tolerantes a partições
  92. CAPS Paralelo entre sistema de armazenamento e pessoas trabalhando em

    grupo para produzir resultados • Partições não podem ocorrer, não podemos abrir mão • Podemos projetar para que o sistema seja consistente ou disponíveis • Os escritórios clássicos são consistentes e tolerantes a partições • 100% remoto temos disponibilidade e tolerância a falha
  93. Reuniões

  94. Reuniões • Eventos síncronos

  95. Reuniões • Eventos síncronos • Presença obrigatória para agregar valor

    (opinar)
  96. Reuniões • Eventos síncronos • Presença obrigatória para agregar valor

    (opinar) • Volátil, quem não participa precisa de gravação e ou de uma agenda para se atualizar
  97. Reuniões • Eventos síncronos • Presença obrigatória para agregar valor

    (opinar) • Volátil, quem não participa precisa de gravação e ou de uma agenda para se atualizar • Não são remote friendly
  98. Reuniões • Eventos síncronos • Presença obrigatória para agregar valor

    (opinar) • Volátil, quem não participa precisa de gravação e ou de uma agenda para se atualizar • Não são remote friendly • Muito caras. Quantidade de pessoas x salário de cada uma delas
  99. Reuniões • Alto vazão de informações

  100. Reuniões • Alto vazão de informações • Mini reuniões ad-hoc

    (tapinha no ombro) causam muitas interrupções
  101. Google Docs

  102. Google Docs • Persistente

  103. Google Docs • Persistente • Pode ser síncrono ou assíncrono*

  104. Google Docs • Persistente • Pode ser síncrono ou assíncrono*

    • Pode ser privado ou público* *dependendo do uso
  105. Google Docs • Persistente • Pode ser síncrono ou assíncrono*

    • Pode ser privado ou público* *dependendo do uso • Ótimo para tornar reuniões persistentes
  106. Google Docs • Persistente • Pode ser síncrono ou assíncrono*

    • Pode ser privado ou público* *dependendo do uso • Ótimo para tornar reuniões persistentes • Bom para fazer review (usando o suggestions)
  107. Google Docs • Persistente • Pode ser síncrono ou assíncrono*

    • Pode ser privado ou público* *dependendo do uso • Ótimo para tornar reuniões persistentes • Bom para fazer review (usando o suggestions) • Função comments não escala, UX ruim para mais de 2, 3 comentários
  108. Google Docs • Persistente • Pode ser síncrono ou assíncrono*

    • Pode ser privado ou público* *dependendo do uso • Ótimo para tornar reuniões persistentes • Bom para fazer review (usando o suggestions) • Função comments não escala, UX ruim para mais de 2, 3 comentários • Fragmenta informação, difícil buscar informação
  109. Slack

  110. Slack • Persistente mas caótico (mensagens soltas e mensagens em

    threads, além dos canais)
  111. Slack • Persistente mas caótico (mensagens soltas e mensagens em

    threads, além dos canais) • Assíncrono, mas dependendo da disponibilidade dos interlocutores pode ser síncrono
  112. Slack • Persistente mas caótico (mensagens soltas e mensagens em

    threads, além dos canais) • Assíncrono, mas dependendo da disponibilidade dos interlocutores pode ser síncrono • Bom para conversas rápidas e compartilhamento de trechos de códigos e exemplos
  113. Slack • Persistente mas caótico (mensagens soltas e mensagens em

    threads, além dos canais) • Assíncrono, mas dependendo da disponibilidade dos interlocutores pode ser síncrono • Bom para conversas rápidas e compartilhamento de trechos de códigos e exemplos • Sugestão: muitas idas e vindas de mensagens rápidas, mude para uma call (pair programming)
  114. E-mail

  115. E-mail • Assíncrono

  116. E-mail • Assíncrono • Persistente

  117. E-mail • Assíncrono • Persistente • Ordenado

  118. E-mail • Assíncrono • Persistente • Ordenado • Caótico se

    a thread se extende
  119. E-mail • Assíncrono • Persistente • Ordenado • Caótico se

    a thread se extende • Privado, quem se junta a thread não tem o histórico, precisa ser repassada
  120. Issue Tracker

  121. Issue Tracker • Assíncrono, remete a fóruns

  122. Issue Tracker • Assíncrono, remete a fóruns • Ordenado

  123. Issue Tracker • Assíncrono, remete a fóruns • Ordenado •

    Persistente
  124. Issue Tracker • Assíncrono, remete a fóruns • Ordenado •

    Persistente • Público
  125. Issue Tracker • Assíncrono, remete a fóruns • Ordenado •

    Persistente • Público • Rastreio fácil (tags, label, etc)
  126. Issue Tracker • Assíncrono, remete a fóruns • Ordenado •

    Persistente • Público • Rastreio fácil (tags, label, etc) • Geralmente 2 ritmos: rápido (vários por dia) para resolução de problemas; lento (planejamento de negócio, arquitetura)
  127. TL;DR

  128. TL;DR • Use a ferramenta certa para o momento certo

  129. TL;DR • Use a ferramenta certa para o momento certo

    • Prefira comunicação pública, organizada e assíncrona e em algum lugar persistente.
  130. Obrigado https://speakerdeck.com/wsilva/