SlideShare uma empresa Scribd logo
O Programador Pragmático
Andrew Hunt & David Thomas
Uma empresa
C.E.S.A.R
Tadeu Marinho
tadeu.marinho@pitang.com
Agenda
O Livro;
Introdução;
Uma filosofia pragmática;
Uma abordagem pragmática;
As ferramentas básicas;
Paranóia pragmática;
Seja flexível;
Enquanto você está codificando;
Antes do projeto;
Projetos pragmáticos.
O Livro
ISBN: 8577807002;
ISBN-13: 9788577807000;
Idioma: Livro em português;
Encadernação: Brochura;
Idioma: Português;
Ano de Lançamento: 2009;
Número de páginas: 343.
Definição
Pragmático:
– Do latim: pragmaticus - “Habilidoso no trabalho”;
– Do grego: “πραττειν” - “fazer”.
Desenvolvedores
Ser único:
– Pontos fortes e fracos;
– Preferências e aversões.
Programador Pragmático
Características:
– Adoção antecipada / adaptação rápida;
– Inquisitivo;
– Pensador crítico;
– Realista;
– Pau para toda obra.
Executam o trabalho e o executam bem!
Dica 1
Preocupe-se com seu trabalho.
Dica 2
Reflita sobre seu trabalho.
Kaizen
Projeto:
– Fazer continuamente diversas pequenas melhorias;
Pessoas:
– Empenhar-se continuamente em aprimorar as habilidades;
– Adicionar novas ferramentas às que já usa.
Uma Filosofia Pragmática
Dica 3
Forneça opções, não dê desculpas esfarrapadas.
Dica 4
Não tolere janelas quebradas.
Dica 5
Seja um catalisador da mudança.
Dica 6
Lembre-se do cenário em larga escala.
Dica 7
Torne a qualidade parte dos requisitos.
Dica 8
Invista regularmente em sua carteira de conhecimentos.
Carteira de Investimentos
Investidores sérios investem regularmente, como um hábito;
A diversidade é a chave para o sucesso a longo prazo;
Investidores astutos têm uma carteira equilibrada com
investimentos conservadores e de alto risco e remuneração;
Os investidores tentam comprar barato e vender caro para
obter o máximo de retorno;
As carteiras devem ser reexaminadas e reestruturadas
periodicamente.
Carteira de Conhecimentos
Invista regularmente;
Diversifique;
Gerencie o risco;
Compre barato, venda caro;
Reexamine e reestruture.
Sugestões
Aprenda pelo menos uma nova linguagem todo ano;
Leia um livro técnico a cada trimestre;
Leia também livros não técnicos;
Tenha aulas;
Participe de grupos de usuários locais;
Experimente ambientes diferentes;
Mantenha-se informado;
Mantenha-se conectado.
Dica 9
Analise criticamente o que você lê e ouve.
Pensamento Crítico
O cuidado e a consulta com especialistas:
– Saiba o que quer perguntar;
– Seja específico;
– Formule sua pergunta cuidadosamente e polidamente;
– Preciso de ajuda não é suficiente;
– Tenha paciência ao esperar um retorno.
Dica 10
É o que você diz e a maneira como diz.
Comunique-se
Saiba o que você quer dizer;
Conheça seu público-alvo;
Escolha seu momento;
Escolha um estilo;
Dê uma boa aparência.
Envolva seu público-alvo;
Seja um ouvinte;
Dê retorno às pessoas.
Seja ASTUTO
O que você quer que eles Aprendam?
Qual é Seu interesse no que você tem a dizer?
Seu Trabalho tem que nível de sofisticação?
Que nível de detalhes eles Usam?
Quem você quer que Tenha a posse da informação?
Como você pode motivá-los a Ouví-lo?
Email
Releia;
Verifique a ortografia;
Mantenha um formato simples;
Correspondência formatada;
Crédito de citações;
Verifique a lista de destinatários.
Uma Abordagem Pragmática
Dica 11
NSR - Não se repita.
Os Males da Duplicação
Princípios NSR:
– Cada bloco de informações deve ter uma representação oficial,
exclusiva e sem ambigüidades dentro de um sistema.
Como Surge a Duplicação
Duplicidade imposta:
– Acham que não tem escolhas - o ambiente parece pedir.
Duplicação inadvertida:
– Não percebem que estão duplicando informações.
Duplicação impaciente:
– Preguiça e duplicam porque parece ser mais fácil.
Duplicidade entre desenvolvedores:
– Várias pessoas duplicam por desconhecer o sistema como um todo.
Duplicidade Imposta
Várias representações das informações;
Documentação no código;
Documentação e código;
Problemas de linguagem;
Duplicação Impaciente
Atalhos causam grandes atrasos;
Fácil de detectar e manipular;
Exige disciplina e disposição de se preocupar antes.
Duplicação Entre Desenvolvedores
Mais difícil de detectar e manipular;
Pode passar despercebida por anos;
Encorajar comunicação ativa e freqüente entre
desenvolvedores.
Dica 12
Facilite a reutilização.
Ortogonalidade
Termo emprestado da geometria;
Representa um tipo de independência ou desvinculação;
Duas ou mais coisas são ortogonais quando alterações em uma
não afetam as outras;
Vantagens:
– Maior produtividade;
– Menor risco.
Diagramas de Camadas
Interface de Usuário
Acesso ao Banco de
Dados
Mecanismo de
Relatório
Lógica de
Negócio
Estrutura do Aplicativo
Biblioteca C Padrão
Sistema Operacional
Dica 13
Elimine efeitos entre elementos não relacionados.
Codificando
Mantenha seu código desvinculado;
Evite dados globais;
Evite funções semelhantes;
Reversibilidade
“Nada é mais perigoso do que uma idéia quando
ela é a única que você tem.”
Emil-Auguste Chartier, Propos sur la religion, 1983
Dica 14
Não há decisões definitivas.
Dica 15
Use projéteis luminosos para encontrar o alvo.
Vantagens
Os usuários podem ver algo funcionando antes;
Os desenvolvedores constroem uma estrutura na qual podem
trabalhar;
Você terá uma plataforma de integração;
Você terá algo para demonstrar;
Você sentirá melhor o progresso;
Dica 16
Crie protótipos para aprender.
Dica 17
Programe em um nível próximo ao domínio do problema.
Dica 18
Estime para evitar surpresas.
Estimando
Entenda o que está sendo pedido;
Construa um modelo do sistema;
Divida o modelo em componentes;
Dê a cada parâmetro um valor;
Calcule respostas;
Acompanhe sua habilidade em estimar.
Dica 19
Reexamine o cronograma junto ao código.
As Ferramentas Básicas
Dica 20
Mantenha as informações em texto simples.
Dica 21
Use o poder dos shells de comando.
Dica 22
Use bem o seu editor.
O Que Fazer?
Quem fez alterações nessa linha de código;
Qual é a diferença entre a versão atual e da última semana?
Quantas linhas de código alteramos nessa versão?
Que arquivos foram alterados com mais freqüência?
Dica 23
Use sempre o controle de código-fonte.
Dica 24
Corrija o problema, esqueça o culpado.
Dica 25
Não entre em pânico.
Dica 26
“select”não está com defeito.
Dica 27
Não suponha – teste.
Dica 28
Aprenda uma linguagem de manipulação de texto.
Dica 29
Escreva um código que crie códigos.
Paranóia Pragmática
Dica 30
Você não conseguirá criar um software perfeito.
Dica 31
Projete com contratos.
Dica 32
Encerre antecipadamente.
Dica 33
Se não pode acontecer, use asserções para assegurar que não
aconteça.
Dica 34
Use exceções para problemas excepcionais.
Dica 35
Acabe o que começou.
Seja Flexível
Dica 36
Reduza a vinculação entre módulos.
Dica 37
Configure, não integre.
Dica 38
Coloque as abstrações no código e os detalhes em metadados.
Dica 39
Analise o fluxo de trabalho para melhorar a concorrência.
Caipirinha
Passos:
– Descasque os limões;
– Corte em quatro partes cada limão;
– Tire os caroços e o filete branco do meio dos limões;
– Esprema alguns limões diretamente no copo com açúcar;
– Pique gelo;
– Acrescente o gelo picado e a cachaça ao copo;
– Agite bem;
– Sirva.
Concorrência
Descascar limões
Cortar limões
Remover caroços e filetes
brancos
Picar gelo
Espremer limões
Colocar cachaça em um
copo
Colocar açúcar em um
copo
Colocar gelo picado em
um copo
Agitar bem
Sirva
Dica 40
Projete usando serviços.
Dica 41
Projete sempre pensando na concorrência.
Dica 42
Separe as visualizações dos modelos.
Dica 43
Use quadros-negros para coordenar o fluxo de trabalho.
Enquanto Você Está
Codificando
Dica 44
Não programe por coincidência.
Programando Deliberadamente
Esteja sempre consciente do que está fazendo;
Não codifique às cegas;
Aja de acordo com um plano;
Confie apenas em coisas confiáveis;
Documente suas suposições;
Não teste apenas seu código;
Priorize seu esforço;
Não seja escravo da história.
Dica 45
Estime a ordem de seus algoritmos.
Dica 46
Teste suas estimativas.
Dica 47
Refatore cedo, refatore sempre.
Quando Refatorar
Duplicação;
Projeto não ortogonal;
Conhecimento desatualizado;
Desempenho.
Dica 48
Projete para testar.
Dica 49
Teste seu software ou seus usuários testarão.
Dica 50
Não use o código de assistente que você não entender.
Antes de Começar
Dica 51
Não colete requisitos, cave-os.
Dica 52
Trabalhe com um usuário para pensar como um usuário.
Dica 53
Abstrações tem vida mais longa do que detalhes.
Dica 54
Use um glossário do projeto.
Dica 55
Não pense fora da caixa - encontre a caixa.
Desafio 1
Conectar todos os pontos do quebra-cabeça a seguir e voltar ao
ponto inicial com apenas três linhas retas – sem tirar sua
caneta do papel ou executar duas vezes a mesma etapa.
Resposta
Desafio 2
Você tem 10 soldados. Forme 5 filas com 4 soldados em cada
uma.
Resposta
Dica 56
Só comece quando estiver pronto.
Dica 57
Algumas coisas são fáceis de fazer, mas não de descrever.
Dica 58
Não seja escravo dos métodos formais.
Dica 59
Ferramentas caras não produzem software melhores.
Projetos Pragmáticos
Dica 60
Organize as equipes com base na funcionalidade.
Dica 61
Não use procedimentos manuais.
Dica 62
Teste cedo. Teste sempre. Teste automaticamente.
Dica 63
A codificação só estará concluída após todos os testes serem
executados.
Dica 64
Use sabotadores para testar seus testes.
Dica 65
Teste a cobertura de estados e não a cobertura de código.
Dica 66
Encontre os erros apenas uma vez.
Dica 67
Trate o português simplesmente como outra linguagem de
programação.
Dica 68
Construa a documentação no código, não acrescente como
complemento.
Dica 69
Exceda gentilmente as expectativas de seus usuários.
Dica 70
Assine seu trabalho.
Tadeu Marinho
81 3134.5875
tadeu.marinho@pitang.com
www.pitang.com.br

