SlideShare uma empresa Scribd logo
1 de 12
POG
Conceitos e Definição
Introdução
• Esta apresentação é destinada a iluminados.
• Se você está aqui, sinta-se um privilegiado.
Incremental Patching Debug
A versão autal parou?
• Pegue o zip com a versão antiga
• Comece tudo novamente
• Substituição de arquivos é o suficiente
Nunca use:
• Deputação
• Versionamento
• Testes automatizados
Resposta padão de webmaster baseado em POG:
“Limpe o histórico e o cache e pressione Ctrl+F5 que funciona”
Zipomatic Versioning
Precisa guardar versões?
• User arquivos zip
• NomeDoProjeto_Data.zip
• Pasta de zips compartilhada
• Funciona e não dá “dor de cabeça”
Nunca use:
• Ferramentas de versionamento
• SVN é coisa do diabo
• GIT nem o Diabo quer
Resposta padrão de programador baseado em POG:
“Na minha máquina funciona”
Chucknorrian Development
Quer saber se o código funciona?
• Se compilou, funciona!
• Se você testa é porque não confia no seu código.
• Se não confia, é um fraco!
• Do compilador direto para produção
Nunca use:
• Processo de teste
• Testes automatizados
• TDD (Tudo do Diabo!)
Resposta do programador 100% pragmatizado em POG:
“O importante é fazer funcionar.”
Commented Code Implementation
O programa está dando problema?
• Comentar resolve
• Muito usado para resolver problema no código dos outros
• Comente cada linha suspeita, compile e rode até funcionar.
• Insistimento
Programador para outro programador só esperando o problema voltar:
“Bom, deixa estourar a bomba, quando vierem me procurar eu vejo o
que faço”
Controller Confusion
• Elimine o M o padrão MVC, acrescente um C e coloque tudo no Controle,
criando assim o VCC
• View Controller Confusion
• Os POGramadores mais avançados são capazes de ignorar o V e ficar
apenas com o CCC
• Chaotic Controller Confusion
Gerente sem noção tentando acalmar o desenvolvedor sobre projeto MOG
com prazo estourado:
“Não se preocupe, nenhum sistema ‘entra redondo’. O importante agora é
entrar em produção, depois consertamos os erros!”
Princípios
Enjambração
• Pega o sistema help desk e transforma em sistema financeiro.
Reflexão
• Copia o código da Apache, ninguém vai reclamar.
Redireção
• A culpa não é minha
Insistimento
• Compila de novo que dessa vez vai dar certo.
Onisciência Finita
• Nada de curso, usa o que você sabe.
Programador POG, logo pela manhã, com copo de café na mão:
“É só reiniciar que funciona.”
Requisitos Para Usar POG
• Pessoas não qualificadas se intometendo no desenvolvimento
• Equipe apática
• Profissionais superestimados
• Prazos absurdamente suicidas
• Aproximação do fim do expediente
• Véspera de feriado ou fim de semana
• Sistemas originalmente mal projetados
• Aparecimento caótico de requisitos
• Processo Go Horse!
• Ausência de café
Java, sobre POG:
“java.lang.NullPointerException”
Histórico da POG
A primeira POG da história foi criada pelo Papa Gregório XIII
• Nosso calendário: 365 dias
• Translação da Terra: 365,25 dias
• 6 Horas a mais por ano
Corrige o sistema?
Claro que não!
Bota um dia a mais a cada 4 anos e chama de ano bissexto!
29 de Fevereiro – Dia Internacional da POG
Engenheiros do Havaí sobre POG:
“O Papa é POG”
Papa Gregório XIII – A Lenda!
Definição
POG
Programação Orientada a Gambiarras

Mais conteúdo relacionado

Mais procurados

MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingSamanta Cicilia
 
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva 3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva minastestingconference
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesSamanta Cicilia
 
Automatizando testes funcionais com a técnica BDD
Automatizando testes funcionais com a técnica BDDAutomatizando testes funcionais com a técnica BDD
Automatizando testes funcionais com a técnica BDDFernanda Ferreira
 
Quero ser um caçador de bugs
Quero ser um caçador de bugsQuero ser um caçador de bugs
Quero ser um caçador de bugsSarah Pimentel
 
Existe Vida além do FTP!
Existe Vida além do FTP! Existe Vida além do FTP!
Existe Vida além do FTP! Gustavo Pereira
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvemMinas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvemStefan Teixeira
 
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes AutomatizadosScrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes AutomatizadosStefan Teixeira
 
