SlideShare uma empresa Scribd logo
1 de 20
O Dilema
Focar na qualidade ou na entrega
imediata de novas funcionalidades?
Como e até quanto ponderar qualidade de um
projeto mediante ao pedido imediatista de
urgência de seu P.O..
Quem consegue distinguir código bom
de código ruim ?
Exemplo 01
Public void FazQualquerCoisa(bol condicao) {
if (condicao==true)
{
A();
B();
C();
}
}
Exemplo 02
Public void FazQualquerCoisa(bol condicao) {
// Precisa inicializar a variavel
bol retorno = false
if(condicao == true) {
retorno = true;
} elseif( condicao == false) {
retorno = false;
}
// METRO DE SP
return retorno;
}
Refactoring de código = baby
steps
Métodos pequenos induzem o
desenvolvedor pensar 2 vezes antes de
inserir mais linhas!
Código ruim se espalha igual a vírus!
Qual a qualidade dos nossos códigos?
0% = Código escrito por mil macacos
100% = Código impecável
Qual grau de qualidade que aumenta
nossa produtividade ?
Considere uma equipe de Fórmula 1 ...
Você acha que a equipe deve abrir
mão da qualidade para conseguir
maior agilidade ?
Quais fatores que as equipes aceitam
trabalhar abaixo da qualidade?
Experiência no negócio
Treinamento + tempo para treinamento
Testes
Falta de capacidade de avaliação de código ruim
Código legado
Não acha importante simplificar
Tentativa de generalização (Overdesign)
“Quem não utiliza testes automatizados é
charlatão!” – Klaus
JAMAIS diminua a qualidade para
alcançar o prazo !
SEMPRE busque a qualidade para ter o
seu máximo de produtividade!
Muita da sujeira em código esta ligada
a dificuldade em se ver, diariamente
e de forma simples, o código e sua
dependências!
Uma falha é mais fácil de ver quando
tudo está mais simples!
Refactoring = educação da equipe
O que fazer então ?
– Pair programming
– TDD
– Simplificar código
– Discutir questões porem ter uma opinião forte
– Métodos para documentar
– Métodos curtos
– Testes automatizados
– Refactoring
– Coding style deve ser sempre revisto e discutido
– Errar rápido para aprender(Dojos)
Ditado do GO, ”perca suas primeiras
cem partidas a mais rápido possível”.

Mais conteúdo relacionado

Mais procurados

Não existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu códigoNão existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu códigoRenan Carvalho
 
Coach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o timeCoach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o timeElias Nogueira
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoElias Nogueira
 
Ficha de trabalho nº16 spv-garantia versus controle de qualidade
Ficha de trabalho nº16 spv-garantia versus controle de qualidadeFicha de trabalho nº16 spv-garantia versus controle de qualidade
Ficha de trabalho nº16 spv-garantia versus controle de qualidadeLeonor Alves
 
Agile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da IndústriaAgile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da IndústriaAndré Abe Vicente
 
Teste de Software - Especialização Univem
Teste de Software - Especialização UnivemTeste de Software - Especialização Univem
Teste de Software - Especialização UnivemAndré Abe Vicente
 
