Monday, November 23, 2009
Lessons from an inexperienced Agile Team
Silva and her team tested the idea that the best way to learn Agile methods is putting it in practice in some active project. They uncovered some important lessons that can be drawn on if you find yourself introducing Agile to an inexperienced team.
The team ran into a lack of proper infrastructure. It takes time to setup the team space, meeting rooms, desks and IT equipment, and ideally development hardware, software and physical and logical environments. Plan early iterations or time prior to the project kickoff to set up some of these basics so the team can hit the ground running.
Often teams have little knowledge in the agile development methodology. This can lead to mistaken planning at first and inefficient team processes throughout the project. As well this can be compounded by lack of familiarity in the used technology on the project. This leads to inaccurate task size and effort estimation and sequencing. Teams may need to focus early iteration on training and ramping up the team, or bringing experts to seed the team. The technical skills of the team must be evaluated before planning the project.
During the project the team may run into issues with the high level of dependency among functionalities. This is a symptom of failing to design upfront functionalities that have tight cohesion internally, and are loosely coupled from other functionalities. Where this is not possible, functionalities need to be isolated using stub code or mock interfaces to allow development to continue in parallel.
Communication is key during an agile project, and inneffective communication will be compounded through lack of regular face-to-face meetings. Teams need to get into the habit of meeting daily in the scrums, and with the key clients at iteration kickoff and checkpoint meetings.
Finally, distractions were caused by team members have responsibilities on other project. Full time allocation to agile projects is a best practice. While this is not always possible, it should be a goal for the key developers and testers.
Reference: Silva, Liana, Santana, Célio, Rocha, Fernando, et al. Applying XP to an Agile–Inexperienced Software Development Team 2008