QConRio 2014 - Uso de Headless Browsers em Testes Automatizados
QConRio 2014 - Uso de Headless Browsers em Testes AutomatizadosQConRio 2014 - Uso de Headless Browsers em Testes Automatizados
QConRio 2014 - Uso de Headless Browsers em Testes AutomatizadosStefan Teixeira
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDDPHP Day Curitiba
 
Ideais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverIdeais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverStefan Teixeira
 
Nunca foi tao facil testar
Nunca foi tao facil testarNunca foi tao facil testar
Nunca foi tao facil testarElias Nogueira
 
Boas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDBoas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDJony Ferreira dos Santos
 
Testes de software
Testes de softwareTestes de software
Testes de softwareVitor Castro
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testeselliando dias
 
Tester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoTester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoLeonardo Galani
 

Mais procurados (19)

MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression Testing
 
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva 3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
 
Automatizando testes funcionais com a técnica BDD
Automatizando testes funcionais com a técnica BDDAutomatizando testes funcionais com a técnica BDD
Automatizando testes funcionais com a técnica BDD
 
Quero ser um caçador de bugs
Quero ser um caçador de bugsQuero ser um caçador de bugs
Quero ser um caçador de bugs
 
Existe Vida além do FTP!
Existe Vida além do FTP! Existe Vida além do FTP!
Existe Vida além do FTP!
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvemMinas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
 
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes AutomatizadosScrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
Scrum Gathering Rio 2014 - Melhorando sua Estratégia de Testes Automatizados
 
QConRio 2014 - Uso de Headless Browsers em Testes Automatizados
QConRio 2014 - Uso de Headless Browsers em Testes AutomatizadosQConRio 2014 - Uso de Headless Browsers em Testes Automatizados
QConRio 2014 - Uso de Headless Browsers em Testes Automatizados
 
Zend Framework Estrutura e TDD
Zend Framework Estrutura e TDDZend Framework Estrutura e TDD
Zend Framework Estrutura e TDD
 
Ideais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriverIdeais Cowabunga - Headless Testing com GhostDriver
Ideais Cowabunga - Headless Testing com GhostDriver
 
Nunca foi tao facil testar
Nunca foi tao facil testarNunca foi tao facil testar
Nunca foi tao facil testar
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
 
Onde posso ir como “dev”
Onde posso ir como “dev”Onde posso ir como “dev”
Onde posso ir como “dev”
 
Boas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDBoas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDD
 
Testes de software
Testes de softwareTestes de software
Testes de software
 
Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por TestesDesenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
 
Tester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoTester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitido
 

Semelhante a POG - Definição e Conceitos

Metodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoMetodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoAchiles Camilo
 
Palestra Campus Party Brasil 2014 sobre Overclock e Otimizações em Android
Palestra Campus Party Brasil 2014 sobre Overclock e Otimizações em AndroidPalestra Campus Party Brasil 2014 sobre Overclock e Otimizações em Android
Palestra Campus Party Brasil 2014 sobre Overclock e Otimizações em AndroidProfessor Isidro
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
 
Seja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoSeja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoAlexandre Andrade
 
Front-end javascript unit testing and mock
Front-end javascript unit testing and mockFront-end javascript unit testing and mock
Front-end javascript unit testing and mockfelipefsilva
 
Verdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaVerdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaLivia Gabos
 
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 MGNeubio Ferreira
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumRafael Souza
 
Agilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da AgilidadeAgilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da AgilidadeWagner Mendes Voltz Fusca
 
TDD com Python e App Engine
TDD com Python e App EngineTDD com Python e App Engine
TDD com Python e App EngineRicardo Bánffy
 
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
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de softwareLaura_ifpe
 
Velozes e furiosos com extreme programming.
Velozes e furiosos com extreme programming. Velozes e furiosos com extreme programming.
Velozes e furiosos com extreme programming. Alessandro Binhara
 

Semelhante a POG - Definição e Conceitos (20)

Programação Orientada a Gambiarra
Programação Orientada a GambiarraProgramação Orientada a Gambiarra
Programação Orientada a Gambiarra
 
DDD + BDD + TDD + Scrum
DDD + BDD + TDD + ScrumDDD + BDD + TDD + Scrum
DDD + BDD + TDD + Scrum
 
Metodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoMetodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introdução
 
