Impressões do 1º Coding Dojo do MSDev-ES

26 04 2010

No sábado passado (24/04), o grupo MSDev-ES realizou o seu primeiro Coding Dojo. O evento teve uma duração aproximada de 2 horas, sendo que no início foi realizada uma apresentação oficial do grupo para a comunidade, apresentando a visão, missão e objetivos para o futuro.

Denis Ferrari fez uma breve introdução ao Coding Dojo exibindo os principais conceitos envolvidos nessa prática, logo depois apresentou os problemas que seriam abordados durante o Dojo.

Como foi o Coding Dojo?

O Dojo foi muito divertido e a interação dos participantes foi um ponto forte do evento. A cada troca de dupla o pessoal levantava questões sobre o andamento da solução, comentava e discutia com base no código que estava sendo desenvolvido. Segurar o pessoal para não comentar durante a fase vermelha foi um grande desafio, todos ficavam se retorcendo na cadeira para falar, e em alguns momentos aconteceu de alguém dar uma opinião na fase vermelha. Percebi também que o pessoal sempre tinha um monte de soluções para o problema quando estava na platéia, porém, quando sentava em frente ao computador as soluções sumiam, o que acontecia é que o pessoal sempre pensava em soluções que tentavam resolver o problema de uma vez, isso é normal porque muitos ainda não conheciam TDD e tiveram algumas dificuldades.

Retrospectiva

No final do Dojo realizamos a retrospectiva do evento e os principais pontos levantados durante a discussão foram:

Pontos Fracos

  • Melhor definição do problema
  • Devido ao tempo nem todos conseguiram codificar
  • Faltou definir casos de teste
  • Os pares não comentavam o que estava sendo feito

Pontos Fortes

  • Interação do pessoal
  • Apresentação de TDD

Os feedbacks foram muito positivos e percebi que o pessoal gostou muito do evento, estamos preparando o material gerado como fotos e vídeos e logo vamos disponibilizar para a comunidade.

Anúncios




Coding Dojo do Grupo MSDev-ES

20 04 2010

No próximo sábado (24) o grupo MSDev-ES (Grupo de Desenvolvedores .Net do Espírito Santo), estará realizando o seu primeiro Coding Dojo, o evento acontecerá na Faesa Campus I. Aos  interessados corram para realizar a sua inscrição, pois, as vagas são limitadas.

Mais informações sobre o evento podem ser encontradas aqui.

Postei também uma explicação sobre Coding Dojo no blog, então para mais detalhes sobre esta prática recomendo a leitura do post.

Até sábado pessoal!!!





Coding Dojo

19 04 2010

Dojo

Antes de começar a falar sobre o que é o Coding Dojo, é importante destacar alguns pontos que motivaram a sua criação. Dentro de um ambiente de desenvolvimento de software, na maioria das vezes encontramos situações em que a equipe deve correr para cumprir os prazos e atender o cliente, porém, isso em alguns momentos faz com que os desenvolvedores não se preocupem com as boas práticas de desenvolvimento, afetando assim a qualidade do código gerado. Analisando esta situação, percebemos que os programadores não treinam, pois, estão sempre focados em desenvolver código de produção, baseando-se nesta realidade surge o Coding Dojo, como uma alternativa para melhorar este cenário.

O Coding Dojo é uma reunião onde os programadores se juntam para trabalharem na solução de um desafio de programação. Esta prática surgiu na França e foi trazida para o Brasil pelo Danilo Sato. O termo “Dojo” veio do judô e significa lugar do caminho, é uma área onde se pratica artes marciais, este local é muito respeitado pelos judocas, sendo visto como uma casa dos praticantes.

Para a realização de um Coding Dojo é necessário apenas um computador e um projetor. Durante um Dojo é comum que haja comida, o ambiente deve ser sempre divertido e inclusivo. Todo Dojo utiliza TDD (Test Driven Development) durante o seu desenvolvimento. É muito importante deixar claro que jamais um Dojo deve ter continuidade, sempre devemos começar do zero, ou seja, a cada reunião um novo desafio é proposto, sendo que os desafios que não foram finalizados em reuniões anteriores não podem ser continuados.

Um Coding Dojo tem como objetivos fornecer uma maneira para praticar programação, aprender sobre novas técnicas com a experiência de outros participantes, ensinar e transmitir sua experiência para os participantes, além de oferecer uma possibilidade de discussões com base concreta sobre o código.

Princípios

Para a prática de Coding Dojo temos alguns princípios, tais como:

  • Aprendizado contínuo

As reuniões de Coding Dojo são sempre movidas por discussões, debates e questionamentos sobre o código desenvolvido para a solução do desafio proposto, estes pontos são a base para um aprendizado contínuo de todos os envolvidos no Dojo.

  • Ambiente Seguro

Para um Dojo de sucesso é importante que todos aqueles que estejam envolvidos com o desafio se sintam a vontade para fazer questionamentos e participar do processo de construção da solução, o ambiente deve ser colaborativo não havendo nenhum tipo de competição entre os participantes, o ambiente deve transmitir um sentimento de inclusão.

  • Baby Steps (Passos de Bebê)

Durante a construção do código para a solução do desafio, é essencial que se desenvolva apenas pequenos trechos de código, sempre caminhando com passos curtos.

  • Melhoria Contínua

MELHORAR SEMPRE, um dos motivos para criação do Coding Dojo é fazer com que os desenvolvedores tenham a oportunidade de aprimorar cada vez mais os seus conhecimentos e técnicas relacionadas à programação.

Formatos

Um Coding Dojo é desenvolvido com base em alguns formatos que ditam como será o decorrer da reunião.

  • Kata

