profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

142
Profissão Programador: Práticas para Melhoria Contínua Unimonte - Outubro 2013 Agatha Lisboa Gabriel Rubens [email protected] / @gabrielrubenss

Upload: gabriel-rubens

Post on 01-Jul-2015

387 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Profissão Programador: Práticas para

Melhoria Contínua

Unimonte - Outubro 2013

Agatha LisboaGabriel Rubens

[email protected] / @gabrielrubenss

Page 2: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Profissão Programador: Práticas para

Melhoria Contínua

Page 3: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

De onde vem a

palavra pragmático?

Page 4: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

O foco da palestra é ajudar

programadores a se tornarem melhores

Page 5: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Não importa se você trabalha sozinho, em

equipe ou com muitos clientes

Page 6: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Programar é uma arte, e Programar é uma arte, e como programador você é como programador você é

um artesãoum artesão

Page 7: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Transformar requisitos vagos em

um programa. Documentar seu

trabalho

Page 8: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 9: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Ferramentas Ferramentas milagrosasmilagrosas

Page 10: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Metodologias Metodologias que resolvem que resolvem

todos os todos os problemasproblemas

Page 11: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Linguagens de Linguagens de Programação Programação pra todas as pra todas as

situaçõessituações

Page 12: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Sistemas Sistemas Operacionais Operacionais

que são que são melhores que melhores que

os outrosos outros

Page 13: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Não existe bala de prata!Não existe bala de prata!

Page 14: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Não há uma solução que resolva todos os

problemas.

Page 15: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Existem ferramentas/

linguagens/SOs apropriados para

cada situação

Page 16: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Reflita sobre seu trabalho.

Page 17: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Bibliografia

Page 18: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 19: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Uma Filosofia Pragmática

Page 20: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

O que diferencia programadores pragmáticos?

Page 21: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

O gato comeu meu código-fonte

Page 22: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Assuma responsabilidade

Page 23: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Forneça soluções e não desculpas

esfarrapadas.

Page 24: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

EntropiaEntropiaee

DDeterioração do eterioração do softwaresoftware

Page 25: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Teoria da janela Teoria da janela quebradaquebrada

Page 26: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Apagando incêndiosApagando incêndios

Page 27: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Não tolere janelas quebradas

Page 28: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Software Satisfatório

Page 29: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Envolva os usuários na tomada de

decisões

Page 30: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Torne qualidade parte dos requisitos

Page 31: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Software funcionando é a medida primária

de progresso

Page 32: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Programação como uma pintura

Page 33: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Ciência + arte + trabalho manual

Page 34: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Saiba quando parar

Page 35: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 36: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

MVCMVC

Page 37: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Carteira de conhecimentos

Page 38: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Semelhante ao gerenciamento de

uma carteira de investimentos

Page 39: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Construindo uma carteira

Page 40: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Invista regularmente em

sua carteira de conhecimentos

Page 41: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Analise criticamente o que você vê e

ouve

Page 42: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Comunicação

Page 43: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 44: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Conheça o que vai dizer

Page 45: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Conheça pra quem Conheça pra quem vai dizervai dizer

Page 46: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Escolha o momento certo

Page 47: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Seja Seja ouvinteouvinte

Page 48: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)Dica :)

Não é o que você diz Não é o que você diz e a maneira como e a maneira como

dizdiz

Page 49: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Uma Abordagem Pragmática

Page 50: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Males da duplicação

Page 51: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Conceito de manutenção

Page 52: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

NSR - Não Se Repita

DRY - Don't Repeat Yourself

Page 53: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Tipos de duplicação

Page 54: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Duplicação imposta

Page 55: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Facilite a reutilização

Page 56: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Ortogonalidade

Page 57: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Conceito emprestado da

geometria

Page 58: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Sistema ortogonal

Page 59: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Elimine efeitos entre elementos não relacionados

Page 60: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

ReversibilidadeReversibilidade

Page 61: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Não há decisões definitivas

Page 62: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Projéteis Projéteis LuminososLuminosos

Page 63: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Código Rastreador

Page 64: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Use projéteis luminosos para

encontrar seu alvo

Page 65: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Programe Igual ao Domínio do Usuário

Page 66: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Programe em um nível próximo ao

domínio do problema (usuário)

Page 67: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 68: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 69: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Estimando

Page 70: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Estime para evitar surpresas

