SlideShare uma empresa Scribd logo
1 de 16
Artesanato de Software na Prática
Percival Lucena
Todo Mundo Faz Scrum
Dívida Técnica
"O cliente está
com pressa.
Então entrega
qualquer coisa,
e logo!!!"
Agora!
Por que nos individamos tecnicamente?
Manifesto do Artesanato de Software
software
funcionando
responder as
mudanças
indivíduos e
interações
colaboração com
o cliente
software de
qualidade
agregar valor
constantemente
comunidade de
profissionais
parcerias
produtivas
Não apenas software funcionando, mas
software de excelente qualidade
● TDD
● Programação
em pares
● Revisão de
Código
Não apenas software funcionando, mas
software de excelente qualidade
Não apenas software funcionando, mas
software de excelente qualidade
Revisão de Código:
● Fácil de ler
● Fácil de mudar
● Fácil de evoluir
Não apenas software funcionando, mas
software de excelente qualidade
"Entregue o
código sempre
melhor do que
encontrou"
Avi Alkalay
Não apenas responder a mudanças, mas
agregar valor constantemente
Avi Alkalay
Não apenas responder a mudanças, mas
agregar valor constantemente
Não apenas indivíduos e suas interações, mas
uma comunidade de profissionais
Não apenas indivíduos e suas interações, mas
uma comunidade de profissionais
Não apenas a colaboração do cliente, mas
parcerias produtivas
E o processo como fica?
Conclusões

Mais conteúdo relacionado

Mais procurados

Anti-Padrões de Integração Contínua
Anti-Padrões de Integração ContínuaAnti-Padrões de Integração Contínua
Anti-Padrões de Integração ContínuaThoughtworks
 
Implantando continuous delivery e seus oito principios
Implantando continuous delivery e seus oito principiosImplantando continuous delivery e seus oito principios
Implantando continuous delivery e seus oito principiosCarlos Felippe Cardoso
 
Como funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de softwareComo funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de softwareElvis Lima
 
Ruby on Rails - Clube Startup
Ruby on Rails -  Clube StartupRuby on Rails -  Clube Startup
Ruby on Rails - Clube StartupLucas Renan
 
Management 3.0 - a vida pós-agilidade
Management 3.0 - a vida pós-agilidadeManagement 3.0 - a vida pós-agilidade
Management 3.0 - a vida pós-agilidadeFernando Ike
 
Métodos Ágeis para Desenvolvimento de Software Livre
Métodos Ágeis para Desenvolvimento de Software LivreMétodos Ágeis para Desenvolvimento de Software Livre
Métodos Ágeis para Desenvolvimento de Software LivreDionatan default
 
Maio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação ContínuaMaio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação ContínuaGrupo de Testes Carioca
 
State of Product Ownership - Scrum Day BR 2018
State of Product Ownership - Scrum Day BR 2018State of Product Ownership - Scrum Day BR 2018
State of Product Ownership - Scrum Day BR 2018Leonardo Pabon - CSP, MSc
 
Culture Code Coderockr
Culture Code CoderockrCulture Code Coderockr
Culture Code CoderockrCoderockr
 
DevOps Culture: Como implementar métodos ágeis em infraestrutura como código
DevOps Culture: Como implementar métodos ágeis em infraestrutura como códigoDevOps Culture: Como implementar métodos ágeis em infraestrutura como código
DevOps Culture: Como implementar métodos ágeis em infraestrutura como códigoCriciúma Dev
 
Design Simples com XP
Design Simples com XPDesign Simples com XP
Design Simples com XPIsmael
 
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e GithubDescomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e GithubMarcelo Souza Vieira
 
ATC BSB - Agile Testing
ATC BSB - Agile Testing ATC BSB - Agile Testing
ATC BSB - Agile Testing Samanta Cicilia
 
Apresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e SeleniumApresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e SeleniumRafael Cruz, MCT, MBA
 
Devops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estruturaDevops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estruturaFernando Celarino
 
Alm e ATLM - A importância dos lifecycles no desenvolvimento de software
Alm e ATLM - A  importância dos lifecycles no desenvolvimento de softwareAlm e ATLM - A  importância dos lifecycles no desenvolvimento de software
Alm e ATLM - A importância dos lifecycles no desenvolvimento de softwareVandre Ramos, MSc, MBA, CSM
 
