SlideShare uma empresa Scribd logo
Empoderando o time
de engenharia
Muita gestão
e pouca
engenharia,
por onde
anda o XP?
Olá! Sou Cristiano Schwening
Perfil no Linkedin
ProdWorkAgile - Podcast
cristiano.schwening@celk.net
//Cientista da Computação
//Chief Agility na Celk
//produto, desenvolvimento e design
//processo de gestão de produtos
//Práticas ágeis
//Cultura
//Mudança
//Lean
Cristiano - Celk
Perguntas
https://app.sli.do/eve
nt/dwhesbpa
Código: 80014
Como encontrei o XP na minha vida!
Ano 2000: programar em Delphi para uma empresaem Maceió
Ano 2001: clientesmenos exigentes,mas o "processo"naempresamuito caótico.Conheci o CMM,mas era muitacoisa
para o tamanho da empresa,procurandoalguma forma de implementar o CMM mais simples acabei encontrando o XP.
Ano 2002: iniciei carreira docente,lecionando qualidade de software com XP. Retornei paraSul, fiz pós em processos
estudando métodoságeis.
Ano 2004-2014: comeceia auxiliar empresasde software em melhoriade processos(nome antigo para transformação)
usando Scrum,XP e Kanban + MPS.BR.
Ano 2015: iniciei carreiraem gestão de produtos+ mentoriaem Ágil
Ano 2019: reformulamostodo o fluxo de valor da empresacom práticaságeis
https://app.sli.do/event/dwhesbpa Código: 80014
Kent Beck
Inventei tudo do XP em duas
semanas, com uma caneta na mão
e um quadro branco
O XP é um dos neandertais
da agilidade
• Um ano mais novo que o SCRUM e DSDM
• O foco é a agilidade nas práticas de desenvolver código,
embora tenha gestão simples. Não foi criado com o
gerenciamento de projetos em mente!
• Existe antes do Manifesto Ágil
• Conexão entre a manufatura enxuta e o desenvolvimento
ágil
• Incorpora as definições de Padrões de Projeto e Código
Limpo
• Recebeu o nome de programaçãoextrema da ideia de
que os elementos benéficos da engenharia de software
tradicional deveriam ser levados ao extremo
• Agile é sinônimo de Modo de Trabalho adaptável
Ron Jeffries
Extreme Programming é uma
disciplina do desenvolvimento
de software baseada em valores
de simplicidade, comunicação,
feedback, coragem e respeito.
Atenção!
Esta apresentação não
discute a impopularidade
do XP ou o uso somente do
XP nos modelos de negócio
Tampouco estou
minimizando a necessidade das
organizações pensarem em
gestão!
Minhas suposições
sobre o sumiço do XP
• Poucos gerentes compram as ideias e
valores do XP
• No relatório do Estado da Agilide
em 2020 (ref 2019), somente 1%
reportou o uso do XP
• Para muitos gerentes e consultores a
agilidade é apenas sob a perspectiva
de gerenciamento de projetos.
• Agile Coach e Consultores que nunca
foram desenvolvedores tem
dificuldade de entender o XP.
• O XP enfatiza mais os engenheiros do
que os gerentes de projeto.
http://stateofagile.versionone.com/
Portanto não é surpresa apenas 1% das
organizações usando o XP.
• Entretanto este foco em gestão coloca em baixo do tapete
algumas questões:
• Como você pode realmente ser ágil sem práticas técnicas?
• Você consegue cobrir todas as práticas técnicas necessárias somente
adotando devops?
• Colocar automação de testes na esteira do build é garantir teste do
desenvolvedor?
Portanto não é surpresa apenas 1% das
organizações usando o XP.
• Se levarmos em consideração o híbrido Scrum/XP, existem no
máximo 9% das organizações adotando o XP em 2019.
• Mas pode ser que neste percentual,reportam-sepráticas de gestão do XP
similaresno Scrum!!!
• Considero o XP muito bom e Kent Beck um fera no assunto, bem
como as pessoas ao seu redor, durante a formulação do XP,
como Martin Fowler e Ron Jeffries.
• Existem muitas boas filosofias por trás do XP.
• Mas o início foi época dos hype evangélicos do XP
É lamentável que 18
anos
depois do Manifesto
Ágil conhecer o XP não
seja tão popular
quanto o Scrum e o
Kanban.
Razões para o
negacionismo e ações
para usar o XP
Foco nas disciplinas técnicas da engenharia
de software
• Os coachs atuais geralmente não têm a capacidade de ser um
coach do XP para treinar os desenvolvedores nas práticas de
engenharia do XP.
• Se justificar a contratação de um Scrum Master é difícil,
justificar a contratação de um coach XP em tempo integral é
ainda mais difícil!
A escassez e custo de coachs XP experientes no Brasil pode ser o principal
entrave.
Nossos esforços estão, no momento,focados em disponibilizar a maior
quantidadede materiais de qualidadeque endereçamas habilidades do
XP e formar um coach XP que atenda todas as squads,através de
capacitaçãointerna.
A incompreendida Programação em pares
• Ter dois desenvolvedores no mesmo computador
trabalhando no mesmo código é ilógico para gerentes. Por
que desperdiçaria dinheiro para dois desenvolvedores fazer
uma coisa?
• Muitos desenvolvedores não estão prontos para compartilhar
seus códigos e ouvir sugestões de colegas.
Adotar quando requer a resoluçãode questões que envolva o raciocínio
mais complexo ou de problemas que não são habituais.
Compartilhamentode responsabilidadedurantea implementação.
Adotar,embora não seja o objetivo,para mentoria de novos
desenvolvedores.
Requer um razoável investimento inicial
• Para o XP, você precisa de desenvolvedores comprometidos
com a qualidade. Tenham coragem de liberar não apenas
código que funciona, mas também códigos limpos, testáveis e
com baixa taxa de defeitos.
•Na pressão atual do mercado por redução de tempo, muitas
vezes gestores não gostam de trabalhar com esse tipo de
desenvolvedor porque não são permissivos!
Tente encontrar desenvolvedores recém-formados que já conhecem as práticas do XP. Boa
sorte!!
Deixar mais objetivo e documentadoo processode construçãode
softwarepara minimizar a possibilidadede gerentes pressionaremos
desenvolvedorese com prejudicar a qualidade.
Na parte dos gestores,comunicar visualmenteos 7 desperdícios do Lean,
para conscientizarsobrea importânciade fazer certono começo.
Requalificação do analistas de testes
• Os Testadores no XP são a Assistência à Qualidade e não a
Garantia da Qualidade, eles são responsáveis por ajudar e
treinar os clientes e os desenvolvedores em qualidade.
• Os testadores no XP ajudam os clientes a escolher e escrever testes
automatizados no nível do sistema antes da implementação e
orientar os desenvolvedores nas técnicas de teste. - Kent Beck
Incluir os analistas de testes na etapa de planejamentodas entregas
(upstream)para auxiliar nos cenários,em BDD, que serão
codificadospelos desenvolvedores.Apoiar os desenvolvedoresduranteo
delivery, para validar as entregas de código(prontopara teste).
A mentalidadede Assistênciaà Qualidade é o desafio mais complexo,a
maioria dos testadores queremtrabalhar com a automação e não com
mentoria com programadores!
Testes Unitários e TDD
• Para vários gerentes, escrever testes de unidade significa mais
código e mais tempo para escrevê-lo. Mais código e mais
tempo significam mais custos.
• A maioria dos gerentes e desenvolvedores pensam que o
principal benefício derivado do TDD é o conjunto abrangente
de testes de unidade.
Implementar 100% de testes unitários em códigos dos novos recursos
e incluir validação na esteira de build.
Implementar 50% de testes unitários nos códigos legado.
O maior desafio será implementar a culturada codificaçãovoltada
para testes,não é somente testes unitários!
Capacitação custa mais caro
• Para gestão de projetos as empresas podem apenas mandar
seus gerentes de projeto para um treinamento de certificação
Scrum Master de 2 dias ou um treinamento em
Gerenciamento Ágil de Projetos.
• Com o XP, as empresas precisam capacitar toda a equipe de
desenvolvimento! Isso custa bem mais caro.
Maior problema,raros (e caros) cursoscomplexos (maior que 1 módulo de
outro curso)sobreXP online.A meta é que o Coach XP formado
internamentepossa inicialmenterealizar as capacitações práticas
necessárias para as squads.
Poucos treinamentos presenciais,mas o custo está dificultandoorçamento
com o RH, além das restrições da pandemia.
Design Simples e Emergente
• As pessoas querem ter certeza de que a arquitetura está
completa antes dos desenvolvedores começarem a codificar.
• E à medida que a base de códigos cresce, e você está sob
pressão para cumprir o prazo, como manter o design simples?
No fluxo de discovery uma plano da arquitetura(ArquiteturaMínimo
Viável) é tratado em alto nível e descreveo caminhoe a visão futura.
No delivery os cenários das histórias descrevemapenas aquilo que resolve
o problema e focam em entregar valor primeiro.
Evitar antecipaçãoe postegrar a complexidade! A organização
por domínios de negóciocolabora.
O conceitode design incrementalna maioria dos projetos é complexo!
Precisa de infraestrutura
• No XP, precisa-se de investimentos para testes automatizados
e infraestrutura de entrega contínua.
Aqui entra o Devops, entregamos uma versão toda a semana para os
clientes com melhorias e novas funcionalidade,por isso iniciamos
automatizandoo builddas aplicações.Antes a entregadependia do
comandodo líder da squad.
Para os produtos novos e microserviços estamos automatizandoa esteira
de entregadelivery. Commit somente o que pode gerar build!
Contratamos um empresaespecializadaem Devops,para adiantar etapas
na adoção das práticas de entregacontínua.
Realizar refatoração
• Os desenvolvedores devem refatorar ativamente o código,
mantê-lo atualizado a cada momento. A refatoração é uma
arte e requer diligência e disposição.
• Coragem para fazer refatorações sem medo de quebrar
regras importantes no sistema.
• Por que deveríamos refatorar e introduzir um novo bug.
Vamos deixar como está.
Incluir assuntos relacionados com códigolimpo reforçaa necessidadedo
desenvolvedor pensar mais na refatoraçãodesdeo início.
Em um código legado,muitas vezes a refatoraçãopode ser mais complexa.
Nestes casos,marcamos código que precisarefatoraçãoe planejamos ação
em uma release posterior,realizandoanálise de impacto antes!
Integração contínua e build em 10 minutos
• O que muita empresa está fazendo atualmente é apenas
construção contínua e não Integração Contínua.
Garantir a melhor coberturapossível de testes de integraçãona esteira de
build do códigoem desenvolvimentoe principalmentena branch de
testes.
Requer garantir os testes unitários.
Criar o senso de commit diário entre os desenvolvedores e o pensamento
de pequenas entregas (passos de bebê)
O teste de produçãopode ser o maior desafio.
Mudança de cultura
• Mudança de cultura da organização, requer quebrar silos e
reunir, pessoas que antes trabalhavam isoladamente, em
times.
• Precisa coragem para mudar a cultura das pessoas.
Tivemos algumas baixas de profissionais que não se adaptaram a
mudançaculturalde gestão!
Reorganizamos fluxos,etapas, práticas e ferramentas em toda a área de
desenvolvimento.Alteramos papeis e responsabilidades.
Colocandoagora o mindsetde mudança nas pessoas de engenharia!
Nosso processo atual
Outras práticas
aplicadas
• Método Kanban
• Scrum
• Less e SAFe
• Lean
• Dual Track
• TSP
• Experiências individuais
Portanto...
• Não se tornou um "padrão" na indústria
de software, mesmo após 15 anos da
sua formulação!
• É um ótimo conjunto de práticas
importantes para a correta construção
de um produto de software.
• Infelizmente o mundo não é
necessariamente atraído pelo que é
ideal.
• Ainda existe muito trabalho para que a
transformação ágil realmente incorpore
os "padrões" de codificação!
Referências
• Fundamentos do XP
•Patterns Generate Architectures, Kent Beck e Ralph Johnson, ECOOP 94
•Design Patterns: Elements of Reusable Object-Oriented Software,
Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides
•Patterns And Extreme Programming. Jeffries, Ron. Portland Pattern
Repository. 1999 - https://c2.com/ppr/
•Extreme Programming - 2ª Edição. Vinícius Manhães
Teles https://novatec.com.br/livros/extreme-programming-2ed/
•O novo XP. Michele Marchesi. www.academia.edu/2862372/The_new_XP
Referências
• Material para capacitar em XP
• The Art of Agile Development (www.jamesshore.com/Agile-
Book/)
• Lista de livros que abordam as práticas do
XP www.desenvolvimentoagil.com.br/xp/livros
• Programação em par https://github.com/BillSchofield/pair-
programming-advice
• Programação
Mútua www.agileconnection.com/sites/default/files/article/file/
2014/Mutual%20Programming.pdf
• TDD https://medium.com/creditas-tech/o-que-test-driven-
development-n%C3%A3o-%C3%A9-584af2d4c65a
Obrigado
pela
atenção!!
Perguntas do slido.
Equipes mais ágeis devem se
concentrar na programação
extrema e trazer mais práticas
técnicas de volta ao mundo ágil.

