As more and more people move towards adoption of Agile practices, they are looking to the Agile community for guidance and advice on how to adopt Agile successfully. Unfortunately many of the questions they have such as "Where do I start?" "What specific practices should I adopt?" "How can I adopt incrementally?" and "Where can I expect pitfalls?" are not adequately answered despite the fact that many of us know the answers to these questions. There are currently three types of answers to these questions: 1) read so-and-so's methodology book that refers to an entire process (usually a cohesive set of practices); 2) read articles A, B, and C which are ‘war stories' of companies who have successfully adopted; or 3) a very honest "Well it really depends on your team's specific circumstances, you might want to hire some consultants to help you out (usually this is said by a consultant)." We can do better than that as a community! Patterns are an excellent way to describe multiple adoption experiences in aggregate form.
Last year, at ChiliPLoP 2006, we mapped our experiences into several possible practices (such as iterations, stand up meeting, etc..). Our filter was that any practice must have been used by at least two of us on different projects. The results of this workshop were put up on the Agile Practice Adoption wiki. We were focused on adoption it was very important to answer the question of 'when' do we use a specific practice or set of practices. The ChiliPLoP workshop seeded more work for the rest of the year and resulted in:
ChiliPLoP gives the group 2.5 days to focus on one topic. It is a chance to really dig deep into a topic. The topic we have at hand is adopting agile practices successfully. It is also a very large topic. We will focus on the agile development practices that the group has experience in. Some of the areas that may be covered are:
We are planning to continue our work from last year. We will flush out more patterns that describe our adoption experiences. Furthermore, we will group those practices into generative clusters where applicable (for example Test Driven Development can be seen as a cluster including Automated Developer Tests, Simple Design, Refactoring, and possibly Continuous Integration). We expect this year's session to seed more work in conferences, developer journals, and at least one book project.
Come join us and share your experiences adopting agile practices at your organization!