dojo - EverSantoro.com.br

Transcrição

dojo - EverSantoro.com.br
DESENVOLVIMENTO WEB
COM JAVA
eversantoro
Coding Dojo
Aplicando Princípios Ágeis
Por que treinar?
O Brasil teria conseguido chegar a penta
campeão do mundo sem treino?
O dia-a-dia de um desenvolvedor são os
campeonatos. Quando são os treinos?
Um campeonato serve como treino?
3
Definição de treinamento
A expressão treinamento refere-se à
aquisição
de
conhecimento,
habilidades e competências como
resultado de formação profissional
ou do ensino de habilidades práticas
relacionadas à competências úteis
específicas.
4
Dojo
O dojo ou dojô (pronuncia-se DÔ-JÔ) é o local
onde se treinam artes marciais, especialmente as
nipônicas. Muito mais do que uma simples área, o
dojo deve ser respeitado como se fosse a casa
dos praticantes. Por isso, é comum ver o
praticante fazendo uma reverência antes de
adentrar, tal como se faz nos lares japoneses.
Artes marciais que utilizam dojo:
Judô, Jiu-Jitsu, Ninjutsu, Karatê e Taekwondo.
5
Dojo
6
Coding Dojo
• Um Coding Dojo é uma reunião presencial para estudar e
praticar desenvolvimento de software.
• Seus praticantes estão lá para se divertir e para participar
em prática expontânea de forma a melhorar suas
habilidades.
• Em um ambiente não competivivo e colaborativo, todos os
participantes possuem um objetivo em comum: resolver o
problema que foi proposto no início da sessão.
• Para tanto, é utilizado algumas práticas ágeis como Pair
Programming, Test Driven Development (TDD), Refactoring e
Baby Steps.
Pair programming
Programação em par é uma das práticas mais
conhecidas e mais polêmicas utilizadas pelos que
adotam o Extreme Programming. Ela sugere que todo
e qualquer código produzido no projeto seja sempre
implementado por duas pessoas juntas, diante do
mesmo computador, revezando-se no teclado.
Pair programming
• Será que funciona?
• Já imaginou um avião apenas com o piloto sem
um co-piloto? Você jamais voaria em um avião
assim. Mesmo que você não se preocupe com
isso a companhia aérea se preocupa e muito.
• Piloto e co-piloto possuem visões diferentes.
Pair programming
• Em 1971, em um livro chamado The Psychology of
Computer Programming (Gerald Weinberg) mostrou
que o olho humano tem uma incrível capacidade de
só enxergar aquilo que deseja e, naturalmente,
ignorar aquilo que não quer ver
• “Programadores, se deixados por conta própria,
ignoram os erros mais gritantes, os quais qualquer
pessoa seria capaz de detectar instantaneamente“
• Princípio da dissonância cognitiva.
Pair programming
• Desenvolvedores rendem mais em duplas.
• Disseminação de conhecimento é uma das
importantes características da programação em
par.
• Eleva a capacidade técnica dos desenvolvedores.
• Aumenta a confiança do desenvolvedor e no
software.
Pair programming
Programar em par exige que as pessoas envolvidas
sejam receptivas, compreensivas umas com as
outras, engajadas e, sobretudo, humildes. É
necessário aceitar que somos falíveis para que
possamos programar em par. Weinberg criou o termo
egoless programming, ou seja, programação sem
ego.
Test Driven Development
Desenvolvimento Guiado
simplesmente TDD.
por
Testes,
ou
Consiste numa técnica de desenvolvimento de
software onde primeiro são criados os testes e
somente depois é escrito o código necessário
para passar por eles.
Cenário comum
Escrever o
código de
produção
Escrever testes
automatizados
(ou não)
Executar testes
manuais para
garantir o
funcionamento
Cenário com TDD
Escrever
um teste
Refatorar
Ver ele
passar
Diversas
iterações para
uma única
funcionalidade.
Ver ele
falhar
Fazer ele
passar
Refactoring
Revisão, simplificação e evolução do código.
A história do apartamento sujo...
Baby Steps
• Trabalhe em passos e pense simples.
• Escreva códigos simplificados que atuem e
resolvam apenas o seu respectivo teste.
• Não crie 10 testes e saia codificando. Crie um
teste e faça a codificação para que ele funcione.
• Não crie testes gigantes e codificações de
mesma proporção.
Requisitos para o Coding Dojo
• No mínimo 5 participantes
• Uma sala
• Um computador com projetor (apenas um)
• Um problema
• Um contador de tempo
Requisitos dos participantes
• Desejo de aprender e compartilhar conhecimento
• Respeito ao próximo
• Mente sempre aberta
• Disciplina
• Comprometimento
Como funciona um encontro
 Piloto: Escreve o código
 Co-piloto: Explica o que o Piloto está fazendo e o ajuda
 Rodada:
 Dura 7 minutos
 Piloto se une ao grupo, Co-piloto vira piloto e alguêm
do grupo vira Co-piloto.
 Grupo só fala:
 Teste está verde (passou)
 Antes de escrever um teste (para decidir o que será
feito)
OBRIGADO
POR HOJE É SÓ…