Mais conteúdo relacionado

Mais procurados

DESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWARE
DESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWAREDESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWARE
DESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWARE
Cloves da Rocha
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
João Carlos Ottobboni
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
Ricardo Bánffy
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e Scrum
Rafael Souza
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
Rodrigo Branas
 
Metodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoMetodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introdução
Achiles Camilo
 
Dívida técnica pagando parcelado ou no final do projeto - Thiago Luiz (Th...
Dívida técnica   pagando parcelado ou no final do projeto - Thiago Luiz (Th...Dívida técnica   pagando parcelado ou no final do projeto - Thiago Luiz (Th...
Dívida técnica pagando parcelado ou no final do projeto - Thiago Luiz (Th...
Agile Trends
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a Modelagem
Rodrigo Branas
 
A responsabilidade do “Done”: a colaboração como condição de uma entrega ágil...
A responsabilidade do “Done”: a colaboração como condição de uma entrega ágil...A responsabilidade do “Done”: a colaboração como condição de uma entrega ágil...
A responsabilidade do “Done”: a colaboração como condição de uma entrega ágil...
Agile Trends
 
Facetas do desenvolvedor agil
Facetas do desenvolvedor agilFacetas do desenvolvedor agil
Facetas do desenvolvedor agil
Paulo Igor Alves Godinho
 
Extreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilExtreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia Ágil
Jaffer Veronezi
 
Agile Management
Agile ManagementAgile Management
Agile Management
Fábio Aguiar
 
Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento
Paulo Ricardo Dalmagro Vinck
 
eXtreme Programming (xp)
eXtreme Programming (xp)eXtreme Programming (xp)
eXtreme Programming (xp)
Renato Pina
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
Rennan Martini
 
Conhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingConhecendo o eXtreme Programming
Conhecendo o eXtreme Programming
Daniel Wildt
 
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Letticia Nicoli
 
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MGModelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Neubio Ferreira
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
Willy Salazar
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
Henrique Schmidt
 

Mais procurados (20)

DESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWARE
DESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWAREDESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWARE
DESENVOLVIMENTO E GERENCIAMENTO ÁGIL DE PROJETOS DE SOFTWARE
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e Scrum
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Metodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoMetodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introdução
 
Dívida técnica pagando parcelado ou no final do projeto - Thiago Luiz (Th...
Dívida técnica   pagando parcelado ou no final do projeto - Thiago Luiz (Th...Dívida técnica   pagando parcelado ou no final do projeto - Thiago Luiz (Th...
Dívida técnica pagando parcelado ou no final do projeto - Thiago Luiz (Th...
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a Modelagem
 
A responsabilidade do “Done”: a colaboração como condição de uma entrega ágil...
A responsabilidade do “Done”: a colaboração como condição de uma entrega ágil...A responsabilidade do “Done”: a colaboração como condição de uma entrega ágil...
A responsabilidade do “Done”: a colaboração como condição de uma entrega ágil...
 
Facetas do desenvolvedor agil
Facetas do desenvolvedor agilFacetas do desenvolvedor agil
Facetas do desenvolvedor agil
 
Extreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia ÁgilExtreme Programming (XP) Metodologia Ágil
Extreme Programming (XP) Metodologia Ágil
 
Agile Management
Agile ManagementAgile Management
Agile Management
 
Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento
 
eXtreme Programming (xp)
eXtreme Programming (xp)eXtreme Programming (xp)
eXtreme Programming (xp)
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 
Conhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingConhecendo o eXtreme Programming
Conhecendo o eXtreme Programming
 
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
 
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MGModelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
 

Semelhante a Muita gestão e pouca engenharia, por onde anda o XP?

O que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBMO que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBM
Felipe Freire
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
Adriano Bertucci
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
André Dias
 
Apresentação Executiva
Apresentação ExecutivaApresentação Executiva
Apresentação Executiva
Powerlogic Consultoria e Sistemas
 
Transformando a experiência da TI com ciclos curtos de alto valor
Transformando a experiência da TI com ciclos curtos de alto valorTransformando a experiência da TI com ciclos curtos de alto valor
Transformando a experiência da TI com ciclos curtos de alto valor
Marcio Sete
 
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinadaConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
André Paulovich
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWARE
Ernesto Bedrikow
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Rebecca Betwel
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
Emerson Henrique
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
Luciano Almeida
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Fábio Nogueira de Lucena
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
Adriano Bertucci
 
Workshop - The DevOps Cookbook
Workshop - The DevOps Cookbook   Workshop - The DevOps Cookbook
Workshop - The DevOps Cookbook
Marcio Sete
 
Seu código fede e você nem sabia
Seu código fede e você nem sabiaSeu código fede e você nem sabia
Seu código fede e você nem sabia
Wagner Mendes Voltz Fusca
 
Treinamento Ágil / Scrum
Treinamento Ágil / ScrumTreinamento Ágil / Scrum
Treinamento Ágil / Scrum
Alessandro Rodrigues, CSM, SFC
 
Introdução às metodologias ágeis
Introdução às metodologias ágeisIntrodução às metodologias ágeis
Introdução às metodologias ágeis
Comunidade Tá safo!
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimento
Gabriel Moura
 
Entregando Software com Valor
Entregando Software com ValorEntregando Software com Valor
Entregando Software com Valor
Maicon Carlos Pereira
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
Hélio Medeiros
 
Gerencie sua carreira. Seja um desenvolvedor melhor!
Gerencie sua carreira. Seja um desenvolvedor melhor!Gerencie sua carreira. Seja um desenvolvedor melhor!
Gerencie sua carreira. Seja um desenvolvedor melhor!
Sandro Giacomozzi
 

Semelhante a Muita gestão e pouca engenharia, por onde anda o XP? (20)

O que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBMO que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBM
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
 
Apresentação Executiva
Apresentação ExecutivaApresentação Executiva
Apresentação Executiva
 
Transformando a experiência da TI com ciclos curtos de alto valor
Transformando a experiência da TI com ciclos curtos de alto valorTransformando a experiência da TI com ciclos curtos de alto valor
Transformando a experiência da TI com ciclos curtos de alto valor
 
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinadaConnectionDay 2019 - Divinópolis - Transformação digital turbinada
ConnectionDay 2019 - Divinópolis - Transformação digital turbinada
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWARE
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
 
Metodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de SoftwareMetodologias Ágeis de Desenvolvimento de Software
Metodologias Ágeis de Desenvolvimento de Software
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Workshop - The DevOps Cookbook
Workshop - The DevOps Cookbook   Workshop - The DevOps Cookbook
Workshop - The DevOps Cookbook
 
Seu código fede e você nem sabia
Seu código fede e você nem sabiaSeu código fede e você nem sabia
Seu código fede e você nem sabia
 
Treinamento Ágil / Scrum
Treinamento Ágil / ScrumTreinamento Ágil / Scrum
Treinamento Ágil / Scrum
 
Introdução às metodologias ágeis
Introdução às metodologias ágeisIntrodução às metodologias ágeis
Introdução às metodologias ágeis
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimento
 
Entregando Software com Valor
Entregando Software com ValorEntregando Software com Valor
Entregando Software com Valor
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
 
Gerencie sua carreira. Seja um desenvolvedor melhor!
Gerencie sua carreira. Seja um desenvolvedor melhor!Gerencie sua carreira. Seja um desenvolvedor melhor!
Gerencie sua carreira. Seja um desenvolvedor melhor!
 

Muita gestão e pouca engenharia, por onde anda o XP?

  • 1. Empoderando o time de engenharia Muita gestão e pouca engenharia, por onde anda o XP?
  • 2. Olá! Sou Cristiano Schwening Perfil no Linkedin ProdWorkAgile - Podcast cristiano.schwening@celk.net //Cientista da Computação //Chief Agility na Celk //produto, desenvolvimento e design //processo de gestão de produtos //Práticas ágeis //Cultura //Mudança //Lean Cristiano - Celk
  • 4. Como encontrei o XP na minha vida! Ano 2000: programar em Delphi para uma empresaem Maceió Ano 2001: clientesmenos exigentes,mas o "processo"naempresamuito caótico.Conheci o CMM,mas era muitacoisa para o tamanho da empresa,procurandoalguma forma de implementar o CMM mais simples acabei encontrando o XP. Ano 2002: iniciei carreira docente,lecionando qualidade de software com XP. Retornei paraSul, fiz pós em processos estudando métodoságeis. Ano 2004-2014: comeceia auxiliar empresasde software em melhoriade processos(nome antigo para transformação) usando Scrum,XP e Kanban + MPS.BR. Ano 2015: iniciei carreiraem gestão de produtos+ mentoriaem Ágil Ano 2019: reformulamostodo o fluxo de valor da empresacom práticaságeis https://app.sli.do/event/dwhesbpa Código: 80014
  • 5. Kent Beck Inventei tudo do XP em duas semanas, com uma caneta na mão e um quadro branco
  • 6. O XP é um dos neandertais da agilidade • Um ano mais novo que o SCRUM e DSDM • O foco é a agilidade nas práticas de desenvolver código, embora tenha gestão simples. Não foi criado com o gerenciamento de projetos em mente! • Existe antes do Manifesto Ágil • Conexão entre a manufatura enxuta e o desenvolvimento ágil • Incorpora as definições de Padrões de Projeto e Código Limpo • Recebeu o nome de programaçãoextrema da ideia de que os elementos benéficos da engenharia de software tradicional deveriam ser levados ao extremo • Agile é sinônimo de Modo de Trabalho adaptável
  • 7. Ron Jeffries Extreme Programming é uma disciplina do desenvolvimento de software baseada em valores de simplicidade, comunicação, feedback, coragem e respeito.
  • 8. Atenção! Esta apresentação não discute a impopularidade do XP ou o uso somente do XP nos modelos de negócio
  • 9. Tampouco estou minimizando a necessidade das organizações pensarem em gestão!
  • 10. Minhas suposições sobre o sumiço do XP • Poucos gerentes compram as ideias e valores do XP • No relatório do Estado da Agilide em 2020 (ref 2019), somente 1% reportou o uso do XP • Para muitos gerentes e consultores a agilidade é apenas sob a perspectiva de gerenciamento de projetos. • Agile Coach e Consultores que nunca foram desenvolvedores tem dificuldade de entender o XP. • O XP enfatiza mais os engenheiros do que os gerentes de projeto. http://stateofagile.versionone.com/
  • 11. Portanto não é surpresa apenas 1% das organizações usando o XP. • Entretanto este foco em gestão coloca em baixo do tapete algumas questões: • Como você pode realmente ser ágil sem práticas técnicas? • Você consegue cobrir todas as práticas técnicas necessárias somente adotando devops? • Colocar automação de testes na esteira do build é garantir teste do desenvolvedor?
  • 12. Portanto não é surpresa apenas 1% das organizações usando o XP. • Se levarmos em consideração o híbrido Scrum/XP, existem no máximo 9% das organizações adotando o XP em 2019. • Mas pode ser que neste percentual,reportam-sepráticas de gestão do XP similaresno Scrum!!! • Considero o XP muito bom e Kent Beck um fera no assunto, bem como as pessoas ao seu redor, durante a formulação do XP, como Martin Fowler e Ron Jeffries. • Existem muitas boas filosofias por trás do XP. • Mas o início foi época dos hype evangélicos do XP
  • 13. É lamentável que 18 anos depois do Manifesto Ágil conhecer o XP não seja tão popular quanto o Scrum e o Kanban.
  • 14. Razões para o negacionismo e ações para usar o XP
  • 15. Foco nas disciplinas técnicas da engenharia de software • Os coachs atuais geralmente não têm a capacidade de ser um coach do XP para treinar os desenvolvedores nas práticas de engenharia do XP. • Se justificar a contratação de um Scrum Master é difícil, justificar a contratação de um coach XP em tempo integral é ainda mais difícil! A escassez e custo de coachs XP experientes no Brasil pode ser o principal entrave. Nossos esforços estão, no momento,focados em disponibilizar a maior quantidadede materiais de qualidadeque endereçamas habilidades do XP e formar um coach XP que atenda todas as squads,através de capacitaçãointerna.
  • 16. A incompreendida Programação em pares • Ter dois desenvolvedores no mesmo computador trabalhando no mesmo código é ilógico para gerentes. Por que desperdiçaria dinheiro para dois desenvolvedores fazer uma coisa? • Muitos desenvolvedores não estão prontos para compartilhar seus códigos e ouvir sugestões de colegas. Adotar quando requer a resoluçãode questões que envolva o raciocínio mais complexo ou de problemas que não são habituais. Compartilhamentode responsabilidadedurantea implementação. Adotar,embora não seja o objetivo,para mentoria de novos desenvolvedores.
  • 17. Requer um razoável investimento inicial • Para o XP, você precisa de desenvolvedores comprometidos com a qualidade. Tenham coragem de liberar não apenas código que funciona, mas também códigos limpos, testáveis e com baixa taxa de defeitos. •Na pressão atual do mercado por redução de tempo, muitas vezes gestores não gostam de trabalhar com esse tipo de desenvolvedor porque não são permissivos! Tente encontrar desenvolvedores recém-formados que já conhecem as práticas do XP. Boa sorte!! Deixar mais objetivo e documentadoo processode construçãode softwarepara minimizar a possibilidadede gerentes pressionaremos desenvolvedorese com prejudicar a qualidade. Na parte dos gestores,comunicar visualmenteos 7 desperdícios do Lean, para conscientizarsobrea importânciade fazer certono começo.
  • 18. Requalificação do analistas de testes • Os Testadores no XP são a Assistência à Qualidade e não a Garantia da Qualidade, eles são responsáveis por ajudar e treinar os clientes e os desenvolvedores em qualidade. • Os testadores no XP ajudam os clientes a escolher e escrever testes automatizados no nível do sistema antes da implementação e orientar os desenvolvedores nas técnicas de teste. - Kent Beck Incluir os analistas de testes na etapa de planejamentodas entregas (upstream)para auxiliar nos cenários,em BDD, que serão codificadospelos desenvolvedores.Apoiar os desenvolvedoresduranteo delivery, para validar as entregas de código(prontopara teste). A mentalidadede Assistênciaà Qualidade é o desafio mais complexo,a maioria dos testadores queremtrabalhar com a automação e não com mentoria com programadores!
  • 19. Testes Unitários e TDD • Para vários gerentes, escrever testes de unidade significa mais código e mais tempo para escrevê-lo. Mais código e mais tempo significam mais custos. • A maioria dos gerentes e desenvolvedores pensam que o principal benefício derivado do TDD é o conjunto abrangente de testes de unidade. Implementar 100% de testes unitários em códigos dos novos recursos e incluir validação na esteira de build. Implementar 50% de testes unitários nos códigos legado. O maior desafio será implementar a culturada codificaçãovoltada para testes,não é somente testes unitários!
  • 20. Capacitação custa mais caro • Para gestão de projetos as empresas podem apenas mandar seus gerentes de projeto para um treinamento de certificação Scrum Master de 2 dias ou um treinamento em Gerenciamento Ágil de Projetos. • Com o XP, as empresas precisam capacitar toda a equipe de desenvolvimento! Isso custa bem mais caro. Maior problema,raros (e caros) cursoscomplexos (maior que 1 módulo de outro curso)sobreXP online.A meta é que o Coach XP formado internamentepossa inicialmenterealizar as capacitações práticas necessárias para as squads. Poucos treinamentos presenciais,mas o custo está dificultandoorçamento com o RH, além das restrições da pandemia.
  • 21. Design Simples e Emergente • As pessoas querem ter certeza de que a arquitetura está completa antes dos desenvolvedores começarem a codificar. • E à medida que a base de códigos cresce, e você está sob pressão para cumprir o prazo, como manter o design simples? No fluxo de discovery uma plano da arquitetura(ArquiteturaMínimo Viável) é tratado em alto nível e descreveo caminhoe a visão futura. No delivery os cenários das histórias descrevemapenas aquilo que resolve o problema e focam em entregar valor primeiro. Evitar antecipaçãoe postegrar a complexidade! A organização por domínios de negóciocolabora. O conceitode design incrementalna maioria dos projetos é complexo!
  • 22. Precisa de infraestrutura • No XP, precisa-se de investimentos para testes automatizados e infraestrutura de entrega contínua. Aqui entra o Devops, entregamos uma versão toda a semana para os clientes com melhorias e novas funcionalidade,por isso iniciamos automatizandoo builddas aplicações.Antes a entregadependia do comandodo líder da squad. Para os produtos novos e microserviços estamos automatizandoa esteira de entregadelivery. Commit somente o que pode gerar build! Contratamos um empresaespecializadaem Devops,para adiantar etapas na adoção das práticas de entregacontínua.
  • 23. Realizar refatoração • Os desenvolvedores devem refatorar ativamente o código, mantê-lo atualizado a cada momento. A refatoração é uma arte e requer diligência e disposição. • Coragem para fazer refatorações sem medo de quebrar regras importantes no sistema. • Por que deveríamos refatorar e introduzir um novo bug. Vamos deixar como está. Incluir assuntos relacionados com códigolimpo reforçaa necessidadedo desenvolvedor pensar mais na refatoraçãodesdeo início. Em um código legado,muitas vezes a refatoraçãopode ser mais complexa. Nestes casos,marcamos código que precisarefatoraçãoe planejamos ação em uma release posterior,realizandoanálise de impacto antes!
  • 24. Integração contínua e build em 10 minutos • O que muita empresa está fazendo atualmente é apenas construção contínua e não Integração Contínua. Garantir a melhor coberturapossível de testes de integraçãona esteira de build do códigoem desenvolvimentoe principalmentena branch de testes. Requer garantir os testes unitários. Criar o senso de commit diário entre os desenvolvedores e o pensamento de pequenas entregas (passos de bebê) O teste de produçãopode ser o maior desafio.
  • 25. Mudança de cultura • Mudança de cultura da organização, requer quebrar silos e reunir, pessoas que antes trabalhavam isoladamente, em times. • Precisa coragem para mudar a cultura das pessoas. Tivemos algumas baixas de profissionais que não se adaptaram a mudançaculturalde gestão! Reorganizamos fluxos,etapas, práticas e ferramentas em toda a área de desenvolvimento.Alteramos papeis e responsabilidades. Colocandoagora o mindsetde mudança nas pessoas de engenharia!
  • 27. Outras práticas aplicadas • Método Kanban • Scrum • Less e SAFe • Lean • Dual Track • TSP • Experiências individuais
  • 28. Portanto... • Não se tornou um "padrão" na indústria de software, mesmo após 15 anos da sua formulação! • É um ótimo conjunto de práticas importantes para a correta construção de um produto de software. • Infelizmente o mundo não é necessariamente atraído pelo que é ideal. • Ainda existe muito trabalho para que a transformação ágil realmente incorpore os "padrões" de codificação!
  • 29. Referências • Fundamentos do XP •Patterns Generate Architectures, Kent Beck e Ralph Johnson, ECOOP 94 •Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides •Patterns And Extreme Programming. Jeffries, Ron. Portland Pattern Repository. 1999 - https://c2.com/ppr/ •Extreme Programming - 2ª Edição. Vinícius Manhães Teles https://novatec.com.br/livros/extreme-programming-2ed/ •O novo XP. Michele Marchesi. www.academia.edu/2862372/The_new_XP
  • 30. Referências • Material para capacitar em XP • The Art of Agile Development (www.jamesshore.com/Agile- Book/) • Lista de livros que abordam as práticas do XP www.desenvolvimentoagil.com.br/xp/livros • Programação em par https://github.com/BillSchofield/pair- programming-advice • Programação Mútua www.agileconnection.com/sites/default/files/article/file/ 2014/Mutual%20Programming.pdf • TDD https://medium.com/creditas-tech/o-que-test-driven- development-n%C3%A3o-%C3%A9-584af2d4c65a
  • 31. Obrigado pela atenção!! Perguntas do slido. Equipes mais ágeis devem se concentrar na programação extrema e trazer mais práticas técnicas de volta ao mundo ágil.