SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
C O DE DEBTS KILLERS
PROMOVENDO CONTINUOUS CODE QUALITY
COM GAMIFICAÇÃO
Amanda Mattos
DevOpsDays – São Paulo – 2018
Nossa maior prioridade é satisfazer o cliente
através da entrega contínua e adiantada
de software com valor agregado.
12 Principles of Agile Software Development
http://agilemanifesto.org/iso/ptbr/principles.html
1
“Continuous Delivery is the ability to
get changes of all types – including
new features, configuration changes,
bug fixes and experiments – into
production, or into the hands of
users, safely and quickly in a
sustainable way.”
“
@jezhumble
A prática Entrega Contínua NÃO consiste
apenas em automatizar deploys até produção.
WHAT?!?!
“O Jenkins está disparando builds toda hora! Quero que ele execute apenas quando eu quiser.”
“Preciso colocar em produção até sexta e não temos como resolver os testes até lá.”
“Depois faremos uma Sprint apenas para correções e refactoring.”
“Estamos iniciando um projeto novo. Queremos o deploy automatizado.”
Gerência de Configuração
Integração Contínua
Testes Automatizados
TSC TSC TSC …
JÁ QUEBROU A PRIMEIRA REGRA!!!
“If it hurts, do it more frequently,
and bring the pain forward.”
@jezhumble
Antecipar falhas
Localizá-las com mais facilidade
Resolvê-las com rapidez
Revista Proteste – Julho/2017
Por que Integração Contínua
e Teste Contínuo?
Devops – oi digital
PRINCÍPIOS KANBAN
VISUALIZE
LIMITE O WIP
MEÇA E GERENCIE
O FLUXO
POLÍTICAS
EXPLÍCITAS
CICLOS DE
FEEDBACK
MELHORE COLABORATIVAMENTE
EVOLUA EXPERIMENTALMENTE
OI MOD & MICROSSERVIÇOS
ACOMPANHAMENTO / EVOLUÇÃO DOS TIMES – CONTINUOUS EVERYTHING BOARD
O que consideramos
Code Quality?
• Menos bugs
• Menos vulnerabilidades
• Manutenção simples
• Suficientemente
testado
• Significativo para o
negócio
1º PASSO - MEDIR
Já tínhamos débitos
técnicos e eles só
aumentavam!!!
CULPA
M E D O / R E S I S T Ê N C I A
EMPATIA
D E S E N V O LV E R P E S S O A S
E C O L A B O R A Ç Ã O
“In every job that must be done
There is an element of fun
You find the fun and snap!
The job’s a game.”
“
@marypoppins - 1964
“Gamificar é a arte de juntar todos os elementos
divertidos e emocionantes dos jogos e utilizá-los em
outros contextos nos quais você tem coisas a fazer mas
não necessariamente quer fazê-las.”
Yu-Kai Chou
GAMIFICAR ???
• Engajamento
• Foco
• Criatividade
• Colaboração
MELHORA
https://www.ted.com/talks/jane_mcgonigal_gaming_can_make_a_better_world?language=pt-br
Aplicando a problemas da vida real...
PRODUTIVIDADE PRAZEROSA
DOPAMINA
C O DE DEBTS KILLERS
• RESOLVER OS DÉBITOS TÉCNICOS
• ENGAJAR PARA BOAS PRÁTICAS DE PROGRAMAÇÃO
• PROMOVER CONTINUOUS INTEGRATION, CODE QUALITY, TESTING
• MELHORAR A COLABORAÇÃO
• ESTIMULAR TROCA DE CONHECIMENTO
• REFORÇAR OBJETIVO COMUM
OBJETIVOS
C O DE DEBTS KILLERS
• LÚDICO
• OBJETIVO MAIOR
• REGRAS CONSTRUÍDAS DE MANEIRA COLABORATIVA E ACESSÍVEL A TODOS
• DESAFIOS
• ATINGIMENTOS E RECOMPENSA
• RESULTADOS FREQUENTES E DISPONÍVEIS A TODOS
• PARTICIPANTES ELEGÍVEIS
DESIGN DO GAME
SET OUT NOV DEZ
5 EQUIPES
73 PESSOAS
31.224 LINHAS DE CÓDIGO
23 REPOSITÓRIOS
C O DE DEBTS KILLERS
PARTICIPANTES
C O DE DEBTS KILLERS
EM 12/09/17....
E EM 08/12/17, APÓS UMA COMPETIÇÃO ACIRRADA ....
488
85
3741
C O DE DEBTS KILLERS
4.314
PROBLEMAS RESOLVIDOS
*Apenas nos repositórios que participaram do Game
Bugs Vulnerabilities Code Smells
Técnico Virtual 323 4 128
Móvel Digital 103 48 1649
Cadastro Digital 14 10 559
Nova Minha Oi 42 22 1742
Microsserviços 17 9 361
Bugs Vulnerabilities Code Smells
Técnico Virtual 0 0 3
Móvel Digital 0 0 0
Cadastro Digital 0 0 23
Nova Minha Oi 0 0 500
Microsserviços 11 8 172
% Cobertura Antes Depois
0 <= c <= 40 14 6
40 < c <= 80 5 5
c > 80 4 12
Sim! Tivemos DOPAMINA!!!
C O DE DEBTS KILLERS
• Nível de maturidade das pessoas em relação às práticas
• Dificuldade com algumas formas de contrato (terceirização)
• Cultura da empresa - Dificuldade para reconhecimento e premiação
• Estrutura dos times para construção de testes automatizados (TDD)
• Maior comprometimento no final do game
• Não existe Entrega Contínua sem IC e sem Testes
• Comprometimento de todos com a qualidade – Pressão
Algumas reflexões....
ÁGIL x RITMO SUSTENTÁVEL
https://twitter.com/ronjeffries/status/992778668316528641?s=12
Ferramenta poderosa para:
• Introduzir novas práticas de forma mais divertida
• Lidar com falhas de forma positiva (contra a cultura do medo/culpa)
• Resultados rápidos para problemas específicos
• Identificar (de forma discreta) problemas no fluxo de trabalho
• Promover colaboração e aumentar a confiança nos times
Não é bala de prata!
Concluindo....
C - Culture
A - Automation
L - Lean
M - Measurement
S - Sharing
Obrigado!

