Profissão Programador:
Práticas para
Melhoria Contínua
Semana de Tecnologia FATEC Rubens Lara
(Santos) - Outubro 2013
Agatha Lisboa
Gabriel Rubens
agatha.lisboa@gmail.com / @gabrielrubenss
Profissão Programador:
Práticas para
Melhoria
Contínua
De onde vem a
palavra pragmático?
O foco da palestra é
ajudar
programadores a se
tornarem melhores
Não importa se
você trabalha
sozinho, em equipe
ou com muitos
clientes
Programar é uma
arte, e como
programador você é
um artesão
Transformar
requisitos vagos em
um programa.
Documentar seu
trabalho
FerramentasFerramentas
milagrosasmilagrosas
MetodologiaMetodologia
s ques que
resolvemresolvem
todos ostodos os
problemasproblemas
Linguagens deLinguagens de
ProgramaçãoProgramação
pra todas aspra todas as
situaçõessituações
SistemasSistemas
OperacionaisOperacionais
que sãoque são
melhores quemelhores que
os outrosos outros
Não existe bala deNão existe bala de
prata!prata!
Não há uma solução
que resolva todos
os problemas.
Existem
ferramentas/
linguagens/SOs
apropriados para
cada situação
Dica :)
Reflita sobre seu
trabalho.
Bibliografia
Uma Filosofia
Pragmática
O que diferencia
programadores
pragmáticos?
O gato comeu
meu
código-fonte
Assuma
responsabilidade
Dica :)
Forneça soluções
e não desculpas
esfarrapadas.
Entropia de
software
Deterioração doDeterioração do
softwaresoftware
Teoria da janelaTeoria da janela
quebradaquebrada
Apagando incêndiosApagando incêndios
Dica :)
Não tolere
janelas
quebradas
Sopas de pedras e
sapos cozidos
Dica :)
Seja um
catalizador de
mudanças
Sopas de pedras
Dica :)
Lembre-se do
cenário em larga
escala
Software
Satisfatório
Envolva os usuários
na tomada de
decisões
Dica :)
Torne qualidade
parte dos
requisitos
Programação como
uma pintura
Ciência + arte +
trabalho manual
Saiba quando parar
MVCMVC
Carteira de
conhecimentos
Semelhante ao
gerenciamento de
uma carteira de
investimentos
Construindo uma
carteira
Dica :)
Invista
regularmente em
sua carteira de
conhecimentos
Dica :)
Analise
criticamente o
que você vê e
ouve
Comunicação
Conheça o que vai
dizer
Conheça pra quem
vai dizer
Escolha o momento
certo
Seja ouvinte
Dica :)Dica :)
É o que você diz eÉ o que você diz e
a maneira como diza maneira como diz
Uma Abordagem
Pragmática
Males da duplicação
Conceito de
manutenção
Dica :)
NSR - Não Se
Repita
DRY - Don't Repeat Yourself
Tipos de duplicação
Duplicação imposta
Dica :)
Facilite a
reutilização
Ortogonalidade
Conceito
emprestado da
geometria
Sistema ortogonal
Dica :)
Elimine efeitos
entre elementos
não relacionados
ReversibilidadeReversibilidade
Dica :)
Não há decisões
definitivas
ProjéteisProjéteis
LuminososLuminosos
Código Rastreador
Dica :)
Use projéteis
luminosos para
encontrar seu
alvo
Programe Igual ao
Domínio do Usuário
Dica :)
Programe em um
nível próximo ao
domínio do
problema
(usuário)
Estimando
Dica :)
Estime para
evitar surpresas
Que nível de
exatidão é
suficientemente
exato?
Entenda o que está
sendo pedido
Acompanhe sua
habilidade de
estimar
Dica :)
Reexamine o
cronograma
junto ao código
O que dizer quando
lhe pedirem uma
estimativa?
Seja Flexível
Quadros-Negros
A melhor forma de
se comunicar é
visualmente
Enquanto Você Está
Codificando
Programação
Baseada no Acaso
Programar é uma
tarefa que envolve
muita habilidade e
raciocínio
Refine sempre essa
estimativa
Refatoração
Refatorar é
melhorar um código
existente sem
alterar o seu
funcionamento
Quando Refatorar?
-Código duplicado
-Método longo
-Classe grande
-Lista de parâmetros
longa
-Má indentação
E muito mais!
Dica :)
Refatore cedo,
refatore sempre
Código Que Seja
Fácil de Testar
Testando as
Unidades
Devemos ter o
hábito de testar
unitariamente
nosso software
(procure o xUnit da sua linguagem favorita)
Testando a
Integração entre os
Componentes
Dica :)
Teste seu
software ou seus
usuários testarão
Programadores
Profissionais
Escrevem Testes,
Ponto Final
http://blog.fragmental.com.br/2007/10/31/programadores-profissionais-escrevem-testes-ponto-final/
Existem várias
camadas de teste.
Aprenda para saber
quais são
necessárias para
seu problema
Dica :)
Projete para
testar
Assistentes do Mal
Dica :)
Não use um
código de
assistente que
você não
entender
Antes do Projeto
O Abismo dos
Requisitos
RUP você pega toda
a documentação no
início.
RUP você pega toda a documentação no início.
Agile você não
documenta nada.
RUP você pega toda a documentação no início.
Agile você não documenta nada.
Será mesmo!?
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!
Dica :)
Trabalhe com
usuário para
pensar como um
usuário
Dica :)
Abstração tem
vida mais longa
do que detalhes
Projetos
Pragmáticos
Uma visão geral de
como ser
Pragmático
Uma visão geral de
como ser uma
equipe Pragmático
Dica :)
Sem janelas
quebradas
Dica :)
Comunique-se
Dica :)
Não se repita
Dica :)
Automação
Dica :)
Saiba quando
parar de
adicionar
retoques
Dica :)
Teste!
O melhor amigo do Programador
Pratique!Pratique!
RUP, XP,
Scrum,
Kanban e
etc...
DOJOSDOJOS
Dica :)
Sapos cozidos
Programe!
Programe!
Programe!
Pra quem só tem
martelo todo
problema é um
prego!
Profissão Programador:
Práticas para
Melhoria Contínua
Semana de Tecnologia FATEC Rubens Lara
(Santos) - Outubro 2013
Agatha Lisboa
Gabriel Rubens
agatha.lisboa@gmail.com / @gabrielrubenss

Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013