Palestra Campus Party Brasil 2014 sobre Overclock e Otimizações em Android
Palestra Campus Party Brasil 2014 sobre Overclock e Otimizações em AndroidPalestra Campus Party Brasil 2014 sobre Overclock e Otimizações em Android
Palestra Campus Party Brasil 2014 sobre Overclock e Otimizações em Android
 
Dev vs. Ops
Dev vs. OpsDev vs. Ops
Dev vs. Ops
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
Seja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoSeja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinho
 
Front-end javascript unit testing and mock
Front-end javascript unit testing and mockFront-end javascript unit testing and mock
Front-end javascript unit testing and mock
 
Verdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostariaVerdades e mitos sobre testes que eu gostaria
Verdades e mitos sobre testes que eu gostaria
 
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
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e Scrum
 
Agilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da AgilidadeAgilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da Agilidade
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
TDD com Python e App Engine
TDD com Python e App EngineTDD com Python e App Engine
TDD com Python e App Engine
 
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
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Velozes e furiosos com extreme programming.
Velozes e furiosos com extreme programming. Velozes e furiosos com extreme programming.
Velozes e furiosos com extreme programming.
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 

POG - Definição e Conceitos

  • 2. Introdução • Esta apresentação é destinada a iluminados. • Se você está aqui, sinta-se um privilegiado.
  • 3. Incremental Patching Debug A versão autal parou? • Pegue o zip com a versão antiga • Comece tudo novamente • Substituição de arquivos é o suficiente Nunca use: • Deputação • Versionamento • Testes automatizados Resposta padão de webmaster baseado em POG: “Limpe o histórico e o cache e pressione Ctrl+F5 que funciona”
  • 4. Zipomatic Versioning Precisa guardar versões? • User arquivos zip • NomeDoProjeto_Data.zip • Pasta de zips compartilhada • Funciona e não dá “dor de cabeça” Nunca use: • Ferramentas de versionamento • SVN é coisa do diabo • GIT nem o Diabo quer Resposta padrão de programador baseado em POG: “Na minha máquina funciona”
  • 5. Chucknorrian Development Quer saber se o código funciona? • Se compilou, funciona! • Se você testa é porque não confia no seu código. • Se não confia, é um fraco! • Do compilador direto para produção Nunca use: • Processo de teste • Testes automatizados • TDD (Tudo do Diabo!) Resposta do programador 100% pragmatizado em POG: “O importante é fazer funcionar.”
  • 6. Commented Code Implementation O programa está dando problema? • Comentar resolve • Muito usado para resolver problema no código dos outros • Comente cada linha suspeita, compile e rode até funcionar. • Insistimento Programador para outro programador só esperando o problema voltar: “Bom, deixa estourar a bomba, quando vierem me procurar eu vejo o que faço”
  • 7. Controller Confusion • Elimine o M o padrão MVC, acrescente um C e coloque tudo no Controle, criando assim o VCC • View Controller Confusion • Os POGramadores mais avançados são capazes de ignorar o V e ficar apenas com o CCC • Chaotic Controller Confusion Gerente sem noção tentando acalmar o desenvolvedor sobre projeto MOG com prazo estourado: “Não se preocupe, nenhum sistema ‘entra redondo’. O importante agora é entrar em produção, depois consertamos os erros!”
  • 8. Princípios Enjambração • Pega o sistema help desk e transforma em sistema financeiro. Reflexão • Copia o código da Apache, ninguém vai reclamar. Redireção • A culpa não é minha Insistimento • Compila de novo que dessa vez vai dar certo. Onisciência Finita • Nada de curso, usa o que você sabe. Programador POG, logo pela manhã, com copo de café na mão: “É só reiniciar que funciona.”
  • 9. Requisitos Para Usar POG • Pessoas não qualificadas se intometendo no desenvolvimento • Equipe apática • Profissionais superestimados • Prazos absurdamente suicidas • Aproximação do fim do expediente • Véspera de feriado ou fim de semana • Sistemas originalmente mal projetados • Aparecimento caótico de requisitos • Processo Go Horse! • Ausência de café Java, sobre POG: “java.lang.NullPointerException”
  • 10. Histórico da POG A primeira POG da história foi criada pelo Papa Gregório XIII • Nosso calendário: 365 dias • Translação da Terra: 365,25 dias • 6 Horas a mais por ano Corrige o sistema? Claro que não! Bota um dia a mais a cada 4 anos e chama de ano bissexto! 29 de Fevereiro – Dia Internacional da POG Engenheiros do Havaí sobre POG: “O Papa é POG”
  • 11. Papa Gregório XIII – A Lenda!