O que é um Agile Coach
O que é um Agile CoachO que é um Agile Coach
O que é um Agile CoachElias Nogueira
 

Mais procurados (20)

Anti-Padrões de Integração Contínua
Anti-Padrões de Integração ContínuaAnti-Padrões de Integração Contínua
Anti-Padrões de Integração Contínua
 
Implantando continuous delivery e seus oito principios
Implantando continuous delivery e seus oito principiosImplantando continuous delivery e seus oito principios
Implantando continuous delivery e seus oito principios
 
Como funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de softwareComo funciona uma empresa ágil de desenvolvimento de software
Como funciona uma empresa ágil de desenvolvimento de software
 
Ruby on Rails - Clube Startup
Ruby on Rails -  Clube StartupRuby on Rails -  Clube Startup
Ruby on Rails - Clube Startup
 
Management 3.0 - a vida pós-agilidade
Management 3.0 - a vida pós-agilidadeManagement 3.0 - a vida pós-agilidade
Management 3.0 - a vida pós-agilidade
 
Métodos Ágeis para Desenvolvimento de Software Livre
Métodos Ágeis para Desenvolvimento de Software LivreMétodos Ágeis para Desenvolvimento de Software Livre
Métodos Ágeis para Desenvolvimento de Software Livre
 
Maio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação ContínuaMaio 2016 - Integração e Validação Contínua
Maio 2016 - Integração e Validação Contínua
 
Automatização - DevOps
Automatização - DevOpsAutomatização - DevOps
Automatização - DevOps
 
State of Product Ownership - Scrum Day BR 2018
State of Product Ownership - Scrum Day BR 2018State of Product Ownership - Scrum Day BR 2018
State of Product Ownership - Scrum Day BR 2018
 
Culture Code Coderockr
Culture Code CoderockrCulture Code Coderockr
Culture Code Coderockr
 
Validando soluções no governo
Validando soluções no governoValidando soluções no governo
Validando soluções no governo
 
DevOps Culture: Como implementar métodos ágeis em infraestrutura como código
DevOps Culture: Como implementar métodos ágeis em infraestrutura como códigoDevOps Culture: Como implementar métodos ágeis em infraestrutura como código
DevOps Culture: Como implementar métodos ágeis em infraestrutura como código
 
Design Simples com XP
Design Simples com XPDesign Simples com XP
Design Simples com XP
 
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e GithubDescomplicando CI/CD com Jenkins, Docker Swarm e Github
Descomplicando CI/CD com Jenkins, Docker Swarm e Github
 
ATC BSB - Agile Testing
ATC BSB - Agile Testing ATC BSB - Agile Testing
ATC BSB - Agile Testing
 
Apresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e SeleniumApresentação de BDD com SpecFlow e Selenium
Apresentação de BDD com SpecFlow e Selenium
 
Devops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estruturaDevops - A cultura ágil voltada à infra-estrutura
Devops - A cultura ágil voltada à infra-estrutura
 
Alm e ATLM - A importância dos lifecycles no desenvolvimento de software
Alm e ATLM - A  importância dos lifecycles no desenvolvimento de softwareAlm e ATLM - A  importância dos lifecycles no desenvolvimento de software
Alm e ATLM - A importância dos lifecycles no desenvolvimento de software
 
Potencializando seus testes com jenkins
Potencializando seus testes com jenkinsPotencializando seus testes com jenkins
Potencializando seus testes com jenkins
 
O que é um Agile Coach
O que é um Agile CoachO que é um Agile Coach
O que é um Agile Coach
 

Semelhante a Artesanato de Software na Prática

Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Marcio Miyamoto
 
Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.Vinta Software
 
Agile Testing, por Carolina Borim
Agile Testing, por Carolina BorimAgile Testing, por Carolina Borim
Agile Testing, por Carolina BorimThoughtworks
 
Praticas Ágeis para desenvolvimento de Software
Praticas Ágeis para desenvolvimento de SoftwarePraticas Ágeis para desenvolvimento de Software
Praticas Ágeis para desenvolvimento de SoftwarePaulo Moura
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwareAdolfo Neto
 
