Lessons learned while working with this methodology:
- Allow developers to play early in the design phase
- Small iterations, regular deliverable is better than large development iterations
- Developers must learn to use common SCM tools properly
- Don't mix development and production branches.
- Test and verify before committing. (Only commit working stuff)
- Git is complex but powerful.
EasyGit (eg) solves many questions and allow learning git and using it more efficiently.
The agile manifesto: http://agilemanifesto.org/