Mais conteúdo relacionado

PDF
Everside Health's $164M pitch deck
PDF
Canary Tech - 2022.pdf
PDF
COMP 4026 Lecture 6 Wearable Computing
PPTX
Game Studio Management: Making It Great
PDF
Rippling Investor Memo: $45M Series A — with no pitch deck!
PDF
Sira Medical
PDF
Slush 100 pitch competition final round SendBird
PPTX
We don't need no stinkin' badges: How to re-invent reality without gamification
Everside Health's $164M pitch deck
Canary Tech - 2022.pdf
COMP 4026 Lecture 6 Wearable Computing
Game Studio Management: Making It Great
Rippling Investor Memo: $45M Series A — with no pitch deck!
Sira Medical
Slush 100 pitch competition final round SendBird
We don't need no stinkin' badges: How to re-invent reality without gamification

Semelhante a O Programador Pragmático (20)

PPT
Seja Um Programador Pragmatico
PPT
Programação Pragmática
PDF
O programador pragmático
PDF
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
ODP
Introdução às metodologias ágeis de desenvolvimento de software
PPTX
Conceitos Básicos Sobre Metodologias Ágeis para Desenvolvimento de Software
PDF
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
PDF
Euquipe, evoluindo como dev
ODP
Introdução às metodologias ágeis
PDF
Implementando métodos ágeis em organizações públicas: como começar
PPTX
Desenvolvimento ágil de software
PPT
Agilidade - Palestra -Prodabel
PPT
The Mythical Man-Month
PPT
The Mythical Man-Month
ODP
Governança Ágil - Ágiles 2009
PDF
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
PDF
Métodos Ágeis - Aula02
PPT
Introdução a Métodos Ágeis de Desenvolvimento de Software
PPT
Processos de Software - 101
PDF
Metodologias de desenvolvimento - Waterfall vs Agile
Seja Um Programador Pragmatico
Programação Pragmática
O programador pragmático
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Introdução às metodologias ágeis de desenvolvimento de software
Conceitos Básicos Sobre Metodologias Ágeis para Desenvolvimento de Software
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Euquipe, evoluindo como dev
Introdução às metodologias ágeis
Implementando métodos ágeis em organizações públicas: como começar
Desenvolvimento ágil de software
Agilidade - Palestra -Prodabel
The Mythical Man-Month
The Mythical Man-Month
Governança Ágil - Ágiles 2009
Modelagem Ágil - UaiJug TechDays 2013 - Uberlândia MG
Métodos Ágeis - Aula02
Introdução a Métodos Ágeis de Desenvolvimento de Software
Processos de Software - 101
Metodologias de desenvolvimento - Waterfall vs Agile
Anúncio

