1. Scrum X DevOps - A
eficácia encontra a
eficiência
http://www.chaotic-circuits.com/6-lorenz-butterfly/
Edson Lima
Anderson Santos
2. > Sou Anderson Santos
Profissional de software e a +30
anos na busca pelo Santo Graal do
desenvolvimento de software.
Contate-me anderson@sysmap.com.br
Linkedin adsantos
Twitter asantos_2000
Github: asantos2000
> Ola!
> Sou Edson Lima
Agile Coach | Instrutor | Facilitador
Apaixonado por Agilidade
Contate-me edson.lima@meta.com.br
Edson.lima1969@gmail.com
Linkedin edsonAlima
WhatApp: (11) 9 9935-5424
> Ola!
3. > Sou Anderson Santos
Profissional de software e a +30
anos na busca pelo Santo Graal do
desenvolvimento de software.
Contate-me anderson@sysmap.com.br
Linkedin adsantos
Twitter asantos_2000
Github: asantos2000
> Ola!
8. 8
Complexo Complicado
Caos Óbvio
Para resolver os problemas atuais precisamos
experimentar e avaliar os resultados para
ajustar o curso.
Precisamos tratar complexidade com
complexidade
Complexidade
Ordenado
Desordenado
9. 9
Complexo Complicado
Caos Óbvio
Para resolver os problemas atuais precisamos
experimentar e avaliar os resultados para
ajustar o curso.
Precisamos tratar complexidade com
complexidade
Complexidade e Scrum
Ordenado
Desordenado
10. 10
Complexo Complicado
Caos Óbvio
Para resolver os problemas atuais precisamos
experimentar e avaliar os resultados para
ajustar o curso.
Precisamos tratar complexidade com
complexidade
Eficácia e Eficiência
Ordenado
Desordenado
11. 11
Complexo Complicado
Caos Óbvio
Para resolver os problemas atuais precisamos
experimentar e avaliar os resultados para
ajustar o curso.
Precisamos tratar complexidade com
complexidade
Eficácia e Eficiência
Ordenado
Desordenado
13. DevOps
https://pt.wikipedia.org/wiki/DevOps
O termo DevOps deriva da junção das palavras
"desenvolvimento" (development) e "operações"
(operations), sendo uma prática de engenharia de
software que possui o intuito de unificaro
desenvolvimento de software (Dev) e a operação de
software (Ops).[1] A característica principal do movimento
DevOps é defender fortemente a automação e
monitoramento em todas as fases da construção do
software, da integração, teste, liberação para implantação
e gerenciamento de infraestrutura. DevOps pretende
fornecer, em ciclos de desenvolvimento menores,
frequência de implantação aumentada, liberações mais
seguras, em alinhamento próximo com os objetivos de
negócio.[2][3][4][5][6]
23. Silos?
• Nossa organização promove a colaboração?
• Colaboração é um dos valores da nossa companhia?
• Temos uma infraestrutura colaborativa?
• Temos algum sistema de recompensa para a
colaboração?
• Eu acredito na colaboração?
32. In chaos theory, the butterfly effect is
the sensitive dependence on initial
conditions in which a small change in
one state of a deterministic nonlinear
system can result in large differences in
a later state.[1]
33. Livros e links
Cognitive Edge
The Cynefin Framework (legendado)
Complex Adaptive Systems - Dave Snowden - DDD Europe 2018
MicroservicePremium
Continuous Delivery 101 - ThoughtWorks Products
Mastering Chaos - A Netflix Guide to Microservices
7 signs you're doing devops wrong
6 Steps to Know You've Hit a Home Run with Continuous Delivery
Notas do Editor
A eficiência seria o ato de “fazer certo as coisas”, enquanto que a eficácia consiste em “fazer as coisas certas”.
O Famework CYNEFIN é framework para tipificar os domínios
Ele tem a área o lado do desordenado e do ordenado. A complexidade tem a relação com a imprevisibilidade e não com a dificuldade
O Framework Scrum foi desenvolvido para tratar de problemas complexos. a todo momento alguém criar algo disrruptivo. E estes serviços / produtos disrruptivos impactam fortemente empresas e ecossistemas comerciais tradicionais.
Estes produtos são criados em um ambiente altamente complexo onde não é possível prever as consequências a partir das causas.
No lado ordenado temos o obvio que é o domínio que temos as melhores práticas. E o complicado que demanda análise mas conseguimos prever os resultados.
Já no lado desordenado temos o caos onde não se sabe as causas e os resultados. Quando é intencional entrar neste domínio ele gera oportunidades.
Para atuar no domínio complexo é necessário uma abordagem não linear. Cada nova experimentação pode levar para uma nova ressignificação do que esta sendo buscado. O Snowden deu um exemplo dos dinossouros. Eles não subiram nas arvores e pularam na esperança de adquirirem penas. Provavemente precisaram subir nas árvores e nas partes mais altas era mais frio e os que passaram a ter penas tiveram uma vantagem e ao cairem acabaram aprendendo a voar. Ouve uma adaptação não linear.
De forma parecida as Experimentações e o feedback destas experimentações precisam ser avaliadas para irmos ressignificando e acertando o curso. Para isso também é fundamental que todos tenham voz para que a criatividade possa emergir da diversidade. E a diversidade no caso tem relação com as interações produzidas entre os grupos. Então uma hierarquia rígida ou uma arquitetura completa prédefinida não são desejáveis neste momento.
Já no domínio do ordenado, é esperado uma desing e arquitetura fortes para trazer segurança e qualidade.
Práticas emergentes
Sonde, Mergulhe, responda
Inventamos práticas
Aja, Sinta. Aja
Melhores práticas
Sinta, Categorize, responda
Boas práticas
Sinta, Analise, responda
No cynefin o meio representa justamente a situação mais comum, quando não sabemos qual o tipo de desafio estamos enfrentando.
Por exemplo, andar de bicicleta é algo obvio. Tanto que uma vez que você aprende nunca mais esquece.
Por exemplo, uma operação de franquia de comida chinesa. Depois de estabelecido o procedimento poderia até ser classificado como óbvio a operação. Se imaginar a própria loja basta atender o telefone, digitar o pedido, calcular o preço, preparar o pedido e entregar.
Mas, voltando a bicicleta, e se fizessem um bicicleta que ao virar para a direita o gidão a bicicleta fosse para a esquerda?
Fizeram este experimento. A pessoa que fez isto levou meses para aprender a andar da nova forma.
Então aparentemente não éra algo óbivio. O cérebro tentava sentir, categorizar e na hora de agir não dava certo.
Foi necessário inventar uma nova prática que levou meses.
Para o caso da franquia, ocorreu que 2008 mais ou menos o faturamento tinha caído em torno de 30%. O fundador considerava que o problema era a conjuntura econômica da época.
Até um dia que ele pediu um cardápio para a filha para pedir delivery de comida (algo diferente da franquia dele).
Então a filha dele entregou o celular com o App iFood aberto. Não havia mais cardápio impresso. Ele não estava no iFood. Ele estava tentando recuperar os 30% da mesma forma que sempre fez nos últimos anos. Dentro do complicado e complexo. Porem ele deu sorte. Ao colocar no iFood suas vendas almentarm em 30% em um mês.
Quando você esta operando no caos achando que esta no obvio, você esta tentando seguir uma melhor prática em uma situação que deveria estar tentado sobreviver. Deveria estar inventando uma nova prática.
Neste momento você cai em um abismo. As empresas quando não tem estrutura preparada ou não dão sorte podem não ter tempo de reagir.
Eficiência, Econômia, Previsibilidade
O modelo hierárquico inibe a criatividade na medida que para a gestão efetiva de um sistema é necessário que que quem faz a gestão seja tão complexo quanto o sistema que é gerenciado. Como é difícil crer que uma pessoa possa ter tanta complexidade quanto um time de trabalhadores do conhecimento e suas interações, então é necessário distribuir a gestão.
Não é possível aplicar soluções simples para este cenário e por isto temos que tratar problemas complexidade com abordagens complexas que vem de equipe criativas em um modelo de comunicação em rede.
Eficácia e Eficiência.
O esforço que precisa ser aplicado no caótico é levar o problema para o complexo
E o esforço aplicado no complexo é levar o problema para o complicado.
O scrum encontra-se na zona entre o complexo e o complicado ajudando nisto. Com uma iteração linear baseado em requisitos ambíguos que irão ser explorados e a ambiguidade será resolvida em um conjunto pequeno limitando o conjunto de experimentos lineares.
E scrum é desenhado para favorecer o tratamento de problemas complexos na medida que é desenhado para ser usado por times auto-organizados (que são sistemas complexos adaptativos).
O seu desenho de time-box, cerimônias, regras e artefatos, além de favorecer o trabalho colaborativo e auto-gestão facilita a tomada de decisões dos participantes economizando decisões como quem é responsável pelo que, quando vou fazer reunião, quando, qual o próximo item tem que ser iniciado.
Já na parte do ordenado, não há problema algum em ter estrutura rígida,
Temos uma capacidade limitada de decisões que podem ser tomadas com qualidade por dia. E questões como, que roupa vou vestir, que caminho vou seguir, onde vai ser a reunião, quanto tempo vai durar, etc consomem nossos recursos limitados. Assim com o scrum sobra mais recurso para decisões nobres voltadas a criatividade enquanto que decisões repetitivas consomem bem menos recursos, como escovar os dentes, fazer a daily, que item puxar, pois a idéia é ser automático. Permitindo assim que os times seja eficazes fazendo o certo no momento certo.
E esta padronização de coisas repetitivas fica responsável pela eficiência. Neste ponto entra também a automação. Toda a automação economisa recursos nobres dos cérebros dos trabalhadores do conhecimento.
E ai que entra o DevOps. Assim como a complexidade é a ponte entre o reducionismo e o holismo, o devops é a ponte entre a eficácia e a eficiência. Estas coisa não são excludentes, elas se completam.
Concordamos que CD tem as seguintes características
Pessoas são parte do sistema e suas relações são complexas
O scrum cruzou a fronteira do Complexo para o Complicado e o DevOps, no que diz respeito a entrega, pode cruzar a fronteira do Complicado para o Obvio
Isso implica em adicionar certa burocracia ao processo, mas se a interação entre o Dev e Ops se mantiver isso não representará perda de agilidade
Eficiência: virtude ou característica de (alguém ou algo) ser competente, produtivo, de conseguir o melhor rendimento com o mínimo de erros e/ou dispêndios.
Edson: Demonstra a relação entre a eficácia do Scrum e a Eficiência do DevOps em entregar o pronto e maximizar o ciclo de feedback
Esse é o principal motivo para centenas de ferramentas de medição
Colaboração é entender seus gargalos, manter uma carga compatível de trabalho e incentivar a colaboração
Feedback é chave para o entendimento do sistema, não os jogue fora, testes e monitoramento são exemplos frequentes de “coisas de baixa prioridade” em relação a itens do negócio
Não há bala de prata, consultorias podem fornecer aceleradores, mas o que deu certo em um lugar não dará certo em outro, suas práticas irão emergir.
A eficiência e a eficácia só serão alcançadas os dois estiverem estabelecidos na cultura da empresa
Quando a colaboração for real
A interação dos Dev e Ops se dá num ambiente complexo onde as práticas são emergentes.
Não há balas de prata porque nesse ambiente as boas e melhores práticas não existem.
Ferramentas são habilitadores necessários, bem como uma infraestrutura colaborativa (ex: AWS).