Page 71: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Que nível de exatidão é

suficientemente exato?

Page 72: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Entenda o que está sendo pedido

Page 73: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Acompanhe sua habilidade de

estimar

Page 74: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Reexamine o cronograma junto

ao código

Page 75: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

O que dizer quando lhe pedirem uma

estimativa?

Page 76: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Refine sempre essa estimativa

Page 77: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Seja Seja FlexívelFlexível

Page 78: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Quadros-Negros

Page 79: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

A melhor forma de se comunicar é visualmente

Page 80: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 81: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 82: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 83: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 84: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Enquanto Você Está Codificando

Page 85: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Programação Baseada no Acaso

Page 86: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 87: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Programar é uma tarefa que envolve muita habilidade e

raciocínio

Page 88: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Quando você não Quando você não presta presta AtençãoAtenção no no que está fazendo!que está fazendo!

(mesmo que você seja muito bom)(mesmo que você seja muito bom)

Page 89: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Refatoração

Page 90: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Refatorar é melhorar um código existente

sem alterar o seu funcionamento

Page 91: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

RefatoraçãoRefatoração

Page 92: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Quando Refatorar?

Page 93: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 94: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

-Código duplicado-Método longo-Classe grande

-Lista de parâmetros longa-Má indentação

E muito mais!

Page 95: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Refatore cedo, refatore sempre

Page 96: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Código Que Seja Fácil de Testar

Page 97: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Testando as Unidades

Page 98: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Devemos ter o hábito de testar

unitariamente nosso software

(procure o xUnit da sua linguagem favorita)

Page 99: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Testando a Integração entre os

Componentes

Page 100: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Testando a Carga que seu Sistema

Suporta

Page 101: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Teste seu software ou seus usuários testarão

Page 102: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 103: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Programadores Profissionais

Escrevem Testes, Ponto Final

http://blog.fragmental.com.br/2007/10/31/programadores-profissionais-escrevem-testes-ponto-final/

Page 104: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Existem várias camadas de teste.

Aprenda para saber quais são necessárias

para seu problema

Page 105: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 106: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Projete para testar

Page 107: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Assistentes do Mal

Page 108: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Não use um código de

assistente que você não entender

Page 109: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Antes do Projeto

Page 110: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

O Abismo dos Requisitos

Page 111: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

1970...[...]ironicamente, Royce defendia um abordagem

iterativa para o desenvolvimento de

software e nem mesmo usou o termo cascata[...]

Page 112: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

[...]Royce originalmente descreve o que é hoje

conhecido como o modelo em cascata como

um exemplo de um método que ele

argumentava ser um risco e um convite para

falhas[...]

Page 113: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 114: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 115: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

RUP você pega toda a documentação no

início.

Page 116: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

RUP você pega toda a documentação no início.

Agile você não documenta nada.

Page 117: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

RUP você pega toda a documentação no início.Agile você não documenta nada.

Será mesmo!?

Page 118: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

P.: RUP você pega toda a documentação no início?

R.: Isso é cascata!

P.: Agile você não documenta nada.

R.: Não há isso em lugar nenhum!

Page 119: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Trabalhe com usuário para

pensar como um usuário

Page 120: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Abstração tem vida mais longa do

que detalhes

Page 121: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Projetos Pragmáticos

Page 122: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Uma visão geral de como ser Pragmático

Page 123: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Uma visão geral de como ser uma equipe

Pragmático

Page 124: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Sem janelas quebradas

Page 125: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Comunique-se

Page 126: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Não se repita

Page 127: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Automação

Page 128: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Saiba quando parar de adicionar

retoques

Page 129: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Teste!

O melhor amigo do Programador

Page 130: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Seja um catalizador de

mudanças

Page 131: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Sopas de pedras

Page 132: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Dica :)

Lembre-se do cenário em larga

escala

Page 133: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Sapos cozidos

Page 134: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 135: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

RUP, XP, Scrum,

Kanban e etc...

Page 136: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Pratique!Pratique!

Page 137: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

DOJOSDOJOS

Page 138: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 139: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Page 140: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Programe!Programe!Programe!

Page 141: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Pra quem só tem martelo todo

problema é um prego!

Page 142: Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013

Profissão Programador: Práticas para

Melhoria Contínua

Unimonte - Outubro 2013

Agatha LisboaGabriel Rubens

[email protected] / @gabrielrubenss