Agile Software Development

I’ve just finished a training on Agile Software Development methodologies. Here are just some of the things I’ve found:

* There is a set of methodologies for software development which are considered to be Agile of which ‘Scrum’ and ‘Extreme Programming’ (XP) are most commonly used.
* Scrum defines an iterative-incremental process for the development at the management level. XP defines best practices at the team level (Test-Driven Development, Continuous Integration, Pair-Programming, etc.). Scrum and XP can be used together and most of the times that’s what happens.
* With Scrum there is a new role called ‘Scrum Master’ (not to be confused with Scum Master) which replaces the project manager. He is there to serve the team and help resolve the problems that may arise in a coaching style.
* Emphasis is on the team being happy, willing, self-organized and self-managed. Scrum provides tools to help.
* Task effort estimation is done based on a unit-less measure ‘points’ that is assigned in relation with the other tasks (rather than a time measure like days, etc.)