Mais conteúdo relacionado

Semelhante a CDK promove qualidade de código com gamificação

Desenvolvimento agil com XP
Desenvolvimento agil com XPDesenvolvimento agil com XP
Desenvolvimento agil com XPDiego Pacheco
 
Desenvolvimento Ágil com XP
Desenvolvimento Ágil com XPDesenvolvimento Ágil com XP
Desenvolvimento Ágil com XPilegra
 
Palestra - Oportunidades para empreender na área de Jogos (Startup Weekend Ga...
Palestra - Oportunidades para empreender na área de Jogos (Startup Weekend Ga...Palestra - Oportunidades para empreender na área de Jogos (Startup Weekend Ga...
Palestra - Oportunidades para empreender na área de Jogos (Startup Weekend Ga...Jennifer Payne
 
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!Robson Bittencourt
 
Resumo do TheDeveloperConference 2014 - POA
Resumo do TheDeveloperConference 2014 - POAResumo do TheDeveloperConference 2014 - POA
Resumo do TheDeveloperConference 2014 - POARafael Pacheco
 
Construindo uma cultura de agilidade - O processo de transformação de uma eng...
Construindo uma cultura de agilidade - O processo de transformação de uma eng...Construindo uma cultura de agilidade - O processo de transformação de uma eng...
Construindo uma cultura de agilidade - O processo de transformação de uma eng...André Suman Pereira
 
Construindo uma cultura de agilidade - O processo de transformação de uma eng...
Construindo uma cultura de agilidade - O processo de transformação de uma eng...Construindo uma cultura de agilidade - O processo de transformação de uma eng...
Construindo uma cultura de agilidade - O processo de transformação de uma eng...DevCamp Campinas
 
Construindo uma cultura de agilidade - O processo de transformação de uma eng...
Construindo uma cultura de agilidade - O processo de transformação de uma eng...Construindo uma cultura de agilidade - O processo de transformação de uma eng...
Construindo uma cultura de agilidade - O processo de transformação de uma eng...André Suman Pereira
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoCarlos Santos
 
Desenvolvimento Ágil e a mudança de mindset envolvida
Desenvolvimento Ágil e a mudança de mindset envolvidaDesenvolvimento Ágil e a mudança de mindset envolvida
Desenvolvimento Ágil e a mudança de mindset envolvidaCarlos Felippe Cardoso
 
O mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria terO mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria terÁtilla Silva Barros
 
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de TestesGUTS-RS
 
Palestra Campus Party 2014 - O que você precisa saber de computação para ser ...
Palestra Campus Party 2014 - O que você precisa saber de computação para ser ...Palestra Campus Party 2014 - O que você precisa saber de computação para ser ...
Palestra Campus Party 2014 - O que você precisa saber de computação para ser ...Professor Isidro
 
Mitos e verdades sobre desenvolvimento de jogos
Mitos e verdades sobre desenvolvimento de jogosMitos e verdades sobre desenvolvimento de jogos
Mitos e verdades sobre desenvolvimento de jogosMauricio Alegretti
 
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Softwareguest2f8cba
 
Sistemas para o Mundo Real - TDC 2012
Sistemas para o Mundo Real - TDC 2012Sistemas para o Mundo Real - TDC 2012
Sistemas para o Mundo Real - TDC 2012Leandro Silva
 
Seguindo seu sonho - Fundação da Naked Monkey
Seguindo seu sonho - Fundação da Naked MonkeySeguindo seu sonho - Fundação da Naked Monkey
Seguindo seu sonho - Fundação da Naked MonkeyPedro Kayatt
 
Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.
Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.
Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.Caio Vinicius Marques Teixeira
 

Semelhante a CDK promove qualidade de código com gamificação (20)

Desenvolvimento agil com XP
Desenvolvimento agil com XPDesenvolvimento agil com XP
Desenvolvimento agil com XP
 
Desenvolvimento Ágil com XP
Desenvolvimento Ágil com XPDesenvolvimento Ágil com XP
Desenvolvimento Ágil com XP
 
Palestra - Oportunidades para empreender na área de Jogos (Startup Weekend Ga...
Palestra - Oportunidades para empreender na área de Jogos (Startup Weekend Ga...Palestra - Oportunidades para empreender na área de Jogos (Startup Weekend Ga...
Palestra - Oportunidades para empreender na área de Jogos (Startup Weekend Ga...
 
Developer 0.0 - Tiago Pascoal
Developer 0.0 - Tiago PascoalDeveloper 0.0 - Tiago Pascoal
Developer 0.0 - Tiago Pascoal
 
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
Desenvolvimento de builds automizados com Jenkins - Em Busca do build Perfeito!
 
Resumo do TheDeveloperConference 2014 - POA
Resumo do TheDeveloperConference 2014 - POAResumo do TheDeveloperConference 2014 - POA
Resumo do TheDeveloperConference 2014 - POA
 
Construindo uma cultura de agilidade - O processo de transformação de uma eng...
Construindo uma cultura de agilidade - O processo de transformação de uma eng...Construindo uma cultura de agilidade - O processo de transformação de uma eng...
Construindo uma cultura de agilidade - O processo de transformação de uma eng...
 
Construindo uma cultura de agilidade - O processo de transformação de uma eng...
Construindo uma cultura de agilidade - O processo de transformação de uma eng...Construindo uma cultura de agilidade - O processo de transformação de uma eng...
Construindo uma cultura de agilidade - O processo de transformação de uma eng...
 
Construindo uma cultura de agilidade - O processo de transformação de uma eng...
Construindo uma cultura de agilidade - O processo de transformação de uma eng...Construindo uma cultura de agilidade - O processo de transformação de uma eng...
Construindo uma cultura de agilidade - O processo de transformação de uma eng...
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
 
Desenvolvimento Ágil e a mudança de mindset envolvida
Desenvolvimento Ágil e a mudança de mindset envolvidaDesenvolvimento Ágil e a mudança de mindset envolvida
Desenvolvimento Ágil e a mudança de mindset envolvida
 
O mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria terO mínimo de Integração Contínua que todo projeto deveria ter
O mínimo de Integração Contínua que todo projeto deveria ter
 
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes
[GUTS-RS]​ Evento Maio 2018 - Carreira na área de Testes
 
Palestra Campus Party 2014 - O que você precisa saber de computação para ser ...
Palestra Campus Party 2014 - O que você precisa saber de computação para ser ...Palestra Campus Party 2014 - O que você precisa saber de computação para ser ...
Palestra Campus Party 2014 - O que você precisa saber de computação para ser ...
 
Mitos e verdades sobre desenvolvimento de jogos
Mitos e verdades sobre desenvolvimento de jogosMitos e verdades sobre desenvolvimento de jogos
Mitos e verdades sobre desenvolvimento de jogos
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Software
 
Sistemas para o Mundo Real - TDC 2012
Sistemas para o Mundo Real - TDC 2012Sistemas para o Mundo Real - TDC 2012
Sistemas para o Mundo Real - TDC 2012
 
Seguindo seu sonho - Fundação da Naked Monkey
Seguindo seu sonho - Fundação da Naked MonkeySeguindo seu sonho - Fundação da Naked Monkey
Seguindo seu sonho - Fundação da Naked Monkey
 
Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.
Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.
Como criar jogos? Dicas, metodologias e etapas de desenvolvimento.
 

CDK promove qualidade de código com gamificação

  • 1. C O DE DEBTS KILLERS PROMOVENDO CONTINUOUS CODE QUALITY COM GAMIFICAÇÃO Amanda Mattos DevOpsDays – São Paulo – 2018
  • 2. Nossa maior prioridade é satisfazer o cliente através da entrega contínua e adiantada de software com valor agregado. 12 Principles of Agile Software Development http://agilemanifesto.org/iso/ptbr/principles.html 1
  • 3. “Continuous Delivery is the ability to get changes of all types – including new features, configuration changes, bug fixes and experiments – into production, or into the hands of users, safely and quickly in a sustainable way.” “ @jezhumble
  • 4. A prática Entrega Contínua NÃO consiste apenas em automatizar deploys até produção. WHAT?!?! “O Jenkins está disparando builds toda hora! Quero que ele execute apenas quando eu quiser.” “Preciso colocar em produção até sexta e não temos como resolver os testes até lá.” “Depois faremos uma Sprint apenas para correções e refactoring.” “Estamos iniciando um projeto novo. Queremos o deploy automatizado.” Gerência de Configuração Integração Contínua Testes Automatizados
  • 5.
  • 6. TSC TSC TSC … JÁ QUEBROU A PRIMEIRA REGRA!!!
  • 7. “If it hurts, do it more frequently, and bring the pain forward.” @jezhumble Antecipar falhas Localizá-las com mais facilidade Resolvê-las com rapidez Revista Proteste – Julho/2017 Por que Integração Contínua e Teste Contínuo?
  • 8. Devops – oi digital PRINCÍPIOS KANBAN VISUALIZE LIMITE O WIP MEÇA E GERENCIE O FLUXO POLÍTICAS EXPLÍCITAS CICLOS DE FEEDBACK MELHORE COLABORATIVAMENTE EVOLUA EXPERIMENTALMENTE OI MOD & MICROSSERVIÇOS ACOMPANHAMENTO / EVOLUÇÃO DOS TIMES – CONTINUOUS EVERYTHING BOARD
  • 9. O que consideramos Code Quality? • Menos bugs • Menos vulnerabilidades • Manutenção simples • Suficientemente testado • Significativo para o negócio
  • 10. 1º PASSO - MEDIR Já tínhamos débitos técnicos e eles só aumentavam!!!
  • 11. CULPA M E D O / R E S I S T Ê N C I A
  • 12. EMPATIA D E S E N V O LV E R P E S S O A S E C O L A B O R A Ç Ã O
  • 13. “In every job that must be done There is an element of fun You find the fun and snap! The job’s a game.” “ @marypoppins - 1964
  • 14. “Gamificar é a arte de juntar todos os elementos divertidos e emocionantes dos jogos e utilizá-los em outros contextos nos quais você tem coisas a fazer mas não necessariamente quer fazê-las.” Yu-Kai Chou GAMIFICAR ??? • Engajamento • Foco • Criatividade • Colaboração MELHORA
  • 16. C O DE DEBTS KILLERS • RESOLVER OS DÉBITOS TÉCNICOS • ENGAJAR PARA BOAS PRÁTICAS DE PROGRAMAÇÃO • PROMOVER CONTINUOUS INTEGRATION, CODE QUALITY, TESTING • MELHORAR A COLABORAÇÃO • ESTIMULAR TROCA DE CONHECIMENTO • REFORÇAR OBJETIVO COMUM OBJETIVOS
  • 17. C O DE DEBTS KILLERS • LÚDICO • OBJETIVO MAIOR • REGRAS CONSTRUÍDAS DE MANEIRA COLABORATIVA E ACESSÍVEL A TODOS • DESAFIOS • ATINGIMENTOS E RECOMPENSA • RESULTADOS FREQUENTES E DISPONÍVEIS A TODOS • PARTICIPANTES ELEGÍVEIS DESIGN DO GAME SET OUT NOV DEZ
  • 18. 5 EQUIPES 73 PESSOAS 31.224 LINHAS DE CÓDIGO 23 REPOSITÓRIOS C O DE DEBTS KILLERS PARTICIPANTES
  • 19. C O DE DEBTS KILLERS
  • 20. EM 12/09/17.... E EM 08/12/17, APÓS UMA COMPETIÇÃO ACIRRADA .... 488 85 3741 C O DE DEBTS KILLERS 4.314 PROBLEMAS RESOLVIDOS *Apenas nos repositórios que participaram do Game Bugs Vulnerabilities Code Smells Técnico Virtual 323 4 128 Móvel Digital 103 48 1649 Cadastro Digital 14 10 559 Nova Minha Oi 42 22 1742 Microsserviços 17 9 361 Bugs Vulnerabilities Code Smells Técnico Virtual 0 0 3 Móvel Digital 0 0 0 Cadastro Digital 0 0 23 Nova Minha Oi 0 0 500 Microsserviços 11 8 172 % Cobertura Antes Depois 0 <= c <= 40 14 6 40 < c <= 80 5 5 c > 80 4 12
  • 22. C O DE DEBTS KILLERS
  • 23. • Nível de maturidade das pessoas em relação às práticas • Dificuldade com algumas formas de contrato (terceirização) • Cultura da empresa - Dificuldade para reconhecimento e premiação • Estrutura dos times para construção de testes automatizados (TDD) • Maior comprometimento no final do game • Não existe Entrega Contínua sem IC e sem Testes • Comprometimento de todos com a qualidade – Pressão Algumas reflexões.... ÁGIL x RITMO SUSTENTÁVEL
  • 25. Ferramenta poderosa para: • Introduzir novas práticas de forma mais divertida • Lidar com falhas de forma positiva (contra a cultura do medo/culpa) • Resultados rápidos para problemas específicos • Identificar (de forma discreta) problemas no fluxo de trabalho • Promover colaboração e aumentar a confiança nos times Não é bala de prata! Concluindo....
  • 26. C - Culture A - Automation L - Lean M - Measurement S - Sharing Obrigado!