- an Introduction to Agile Methods (talking almost nothing about XP)
- an Introduction to eXtreme Programming (XP)
- Refactoring explained with examples
- Tests: unit, acceptance, interface, integration and everything else possible
- Planning agile projects
- Test Driven Development: a practical approach
- Tracking agile projects
- Short introduction to Scrum
- Short introduction to Lean
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.