Mais de Tadeu Marinho (13)

PDF
Lidando com percepções, emoções e motivação utilizando Agilidade
PDF
Lidando com percepções, emoções e motivação utilizando Agilidade
PDF
Aspectos culturais na transformação digital, quais paradigmas precisam ser qu...
PDF
O olhar cultural do Agile Coach
PDF
9 Meses de Merit Money, O que Aprendemos com Isso?
PDF
Agile brazil 2018
PDF
9 Meses de Merit Money, o que Aprendemos com Isso?
PDF
TDC POA 2017 Speedwraps
PDF
Os novos desafios da gestão no século da complexidade.
PDF
Potencializando a cultura de feedbacks horizontais através de SpeedWraps
PDF
O que a gestão pode fazer para te ajudar a realizar o seu melhor trabalho?
PDF
Selenium
PDF
Keep Calm and Study On
Lidando com percepções, emoções e motivação utilizando Agilidade
Lidando com percepções, emoções e motivação utilizando Agilidade
Aspectos culturais na transformação digital, quais paradigmas precisam ser qu...
O olhar cultural do Agile Coach
9 Meses de Merit Money, O que Aprendemos com Isso?
Agile brazil 2018
9 Meses de Merit Money, o que Aprendemos com Isso?
TDC POA 2017 Speedwraps
Os novos desafios da gestão no século da complexidade.
Potencializando a cultura de feedbacks horizontais através de SpeedWraps
O que a gestão pode fazer para te ajudar a realizar o seu melhor trabalho?
Selenium
Keep Calm and Study On
Anúncio

Último (19)

PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
COBITxITIL-Entenda as diferença em uso governança TI
Aula04-Academia Heri- Tecnologia Geral 2025
Processos na gestão de transportes, TM100 Col18
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Apple Pippin Uma breve introdução. - David Glotz
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Custos e liquidação no SAP Transportation Management, TM130 Col18
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Aula 18 - Manipulacao De Arquivos python
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...

O Programador Pragmático