Adopting Agile Principles and Practices is sometimes due to the hype created in the industry. Sometimes it is due to some fancy terms used by some people.
Before any organization adopting the agile practices, it is always better to understand the real meaning of agile. Just by following some practices the team cannot become agile.
During my readings I have found the book The Art of Agile Development - By James Shore, Shane Warden a very interesting read.
I will try to cover some of the pre-requisite for Agile Adoption from any team's perspective.
Strategy 1- Team agreement to follow Agile
I feel the most important point regarding the adoption of Agile strategy is the team acceptance that the agile practice deployment would help in present issues faced by the customer and better customer delivery. If the team members don’t want to use the practices and if it is forced by some other team or management to adopt agile, it probably may not work.
May be we need to have some strategy to adopt principles where there is awareness issue in team.
Strategy 2- Strong Management support and acceptance about the change
The next most important aspect is the support provided by management for this change. Management can be slightly tolerant from the perspective that even if it fails it is okay.
Also it will really help in bringing the change in the organization as it also requires some infrastructure support and othe related support
Strategy 3- Availaibility of Customer or in worst case Proxy Customer for Feedback Purpose
It is very important in Agile mode of development that customer be closer to the development team so that feedback can be given immediately about the progress of the work. In my opinion the biggest advantage of being Agile or following agile practices is to give the customer what they want.
It is better that the customer is avaialble during the development and the customer should provide feedback of the iterative development. In worst case we can have the customer representative or the proxy customer who can provide the feedback.
Strategy 4- Good understanding about the Agile Principles and Practices
Team should have a very good understanding about the Agile values , principles and practices.
Agile should not be considered as some silver bullet solution for all the existing problems. It cannot solve the problems with with magic wand. Also we cannot delete all the existing process of an organization and live in a virtual world of agility.
In fact there is nothing like this.
Every team need to identify their own way of being Agile and provide the customer the best delivery.
Teams must understand the agile values, be self organized and deeply motivated to give the best. Teams can come up with the operating rules and follow that.
Strategy 5- Team Organization
It is upto the way the team adopt agile. Agile works in teams based on the way teams adopt. Be it a small team or a big team each team must ensure that the teams are componentized well, divide the team into smaller groups and have a good structure in place. This really helps in ensuring that all aspects work well
Strategy 6- Adopt the practices of Agile with the real objective
Agile practices of XP or SCRUM is a collection of practices which complement to each other. It is always better to use the practices together.
For example if we are doing simple desing and if dont do TDD then it becomes difficult. Same way if team is doing Iterative Delivery without following Automation and Continuous Integration then it is next to impossible to give iteriative delivery in 2 weeks sprint.
All the practiecs of XP and SCRUM should be considered in clusters and adopted else there are chances of failure.