BDD e TDD na prática com SpecFlow e Visual Studio 2012
BDD e TDD na prática com SpecFlow e Visual Studio 2012BDD e TDD na prática com SpecFlow e Visual Studio 2012
BDD e TDD na prática com SpecFlow e Visual Studio 2012Igor Abade
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013André Borgonovo
 
Agile, mudando o foco
Agile, mudando o focoAgile, mudando o foco
Agile, mudando o focoewerttonbravo
 
Práticas Ágeis de Desenvolvimento de Software
Práticas Ágeis de Desenvolvimento de SoftwarePráticas Ágeis de Desenvolvimento de Software
Práticas Ágeis de Desenvolvimento de SoftwareLuiz Cláudio Silva
 
20111229 netshoes metodologia
20111229 netshoes metodologia20111229 netshoes metodologia
20111229 netshoes metodologiaAle Uehara
 
Desenvolvimento Orientado a Qualidade
Desenvolvimento Orientado a QualidadeDesenvolvimento Orientado a Qualidade
Desenvolvimento Orientado a QualidadeHuge
 
O XP não é contra Design com Paulo Caroli, Café Ágil em Recife
O XP não é contra Design com Paulo Caroli, Café Ágil em RecifeO XP não é contra Design com Paulo Caroli, Café Ágil em Recife
O XP não é contra Design com Paulo Caroli, Café Ágil em RecifePaulo Caroli
 
O XP não é contra Design com Paulo Caroli, Café Ágil em Recife
O XP não é contra Design com Paulo Caroli, Café Ágil em Recife O XP não é contra Design com Paulo Caroli, Café Ágil em Recife
O XP não é contra Design com Paulo Caroli, Café Ágil em Recife Paulo Caroli
 
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 realHenrique Schmidt
 
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 realWilly Salazar
 
Teste de Software em Ti Interna
Teste de Software em Ti InternaTeste de Software em Ti Interna
Teste de Software em Ti InternaRoger Ritter
 

Semelhante a Artesanato de Software na Prática (20)

Seu codigo fede e voce nem sabia - 2020
Seu codigo fede e voce nem sabia - 2020Seu codigo fede e voce nem sabia - 2020
Seu codigo fede e voce nem sabia - 2020
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
 
Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.Conheça como a Vinta trabalha.
Conheça como a Vinta trabalha.
 
Agile Testing, por Carolina Borim
Agile Testing, por Carolina BorimAgile Testing, por Carolina Borim
Agile Testing, por Carolina Borim
 
Praticas Ágeis para desenvolvimento de Software
Praticas Ágeis para desenvolvimento de SoftwarePraticas Ágeis para desenvolvimento de Software
Praticas Ágeis para desenvolvimento de Software
 
Desenvolvimento Ágil de Software
Desenvolvimento Ágil de SoftwareDesenvolvimento Ágil de Software
Desenvolvimento Ágil de Software
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
 
BDD e TDD na prática com SpecFlow e Visual Studio 2012
BDD e TDD na prática com SpecFlow e Visual Studio 2012BDD e TDD na prática com SpecFlow e Visual Studio 2012
BDD e TDD na prática com SpecFlow e Visual Studio 2012
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013
 
Apresentacao
ApresentacaoApresentacao
Apresentacao
 
Agile, mudando o foco
Agile, mudando o focoAgile, mudando o foco
Agile, mudando o foco
 
Práticas Ágeis de Desenvolvimento de Software
Práticas Ágeis de Desenvolvimento de SoftwarePráticas Ágeis de Desenvolvimento de Software
Práticas Ágeis de Desenvolvimento de Software
 
20111229 netshoes metodologia
20111229 netshoes metodologia20111229 netshoes metodologia
20111229 netshoes metodologia
 
Desenvolvimento Orientado a Qualidade
Desenvolvimento Orientado a QualidadeDesenvolvimento Orientado a Qualidade
Desenvolvimento Orientado a Qualidade
 