[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com CodeceptionJúlio de Lima
 
Qualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoQualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoValquíria Duarte D'Amato
 
Lógica de Programação com Javascript - Aula #02
Lógica de Programação com Javascript - Aula #02Lógica de Programação com Javascript - Aula #02
Lógica de Programação com Javascript - Aula #02Ramon Kayo
 
O testador esta morto!
O testador esta morto!O testador esta morto!
O testador esta morto!Elias Nogueira
 
Os desafios da entrega contínua
Os desafios da entrega contínuaOs desafios da entrega contínua
Os desafios da entrega contínuaJuliano Ribeiro
 

Mais procurados (15)

Não existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu códigoNão existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu código
 
Coach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o timeCoach por Imersão - Buscando a excelência técnica com o time
Coach por Imersão - Buscando a excelência técnica com o time
 
Testes em todos os niveis de planejamento
Testes em todos os niveis de planejamentoTestes em todos os niveis de planejamento
Testes em todos os niveis de planejamento
 
Ficha de trabalho nº16 spv-garantia versus controle de qualidade
Ficha de trabalho nº16 spv-garantia versus controle de qualidadeFicha de trabalho nº16 spv-garantia versus controle de qualidade
Ficha de trabalho nº16 spv-garantia versus controle de qualidade
 
Agile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da IndústriaAgile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da Indústria
 
Agile e Testes no PagSeguro
Agile e Testes no PagSeguroAgile e Testes no PagSeguro
Agile e Testes no PagSeguro
 
Teste de Software - Especialização Univem
Teste de Software - Especialização UnivemTeste de Software - Especialização Univem
Teste de Software - Especialização Univem
 
[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception[QANinjaConference] Automação de Testes com Codeception
[QANinjaConference] Automação de Testes com Codeception
 
Qualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoQualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projeto
 
Test-driven Development
Test-driven DevelopmentTest-driven Development
Test-driven Development
 
Lógica de Programação com Javascript - Aula #02
Lógica de Programação com Javascript - Aula #02Lógica de Programação com Javascript - Aula #02
Lógica de Programação com Javascript - Aula #02
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
O testador esta morto!
O testador esta morto!O testador esta morto!
O testador esta morto!
 
Os desafios da entrega contínua
Os desafios da entrega contínuaOs desafios da entrega contínua
Os desafios da entrega contínua
 
O Testador Técnico
O Testador TécnicoO Testador Técnico
O Testador Técnico
 

Semelhante a O dilema

Praticas Ágeis para desenvolvimento de Software
Praticas Ágeis para desenvolvimento de SoftwarePraticas Ágeis para desenvolvimento de Software
Praticas Ágeis para desenvolvimento de SoftwarePaulo Moura
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHPCezar Souza
 
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Softwareguest2f8cba
 
AGILE ALM usando SCRUM e Team Foundation Server 2010
AGILE ALM usando SCRUM e Team Foundation Server 2010AGILE ALM usando SCRUM e Team Foundation Server 2010
AGILE ALM usando SCRUM e Team Foundation Server 2010Ramon Durães
 
DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?Kamilla Queiroz Xavier
 
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...Maurício Aniche
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27Hélio Medeiros
 
Você tem um xerife olhando seu código?
Você tem um xerife olhando seu código?Você tem um xerife olhando seu código?
Você tem um xerife olhando seu código?Maurício Aniche
 
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
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"thiagobapt
 
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...André Paulovich
 
Produtividade em Desenvolvimento de Software
Produtividade em Desenvolvimento de SoftwareProdutividade em Desenvolvimento de Software
Produtividade em Desenvolvimento de SoftwareRildo (@rildosan) Santos
 
5 dicas para diminuir custos em desenvolvimento de softwares
5 dicas para diminuir custos em desenvolvimento de softwares5 dicas para diminuir custos em desenvolvimento de softwares
5 dicas para diminuir custos em desenvolvimento de softwaresEbix Latin America
 

Semelhante a O dilema (20)

Praticas Ágeis para desenvolvimento de Software
Praticas Ágeis para desenvolvimento de SoftwarePraticas Ágeis para desenvolvimento de Software
Praticas Ágeis para desenvolvimento de Software
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Qualidade no desenvolvimento de softwre
Qualidade no desenvolvimento de softwreQualidade no desenvolvimento de softwre
Qualidade no desenvolvimento de softwre
 
Testes de software de A a Z
Testes de software de A a ZTestes de software de A a Z
Testes de software de A a Z
 
Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHP
 
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Software
 
AGILE ALM usando SCRUM e Team Foundation Server 2010
AGILE ALM usando SCRUM e Team Foundation Server 2010AGILE ALM usando SCRUM e Team Foundation Server 2010
AGILE ALM usando SCRUM e Team Foundation Server 2010
 
DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?DevQA: Como medir qualidade de código ?
DevQA: Como medir qualidade de código ?
 
Microsoft C#
Microsoft C#Microsoft C#
Microsoft C#
 
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
Efeitos da Prática de Revisão de Código na Caelum: Um Estudo Preliminar em Du...
 
UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27UnP Eng. Software - Aula 27
UnP Eng. Software - Aula 27
 
Você tem um xerife olhando seu código?
Você tem um xerife olhando seu código?Você tem um xerife olhando seu código?
Você tem um xerife olhando seu código?
 
E so mais um campinho na tela
E so mais um campinho na telaE so mais um campinho na tela
E so mais um campinho na tela
 
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
 
Cyber Ponto
Cyber PontoCyber Ponto
Cyber Ponto
 
TDD para "meros mortais"
TDD para "meros mortais"TDD para "meros mortais"
TDD para "meros mortais"
 
Clean Architecture com .NET Core
Clean Architecture com .NET CoreClean Architecture com .NET Core
Clean Architecture com .NET Core
 
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
 
Produtividade em Desenvolvimento de Software
Produtividade em Desenvolvimento de SoftwareProdutividade em Desenvolvimento de Software
Produtividade em Desenvolvimento de Software
 
5 dicas para diminuir custos em desenvolvimento de softwares
5 dicas para diminuir custos em desenvolvimento de softwares5 dicas para diminuir custos em desenvolvimento de softwares
5 dicas para diminuir custos em desenvolvimento de softwares
 

Último

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 

Último (8)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

O dilema

  • 1. O Dilema Focar na qualidade ou na entrega imediata de novas funcionalidades?
  • 2. Como e até quanto ponderar qualidade de um projeto mediante ao pedido imediatista de urgência de seu P.O..
  • 3. Quem consegue distinguir código bom de código ruim ?
  • 4. Exemplo 01 Public void FazQualquerCoisa(bol condicao) { if (condicao==true) { A(); B(); C(); } }
  • 5. Exemplo 02 Public void FazQualquerCoisa(bol condicao) { // Precisa inicializar a variavel bol retorno = false if(condicao == true) { retorno = true; } elseif( condicao == false) { retorno = false; } // METRO DE SP return retorno; }
  • 6. Refactoring de código = baby steps
  • 7. Métodos pequenos induzem o desenvolvedor pensar 2 vezes antes de inserir mais linhas!
  • 8. Código ruim se espalha igual a vírus!
  • 9. Qual a qualidade dos nossos códigos?
  • 10. 0% = Código escrito por mil macacos
  • 11. 100% = Código impecável
  • 12. Qual grau de qualidade que aumenta nossa produtividade ?
  • 13. Considere uma equipe de Fórmula 1 ... Você acha que a equipe deve abrir mão da qualidade para conseguir maior agilidade ?
  • 14. Quais fatores que as equipes aceitam trabalhar abaixo da qualidade? Experiência no negócio Treinamento + tempo para treinamento Testes Falta de capacidade de avaliação de código ruim Código legado Não acha importante simplificar Tentativa de generalização (Overdesign)
  • 15. “Quem não utiliza testes automatizados é charlatão!” – Klaus
  • 16. JAMAIS diminua a qualidade para alcançar o prazo ! SEMPRE busque a qualidade para ter o seu máximo de produtividade!
  • 17. Muita da sujeira em código esta ligada a dificuldade em se ver, diariamente e de forma simples, o código e sua dependências! Uma falha é mais fácil de ver quando tudo está mais simples!
  • 19. O que fazer então ? – Pair programming – TDD – Simplificar código – Discutir questões porem ter uma opinião forte – Métodos para documentar – Métodos curtos – Testes automatizados – Refactoring – Coding style deve ser sempre revisto e discutido – Errar rápido para aprender(Dojos)
  • 20. Ditado do GO, ”perca suas primeiras cem partidas a mais rápido possível”.

Notas do Editor

  1. Comentar sobre o impacto da qualidade de software vs tempo de entrega. Comentar sobre produtividade e tarefas repetitivas (relatorios) etc
  2. - regras de negócio (experiencia no negocio) - treinamento / tempo - testes - pessoas que olham o código e acham que está bom (Falta de capacidade de avaliaçao de código ruim) - Não acha importante simplificar - tentativa de generalizaçao / overdesign - Fazer mais e mais ... para faturar