O documento descreve o que é um Coding Dojo, que é um grupo de desenvolvedores que se reúnem periodicamente para praticar técnicas ágeis em programação, como pair programming e TDD. O texto também apresenta detalhes sobre como funciona o Coding Dojo de Joinville, um dos primeiros grupos do gênero no Brasil.
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
AplicandoPrincípiosÁgeisnoCodingDojo
1. Coding Dojo AplicandoPrincípiosÁgeis LorivalSmolskiChapuis MCP, MCTS ASP.NET, MCPD ASP.NET http://blog.lorival.com / lorival@chapuis.com.br XII Semana da Computação Universidade do Estado de Santa Catarina – UDESC 2010
2. Considerações iniciais 2 The Curious Case of the CHAOS Report 2009 – Standish Group http://www.projectsmart.co.uk/the-curious-case-of-the-chaos-report-2009.html
3. Porque treinar? Dojo? O que é um CodingDojo Princípios ágeis: Pair Programming TDD e Refactory Baby Steps Como funciona um CodingDojo Joinville Dojo Considerações finais Dúvidas Agenda 3
4. 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? Por que treinar? 4
5. 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. Fonte: Wikipedia Definição de treinamento 5
6. 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. Dojo 6
8. CodingDojo Um Coding Dojo é uma reunião presencial para estudar e praticardesenvolvimento 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.
9. 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 duaspessoasjuntas, diante do mesmo computador, revezando-se no teclado.
10. 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.
11. 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.
12. Pair programming Desenvolvedores rendemmais 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.
13. 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.
14. TestDrivenDevelopment Desenvolvimento Guiado por Testes, ou simplesmente TDD. 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.
24. 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.
25. Requisitos para o CodingDojo No mínimo 5 participantes Uma sala Um computador com projetor (apenas um) Um problema Um contador de tempo
26. Requisitos dos participantes Desejo de aprender e compartilhar conhecimento Respeito ao próximo Mente sempre aberta Disciplina Comprometimento
59. Dúvidas?CodingDojo LorivalSmolskiChapuis MCP, MCTS ASP.NET, MCPD ASP.NET http://blog.lorival.com / lorival@chapuis.com.br XII Semana da Computação Universidade do Estado de Santa Catarina – UDESC 2010