O XP não é contra Design com Paulo Caroli, Café Ágil em Recife
O XP não é contra Design com Paulo Caroli, Café Ágil em RecifeO XP não é contra Design com Paulo Caroli, Café Ágil em Recife
O XP não é contra Design com Paulo Caroli, Café Ágil em Recife
 
O XP não é contra Design com Paulo Caroli, Café Ágil em Recife
O XP não é contra Design com Paulo Caroli, Café Ágil em Recife O XP não é contra Design com Paulo Caroli, Café Ágil em Recife
O XP não é contra Design com Paulo Caroli, Café Ágil em Recife
 
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
 
Teste de Software em Ti Interna
Teste de Software em Ti InternaTeste de Software em Ti Interna
Teste de Software em Ti Interna
 

Mais de Percival Lucena

Contabilidade de Tripla Partida e Identidade Digital Coorporativa
Contabilidade de Tripla Partida e Identidade Digital  CoorporativaContabilidade de Tripla Partida e Identidade Digital  Coorporativa
Contabilidade de Tripla Partida e Identidade Digital CoorporativaPercival Lucena
 
Ativos Digitais no blockchain - Blockcrypto
Ativos Digitais no blockchain - Blockcrypto Ativos Digitais no blockchain - Blockcrypto
Ativos Digitais no blockchain - Blockcrypto Percival Lucena
 
