Saturday, February 2, 2008

Teaching agile methods: a nice experience

In the last couple of weeks I was envolve in two courses related to Agile methods. The first one, more theoretical counted with 9 talks:
  1. an Introduction to Agile Methods (talking almost nothing about XP)
  2. an Introduction to eXtreme Programming (XP)
  3. Refactoring explained with examples
  4. Tests: unit, acceptance, interface, integration and everything else possible
  5. Planning agile projects
  6. Test Driven Development: a practical approach
  7. Tracking agile projects
  8. Short introduction to Scrum
  9. Short introduction to Lean
All the slides are available at http://agilcoop.incubadora.fapesp.br/portal/slides/curso-de-verao-2008 in portuguese only. I've been part of 3 of then (2, 5 and 7) and it has been a very good experience. It is amazing how people don't really care about understanding the depth of agile methods. They mostly want to hear that it works and that people actually do it for real. Other than that, I was quite happy with the results since I was evaluated pretty well among the talkers and the experience was good.

The last week was the practical course: eXtreme Programming Laboratory. We had 4 teams of 6 students each plus one coach for each. The project was a Java web system built with Java Server Faces (JSF) and the goal was to generate a site to a pizza delivery store cutely called AgilPizza. We had a small bootstrap ready with a static page, a dynamic listing page and a form one each of those with JUnit tests and some Selenium testing.
This experience was much more exhausting since those were full 4 hours teaching days with all sorts of codeaches one might have with a project. I am sad to think that my team probably didn't enjoyed and learned as much as possible during the course. Time restrictions, technical issues and the fact that I was the only one able to solve network problems took a lot of my energies and quality.
One thing that I can assure is that Java web projects are not the best system to work on. I am still searching for a system that has a very flat learning curve on a language that most people can understand and use. Maybe some more dynamic languages such as python and ruby would be good but people have a hard time learning new syntax so I might just take a deeper look into Groovy as an option.
Never the less, it was a very enriching experience and I am pretty sure next time (which will happen in 2 weeks) will flow a bit better even using the same project and the same coaches. I will post later on.

No comments: