Well I have been going through Agile training in my company, and whole atmosphere is Agile-oriented here these days, so I thought let me speak about it as well. There are several projects going on here, but they decided to migrate couple of projects (including mine) to adapt Agile techniques.
Agile software development process is basically another fancy word for dynamic software development or lean software development. It is an iterative way of developing where requirements and solutions evolve through self organizing cross functional teams. Agile mainly focuses on "timeboxing" concept, which means all tasks are narrowed down to smaller time frames. Few of the popular agile methodologies include, Scrum, Extreme Programming, AUP, etc.
Scrum is a process skeleton, or a work flow, or a framework, which contains a set of practices and roles. There are three basic roles in Scrum:
1. Scrum Master - Who maintains the processes, conduct meetings, etc
2. Product Owner - These are the stakeholders, customers or actual business people
3. "Team" - Cross-functional team who do the actual analysis, design, implementation, testing, etc.
Another good concept came up in the meeting which I really liked. It's called "Muscle Memory". Good example of "muscle memory" is - if I am a tennis player, I am used to one particular kind of swing. Now If I want to play Racket Ball I need to learn a different kinda of swing. Tennis swing will not work for the game of Racket ball. So to play good game of Racket ball I will have to overcome my "muscle memory" and learn new swing. This is the core concept in adapting Agile Techniques in real life!
Well, there are lot of other stuff I would like to include in Agile discussion. Stay tuned!
