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

Preview:

Citation preview

Profissão Programador: Práticas para

Melhoria Contínua

Semana de Tecnologia FATEC Rubens Lara (Santos) - Outubro 2013

Agatha LisboaGabriel 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

Ferramentas Ferramentas milagrosasmilagrosas

MetodologiaMetodologias que s que

resolvem resolvem todos os todos os

problemasproblemas

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

situaçõessituações

Sistemas Sistemas Operacionais Operacionais

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

os outrosos outros

Não existe bala de Nã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 do Deterioração do softwaresoftware

Teoria da janela Teoria 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éteis Projé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çãoE 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 LisboaGabriel Rubens

agatha.lisboa@gmail.com / @gabrielrubenss