coding dojo aplicado ao ambiente organizacional
DESCRIPTION
Apresentação de Coding Dojo realizada na UFRJ preparando a Monografia desse período em Inteligência Coletiva.TRANSCRIPT
![Page 1: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/1.jpg)
Coding Dojo
Aprendizagem Colaborativa aplicado ao Desenvolvimento de Softwares
Avelino Ferreira Gomes Filho
![Page 2: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/2.jpg)
Um brevíssimo histórico sobre o desenvolvimento de softwares
![Page 3: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/3.jpg)
Anos 60 - Caos
![Page 4: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/4.jpg)
A place for cowboy’s
Boehm [2006] descreve que durante os anos 60 popularizou-se as “técnicas”Cowboy Coding.
![Page 5: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/5.jpg)
Cowboy Coding
• Padrão Code and fix.• Forte presença do “dono” do código.• Geração de muito...
![Page 6: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/6.jpg)
![Page 7: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/7.jpg)
Anos 70 – Engenharia e Software
![Page 8: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/8.jpg)
Dois passos essenciais no Desenvolvimento de Software
[ROYCE, 1970]
![Page 9: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/9.jpg)
Os passos de Royce para grandes sistemas
![Page 10: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/10.jpg)
O modelo Cascata
• O termo foi utilizado pela primeira vez pelo DoD.• Definiu o desenvolvimento de software como um processo de engenhariatradicional com fases muito bem definidas.
![Page 11: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/11.jpg)
Abrindo “ ”
NãoNos métodos tradicionais
![Page 12: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/12.jpg)
Royce já descrevia no artigo em 1970
Necessidade de um processo iterativo com
feedback entre as etapas.
![Page 13: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/13.jpg)
Anos 90 – Métodos Ágeis
![Page 14: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/14.jpg)
Críticas ao uso dos métodos tradicionais para desenvolvimento de software
• Falta de feedback entre as etapas do processo.• Descoberta de problemas em etapas tardia quando é mais custoso o conserto.• Falta de adaptabilidade às mudanças do negócio.
[SOMMERVILLE, 1996]
![Page 15: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/15.jpg)
Críticas ao uso dos métodos tradicionais para desenvolvimento de software
• O esforço de planejamento é muito maior do que para outras engenharias.• Software não é previsível.• O “peão” do software é um artista.
[TOLEDO, 2010]
![Page 16: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/16.jpg)
![Page 17: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/17.jpg)
Desenvolvimento Ágil
Para resolver esses e outros problemas, diversos autores propuseram uma série demétodos, frameworks e técnicas desenvolvimento de software queproporcionavam:• A flexibilidade do escopo• Produção iterativa, interativa e incremental de software• Planejamento adaptativo e evolutivo.
[TOLEDO, 2010]
![Page 18: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/18.jpg)
Manifesto Ágil
Em 2001 alguns desses autores se juntaram e produziram o Manifesto Ágil. Lá elesdefinem 4 valores e 12 princípios que devem ser adotados pelos desenvolvedoresde software.
Os 4 valores são:• Indivíduos e interações mais que processos e ferramentas• Software em funcionamento mais que documentação abrangente• Colaboração com o cliente mais que negociação de contratos• Responder a mudanças mais que seguir um plano
[BECK et al., 2001]
![Page 19: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/19.jpg)
Métodos Ágeis
Métodos Ágeis é um nome guarda-chuva para diversos métodos, frameworks,processos e técnicas para desenvolvimento e gerência de projetos de softwarecompatíveis com os valores e princípios definidos no manifesto ágil.
[TOLEDO, 2010]
![Page 20: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/20.jpg)
Abrindo “ ”
Nos métodos ágeis
Não
![Page 21: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/21.jpg)
Manifesto Ágil
Os 4 valores são:• Indivíduos e interações mais que processos e ferramentas• Software em funcionamento mais que documentação abrangente• Colaboração com o cliente mais que negociação de contratos• Responder a mudanças mais que seguir um plano
Os 4 valores não são:• Indivíduos e interações e não processos e ferramentas• Software em funcionamento e não documentação.• Colaboração com o cliente e não negociação de contratos• Responder a mudanças e não seguir um plano
![Page 22: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/22.jpg)
Coding Dojo
Você não precisa de Métodos Ágeis ou TDD para fazer Coding Dojo, mas énecessário quebrar o paradigma tradicional de aprendizagem que podem sercatalizados por esses métodos e técnicas.
![Page 23: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/23.jpg)
Coding Dojo
Antes de falarmos sobre Coding Dojo precisamos falar de 2 conceitos:
• Aprendizagem Baseada em Problemas• Desenvolvimento Guiado por Testes
![Page 24: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/24.jpg)
Aprendizagem Baseada em Problemas
Publicada em 2003 por Diana F Woods na Revista Nacional de Institutos deMedicina dos Estados Unidos.
Nesse método o aluno utiliza casos reais para adquirir e compartilharconhecimento [WOODS, 2003]
O método consiste em:• Análise inicial do problema pelo grupo.• Registro do conhecimento atual dos alunos.• Estudo individual.• Resolução do problema em grupo.
[WOODS, 2003] e [VENANCIO et al, 2012]
![Page 25: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/25.jpg)
Aprendizagem Baseada em Problemas
São métodos adequados ao desenvolvimento de competências e para tal énecessária a criação de situações desafiadoras...
[PINTO apud VENANCIO et al., 2013]
O objetivo principal não é a solução do problema em si e sim utilizar o problemareal para aprimorar conhecimento e entendimento do grupo.
[WOODS, 2003]
![Page 26: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/26.jpg)
O Desenvolvimento Guiado por Testes ou como é mais conhecido TDD (Test DrivenDevelopment) foi proposto por Kent Beck em 2003.
Desenvolvimento Guiado por Testes
![Page 27: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/27.jpg)
Desenvolvimento Guiado por Testes
Quebra de paradigma no processo tradicional de desenvolvimento
No TDD a primeira coisa a ser construída é o Teste e depois o código da aplicação.
![Page 28: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/28.jpg)
Duas regras são fundamentais no Desenvolvimento Guiado por Testes
Desenvolvimento Guiado por Testes
![Page 29: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/29.jpg)
![Page 30: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/30.jpg)
Baby Steps
![Page 31: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/31.jpg)
Dúvidas sobre TDD?
Poste uma pergunta no Quora. O próprio Kent Beck responde.
![Page 32: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/32.jpg)
Coding Dojo
É uma técnica de aprendizagem colaborativa aplicada ao contexto dedesenvolvimento de softwares.
Tem como essência a Aprendizagem baseada em problema e é apoiada peloDesenvolvimento Guiado por Testes.
[DELGADO et al, 2012]
![Page 33: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/33.jpg)
Coding Dojo
O objetivo principal do Coding Dojo não é a solução do desafio em si e simproporcionar um ambiente de aprendizagem colaborativa onde os programadoressejam capazes de aprender com os outros e desenvolver suas habilidades etécnicas de programação
[SATO et al., 2008]
![Page 34: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/34.jpg)
Code Kata
• Coding Dojo nasceu da técnica de Code Kata• Publicado por David Thomas em 2003.
“How do you get to be a great musician? It helps to know the theory, and tounderstand the mechanics of your instrument. It helps to have talent. Butultimately, greatness comes from practicing; applying the theory over and overagain, using feedback to get better every time.
How do you get to be an All-Star sports person? Obviously fitness and talent help.But the great athletes spend hours and hours every day, practicing.
But in the software industry we take developers trained in the theory and throwthem straight in to the deep-end, working on a project”
[THOMAS, 2007]
![Page 35: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/35.jpg)
Code Kata
• Thomas propõe que os problemas devem ser tratados em etapas Katas.• Um dos participantes cria a solução para o problema e a apresenta para osdemais.• Passo a passo semelhante a um kata de caratê.
![Page 36: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/36.jpg)
Code Randori
Laurent Bousavit mais tarde propôs a ideia de Code Randori
As diferenças são:• Não há uma divisão de etapas. A dinâmica é feita em rodadas com um limite detempo.• Os participantes chegam à solução em conjunto• Ninguém sabe previamente a solução.• Inexiste estudo individual
[DELGADO et al, 2012]
![Page 37: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/37.jpg)
Coding Dojo (Randori ou Kata)
Funcionamento:• O grupo se reúne para definir um problema que deverá ser solucionado.• O grupo discute diferentes abordagens para solução do problema.• O grupo realiza a seção de uma sessão de codificação (Coding Dojo)• Retrospectiva para avaliar como foi o aprendizado durante a sessão.
O objetivo principal não é a solução do problema em si. É a disseminação,construção e aquisição de conhecimento em desenvolvimento de softwares.
[SATO et al, 2008]
![Page 38: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/38.jpg)
Coding Dojo (Randori)
Para tornar mais fácil o processo de solução e auxiliar a aprendizagem, o problemaé tradicionalmente dividido em pequenos testes (TDD).
Com isso os participantes conseguem: Nesse teste vamos resolver essa parte doproblema utilizando...
![Page 39: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/39.jpg)
Durante a sessão do Dojo ocorrem diversas rodadas de programação
• Cada rodada de programação dura de 5 até 7 minutos.
• Antes de cada rodada o grupo discute a possível solução.
• Apenas 2 pessoas implementam a solução (Programação em Pares) fazendo o papel de Piloto e co-piloto.
• Ao final do tempo definido para a rodada:
• O grupo deve discutir (dúvidas, crítica, sugestões) a solução apresentada (completa ou incompleta).
• A dupla deve ser trocada.
• Todos devem desempenhar o papel de piloto e co-piloto.
Coding Dojo (Randori)
![Page 40: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/40.jpg)
Coding Dojo (Randori)
É muito importante a realização da retrospectiva após a sessão de Dojo.
O conhecimento é gerado pelo grupo para o grupo. Não existe o dono da solução.
O objetivo não é chegar no final da sessão com uma solução pronta e simdisseminar conteúdo em desenvolvimento de software.
• Trabalho em Equipe• Técnicas de Programação• Linguagens• Frameworks e bibliotecas• Ferramentas• Arquiteturas
![Page 41: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/41.jpg)
Problemas na utilização do DOJO
• Infraestrutura disponível (espaço físico, equipamentos, mesas, projetores)• Desnível muito alto entre os participantes do grupo.• Timidez dos participantes• Fatores motivacionais de cada integrantes do grupo.• Cultura da organização.• Brasileiros são comunicativos [SATO et. al, 2008].• Em grupo muito grandes a dispersão é mais fácil.
![Page 42: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/42.jpg)
Minha motivação para realizar essa monografia
Realizar um estudo de caso de utilização de Coding Dojo no meu trabalho.
![Page 43: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/43.jpg)
Hipótese
As técnicas de aprendizagem colaborativa baseadas em Coding Dojo são capazesde disseminar os conhecimentos necessários para desenvolver softwares deacordo com as especificidades da organização.
![Page 44: Coding Dojo Aplicado ao Ambiente Organizacional](https://reader034.vdocuments.net/reader034/viewer/2022052508/559d2b361a28aba3258b45bc/html5/thumbnails/44.jpg)
Obrigado