AgTrace - 1st Symposium on Foundations and Applications of Blockchain 2018 (F...
AgTrace - 1st Symposium on Foundations and Applications of Blockchain 2018 (F...AgTrace - 1st Symposium on Foundations and Applications of Blockchain 2018 (F...
AgTrace - 1st Symposium on Foundations and Applications of Blockchain 2018 (F...Percival Lucena
 
Blockchain Self Sovereign Identity
Blockchain Self Sovereign IdentityBlockchain Self Sovereign Identity
Blockchain Self Sovereign IdentityPercival Lucena
 
WBMA 2016 - IBM Design Thinking
WBMA 2016 - IBM Design ThinkingWBMA 2016 - IBM Design Thinking
WBMA 2016 - IBM Design ThinkingPercival Lucena
 
SBQS - SOFTWARE CRAFTSMANSHIP
SBQS - SOFTWARE CRAFTSMANSHIPSBQS - SOFTWARE CRAFTSMANSHIP
SBQS - SOFTWARE CRAFTSMANSHIPPercival Lucena
 

Mais de Percival Lucena (12)

Contabilidade de Tripla Partida e Identidade Digital Coorporativa
Contabilidade de Tripla Partida e Identidade Digital  CoorporativaContabilidade de Tripla Partida e Identidade Digital  Coorporativa
Contabilidade de Tripla Partida e Identidade Digital Coorporativa
 
Ativos Digitais no blockchain - Blockcrypto
Ativos Digitais no blockchain - Blockcrypto Ativos Digitais no blockchain - Blockcrypto
Ativos Digitais no blockchain - Blockcrypto
 
AgTrace - 1st Symposium on Foundations and Applications of Blockchain 2018 (F...
AgTrace - 1st Symposium on Foundations and Applications of Blockchain 2018 (F...AgTrace - 1st Symposium on Foundations and Applications of Blockchain 2018 (F...
AgTrace - 1st Symposium on Foundations and Applications of Blockchain 2018 (F...
 
Blockchain Self Sovereign Identity
Blockchain Self Sovereign IdentityBlockchain Self Sovereign Identity
Blockchain Self Sovereign Identity
 
Blockchain BTSym '16
Blockchain BTSym '16Blockchain BTSym '16
Blockchain BTSym '16
 
WBMA 2016 - IBM Design Thinking
WBMA 2016 - IBM Design ThinkingWBMA 2016 - IBM Design Thinking
WBMA 2016 - IBM Design Thinking
 
SBQS - SOFTWARE CRAFTSMANSHIP
SBQS - SOFTWARE CRAFTSMANSHIPSBQS - SOFTWARE CRAFTSMANSHIP
SBQS - SOFTWARE CRAFTSMANSHIP
 
Design Thinking
Design ThinkingDesign Thinking
Design Thinking
 
Component based design
Component based designComponent based design
Component based design
 
Devops and Cloud
Devops and CloudDevops and Cloud
Devops and Cloud
 
Worklight exemplo
Worklight exemploWorklight exemplo
Worklight exemplo
 
Talkagent
TalkagentTalkagent
Talkagent
 

Artesanato de Software na Prática

Notas do Editor

  1. Artesanato de Software na prática Buenas - Eu me chamo Percival Lucena Sou professor universitário e trabalho com desenvolvimento de software ha mais de 15 anos. Nesta tarde eu gostaria de conversar um pouco com vcs esta tarde sobre Artesanato de Software
  2. Hoje em dia, todo mundo faz Scrum. Até aquele projetinho maroto que é Waterfall acha que faz Scrum. Empresas pequenas, médias e grandes usam Scrum como processo de desenvolvimento de software. Quem aqui trabalha em uma empresa que usa Scrum? Levanta a mão. Joia. E quem usa outra metodologia? Kanban? Levanta a mao. (Go Horse não conta…) Mas usar Scrum não é bala de prata. Não garante que o projeto seja entregue em dia… Nem garante que o projeto seja entregue com qualidade… Quem aqui realmente se orgulha do trabalho que faz?
  3. Quando começamos um novo projeto quase não temos bugs. Isto por que tambem Não temos código. Os requisitos são novos. O time deslancha que é uma beleza! Mas com o passar do tempo vemos que a velocidade do time começa a cair em vez de subir? E ai a pressão aumenta! Por que o time não esta redendo! O PM, o SM não entende e resolve colocar mais gente no time, e a velocidade continua caindo. Um avião em queda livre. Porque na pressa de entregar, o time deixa a qualidade de lado e começa a entrar no cheque especial do Debito Tecnico. Começa assim: Vc faz uma caquinha. Depois o seu colega faz outra caquinha para corrigir a primeira caquinha. E quando vc vê: Holy Shit! O software é uma colcha de remendos cheia de bugs! É o que o Martin Flower em um artigo de 2009, chamada Flaccid Scrum. Um Scrum sem qualidade: sem codigo limpo, sem refactoring sem testes automatizados.
  4. A primeira coisa que pensamos quando se fala em débito tempo é que tivemos que agir assim porque não tinhamos tempo para implementar testes, ou fazer refactoring, ou melhorar a arquitetura. É fácil acreditar que nunca temos tempo. O cliente, o SM, o PM, todos defenderão um cronograma agressivo com entregas impossíveis. Mas este pode ser o papel deles não o nosso. Muitas vezes a equipe acredita, cai na historia de que o melhor que o time pode fazer é entregar o maior numero de features, o mais rápido possível Não podemos escrever software ruim, so porque temos pressa de entregar! Robert Martin (Tio Bob), um dos autores do Manifesto Ágil - keynote no Agile 2008 causou barulho. Ele colocou o dedo nesta ferida Para ele o problema era taao grave que valia a pena mudar o manifesto agil e adicionar um novo item - Artesanto ao invés de software ruim. Mas, O que sera que o tio Bob quis dizer com isto?
  5. Depois da palestra do Robert Martin em 2008, em Dezembro do mesmo ano, em Chicago (LibertyVille) ocorreu a primeira conferencia sobre Artesanato de Software. Os participantes desta conferência criaram um google group e durante a discussão Doug Bradbury, Scott Pfister juntaram varias das opinioes dos participantes e criaram o Maifesto do Artesanato de Software Mas por que o mundo precisa de mais um Manifesto? Vamos entnder o Contexto: Metodologias como Lean e XP (na moda) focavam mais em processos do que as práticas técnicas. Alguem precisava voltar a defender as práticas técnicas (como as praticas do Extreme Programming) para garantir a qualidade de software! Mas o artesanato não é apenas um XP-Light. Vamos analisar os valores do Manifesto do Artesanato de Software: A primerira vista o Manifesto de Artesanato é so uma manifeto Agile ++. Mas nao é assim. Vamos analisar cada um destes pontos individualmete
  6. Nao apenas software funcionando, mas software de excelente qualidade Pense numa aplicação de 5 anos, sem testes. O time que fez o app ja nao existe mais e Ninguem entende como a app funciona. O app é cheio de classes com centenas e as vezes milhares de linhas. Pense que seu time vai ter que dar manutenção nesta app. Sim Ela funciona, mas é o suficiente? Quando eu falo em Artesanato, muitas vezes a pessoa pensa que isto significa fazer as tarefas manualmente. Tipo fazer um colar de miçangas. Não não é isto que queremos dizer. Artesanato é usar as melhores praticas tecnicas. E muitas vezes as melhores praticas tecnicas, consistem em utilizar automacao. Algumas praticas que podem ser utilizadas em um time que busca melhor qualidade Automação de Testes - TDD. Escreve primeiro o teste depois o codigo Automação de Deploys com CI Programação em pares Revisão de código.
  7. Quanto custa ter um carro? Alguem aqui ja comprou um carro de um fabricante Xing Ling.? Aquele que para na oficina toda semana? E que não tem peça de manutenção? É um bom negocio? Um carro é bem mais do que o valor pago na promoção é uma serie de outros fatores que contribuem para o custo de propriedade: Impostos+Seguro+Estacionamento+Combustivel+Seguro+Manutenção+Depreciação Vc na hora de comprar faz estas contas ou compra o mais barato? Sera que o mesmo ocorre com Software? Vale a pena fazer software Xing Ling? Software custa caro. Escritório, equipamentos, salário do time. Os clientes que contratam software esperam fazer dinheiro, poupar dinheiro, ou proteger seus lucros. Adicionar valor ao software não é apenas adicionar novos features e corrigir bugs. Garantir a manutenibilidade é fundamental para diminuir o custo de manutenção do software. Devemos manter o código limpo, uma arquitetura extensível, testes automatizados e de fácil manutenção. A Qualidade Diminuiu o Custo Total do Software e maximiza os resultados financeiros obtidos
  8. Revisão de código - Meu projeto todo commit do git antes de passar do featire branch para a develop ou release branch passa pela revisão de pelo menos 2 outros membros do time. Ferramentas para isto O que procurar no code review. Bugs.? Bugs deveriam ser detectados pelos testes automatizados. Code review deveria avaliar a qualidade do codigo. Sei que nem sempre é viavel aplicar. Mas um bom comeco seria Aplicar principio do codigo limpo Facil Leitura e Facil Manutenção Principios basicos de design: Coesao, Acoplamento Padroes de codificacao
  9. Software de Excelente qualidade requer Codigo de Excelente Qualidade. Isto não quer dizer que é necessário ter uma arquitetura complexa, nem mesmo uma Arquiteto. A idéia da Arquitetuta evolutiva e Refactoring - Ajuste dos códigos existentes é uma prática importante Código Limpo: Nada de Repetições. Alta Coesão, Baixo Acoplamento - Principios de Design são importantes. Patterns Factories, proxies, DRY, OCP (open closed), DIP (dependency inversion), Dependency Injection -> agile software development principles patterns and practices Principio da Responsabilidade Unica Lei de Demeter,
  10. 2o Principio - Nao apenas responder a mudancas, mas agregar valor constantemente. Uma forma de entregar valor constantemente é não diminuir a velocidade. Outra forma é entregar o software para o cliente tão logo possível. Neste aspecto Devops e Continuous Integration são muito úteis. Essa figura é do Alvi Alkalay da IBM e eu coloquei ela aqui pra tentar ilustar o impacto que o Devops tem em entregar valor para o cliente Cascata trabalhava com fases monoliticas: Requisitos, Desenvolvimento, Teste, Implantação Agile: Focava em Desenvolvimento, testes e requisitos com ciclos curtos realmente melhora o feedback, e permite que o software seja desenvolvido na direção que o cliente quer. Mas Devops traz um ponto a mais que é a entrega constante de valor: É claro que para isto precisamos de um Pipeline 100% automatizado para deploy de apps.
  11. Quando eu falei sobre Devops no Caipira eu trabalhava numa empresa com um time que estava engatinhado no assunto. Hoje trabalho em outra empresa em que o fluxo é 100% automatizado. É muito bom poder deployar novo software de maneira automatica e sem medo. Não somente a compilação mas os testes e até a evolução do banco de dados é automatizada. A cada commit, executamos testes, analisamos qualidade do codigo (Sonar) e deployamos em um ambiente igual a produção. Podemos lançar novos releases em produção sem dor de cabeça uma ou mais vezes por dia se assim for preciso! É claro que ainda temos alguns problemas como a nossa cobertura de testes, mas trabalhamos a cada dia para melhorar nosso processo. Nosso Pipeline permite fazer deploy em produção sem janelas de instalação, sem tirar a produção do ar por um unico momento (Até agora). Pra quem tinha que negociar janelas de instalação e dependia do time de operações para instalar as apps este é um novo mundo maravilhoso.
  12. Aprendizado é um processo contínuo. Algumas empresas de software investem na capacitação dos funcionários oferecendo cursos, livros. Isto é legal, mas cabe ao profissional o dever de continuar aprendendo sempre. Fazer code reviews Participar de Dojos Escrever blogs Contribuir com projetos OSS Participar de encontros como este
  13. Comportamento profissional não é seguir as regras. Comportamento profissional é saber dizer não˜ Se um paciente pedisse para um médico não lavar as mãos e ir direto para cirurgia, o médico obedeceria? Claro que não. Muitas vezes a gente coloca a culpa no gerente, no cliente porque temos que fazer alguma grande bagunça para salvar o projeto. Mas se eu disser não eu vou ser mandado embora. Pode ser que vc trabalhe numa empresa que realmente seja assim. Mas se este for o caso este nao é o emprego que se vale a pena ter. Dizer nao é algo complicado. Vc nao precisa sair gritando (Eu fiz isto algumas vezes e me arrependo por isto) A formas e formas de discordar. DIscussões não publicas. Chega pega aquela pessoa de lado e conversa em particular.
  14. Puxa-Saco em Inglês é Yes-Man. Eu ja trabalhei em alguns projetos "Ágeis" na qual o SM ao invés de proteger o time, ou ajudar o cliente simplesmente dizia Sim para algum funcionário da empresa do cliente que contratou o projeto. Artesãos de software não são trabalhadores de Fábrica. Artesões de software entendem o négocio do cliente, questionam os requisitos, propõe melhorias e são parceiros do cliente. Um time de artesãos é composto por pessoas talentosas apaixonadas pelo que fazem e que atuam como parceiros de seus clientes. Um time de artesões não recebe uma lista de requisitos e sai correndo para codar o que o cliente quer. Um bom time ajuda o cliente ao questionar seus processsos, melhorar processos, mostrar outras opções. Questionar o valor de cada requisito! Ajudar o cliente a priorizar os requisitos. Assumir riscos juntos. Trabalhar juntos. Idealmente com o cliente em contato direto com a equipe. Uma coisa legal de alguns projetos da CI&T fora o fato do cliente constantemente nos visitar e falar com a gente é a TelePresença.
  15. É possível fazer Scrum, Kanban, sem ter um Scrum Master ou Gerente de Projetos. Ou sem um arquiteto? E sem testers? É possivel ter times multi-disciplinares auto-gerenciaveis? Precisamos olhar além do Scrum. Varios autores do manifesto ágil como Dave Thomas e Robert Martin (palestra na Noruega) já se pronunciaram contra a PMbokização do Scrum, onde o SM virou uma espécie de Gerente de Projetos. A idéia inicial do Scrum é que o SM fosse apenas responsável por defender o processo do Scrum. O papel seria transitório e passaria 1 semana ou sprint com cada membro do time até que todos conhecessem o Scrum e não precisassem mais de SMs. Um time multi-diciplinar, auto-gerenciavel não tem SMs, nem Arquitetos, nem Testers, nem DBAs, apenas um time de Desenvolvedores responsáveis por implementar e coordenar o projeto. E a liderança? Bom em termos legais ainda é necessário ter algum tipo de Gerente que seja responsável legal pelos contratos, pela equipe, mas não pela execução e planejamento dos projetos.
  16. Desenvolvimento de software não é somente um emprego É um oficio Pessoas apaixonadas pelo que fazem geram trabalhos de alta qualidade e valor agregado. Alguns projetos não valem a pena economicamente pois nao agregam valor suficiente ao cliente… … Agregar valr...