Este formato de Coding Dojo é muito parecido com uma palestra, pois, um participante apresenta um desafio já resolvido. Deve ser destacado que toda a apresentação da solução inicia-se pelos testes e, todos devem conseguir reproduzir o que foi feito. Neste formato as interrupções são permitidas para tirar dúvidas que possam surgir durante a apresentação.

  • Randori

No Randori o desafio é resolvido durante a reunião. Utiliza-se programação em par, onde temos turnos de 5-7 minutos para revezamento dos pares, é importante lembrar que a platéia deve permanecer em silêncio quando um par estiver trabalhando no desafio, os comentários são permitidos apenas na fase verde, ou seja, somente quando os testes estiverem passando.

  • Kake

Este é um formato novo que é muito parecido com o Randori. O nível do Kake é mais avançado, pois, temos vários pares simultâneos que se revezam entre máquinas a cada turno e, a solução ainda pode ser desenvolvida em linguagens diferentes.

Retrospectiva

A retrospectiva é um momento ao final da reunião onde todos os participantes avaliam como foi o Coding Dojo, normalmente uma retrospectiva é movida com base nas seguintes perguntas:

  • O que aprendemos?
  • O que gostamos?
  • O que poderia melhorar?

As discussões e comentários gerados durante uma retrospectiva são pontos importantes que levam a uma melhoria do Coding Dojo e, enriquece todo o grupo envolvido.

Cuidado!

  • Nunca corra para resolver o desafio;
  • Não escolha um problema real como desafio;
  • Nada de discussões sobre tecnologia, foque no problema e na sua solução;
  • Nada de competição entre os participantes;
  • Nunca deixe os participantes sem entender o que está sendo feito;

Conclusão

O Coding Dojo é uma excelente alternativa para os desenvolvedores aprimorarem suas técnicas de programação. O fato dos desafios não envolverem problemas reais que fazem parte do cotidiano de um ambiente de desenvolvimento, possibilita aos desenvolvedores trabalhar sua criatividade e técnicas, o que pode vir a impactar em melhorias que são refletidas no ambiente de produção.

Espero que este artigo possa oferecer a vocês uma visão sobre Coding Dojo, assim como levá-los a uma reflexão sobre suas técnicas de programação e como melhorá-las, pensem nisso. É isso aí pessoal!

Referências

[1] Daniel Cukier [locaweb], http://agilblog.locaweb.com.br/2009/10/09/coding-dojo/

[2] CodingDojo.org, http://codingdojo.org/

[3] Coding Dojo Piauí, http://www.slideshare.net/regispires/coding-dojo-1923746





Silverlight HandsOn Lab

15 04 2010

O grupo MSDev-ES está organizando para este sábado (17) um HandsOn Lab de Silverlight aqui em Vitória-ES. O HandsOn Lab será ministrado por Fabriccio Bernardes. Realmente é uma ótima oportunidade para quem deseja conhecer mais sobre esta tecnologia promissora que é o Silverlight. Até lá pessoal!

Incrições: https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032449548&Culture=pt-BR





Entendendo as Soluções e Projetos no .NET

14 04 2010

Apesar de existir um amplo material falando sobre a plataforma .NET, ainda encontro pessoas que estão começando a desenvolver para a plataforma, que encontram dificuldades para entender alguns conceitos. Vejo muitas dúvidas também, relacionadas ao entendimento dos arquivos gerados durante o desenvolvimento de uma aplicação. Neste artigo procuro explicar sucintamente os assuntos citados.

Microsoft .NET é uma plataforma de desenvolvimento de aplicações, que oferece uma rica biblioteca de classes com serviços que auxiliam no desenvolvimento de diversos tipos de aplicativos, esta plataforma está disponível para diversas linguagens de programação, tais como C#, VB.NET, C++, entre outras.

Para o gerenciamento dos itens gerados em um projeto desenvolvido para a plataforma .NET o Visual Studio oferece dois contêineres, solução e projeto.

Solução

Segundo o MSDN [2] as soluções gerenciam a maneira que o Visual Studio configura, cria e implanta conjuntos de projetos relacionados. Uma solução do Visual Studio pode incluir apenas um projeto ou vários projetos em conjunto.

A definição de uma solução no Visual Studio é armazenada em dois arquivos o .sln e .suo. Os arquivos .sln armazena informações que definem a solução:

  • Projetos que estão associados à solução.
  • Itens disponíveis no nível da solução que não estejam associados a um projeto específico.
  • Configurações de criação da solução que definem quais configurações de projeto aplicar a cada tipo de criação.

O arquivo .suo armazena informações específicas de cada usuário (desenvolvedor), são informações ligadas a personalização do ambiente de desenvolvimento como janelas abertas, breakpoints marcados, etc.

Projeto (Assembly)

Os projetos no Visual Studio são utilizados como contêineres dentro de uma solução, e armazenam os itens que compõem uma aplicação logicamente. Os arquivos de projeto têm a sua extensão definida de acordo com o tipo de projeto escolhido, por exemplo, para projetos em C# o arquivo de projeto terá a extensão .csproj, enquanto que, em um projeto VB.NET esta extensão já passaria a ser .vbproj.

É responsabilidade do arquivo de projeto armazenar a configuração do projeto e as configurações de compilação especificadas, além dos conjuntos de itens relacionados com o projeto.

Finalizo aqui e, espero que o conteúdo deste artigo possa ser útil para vocês, deixo também algumas referências importantes para o entendimento do assunto abordado.

Referências

[1] http://msdn.microsoft.com/pt-br/library/b142f8e7.aspx

[2] http://msdn.microsoft.com/pt-br/library/df8st53z.aspx

[3] http://msdn.microsoft.com/pt-br/library/s17bt45e.aspx