- The Practices
- Patterns of Agile Practice to Business Value Mappings
- Crafting Your Agile Adoption Strategy
- Where Next?
- Theory to Practice: Building Your Own Agile Practice Adoption Strategy
Crafting Your Agile Adoption Strategy
You can use the information you have gathered so far about business value and smells to determine which practices you should consider adopting.
- Choose practices based solely on business value delivered. In this scenario, you are not suffering from any severe pains. You just want to improve your software development process by increasing the business value that your team delivers. Use the Business Value to Practice mapping in Figures 5-1 through 5-7 to choose practices that most strongly affect your organization's business values.
- Choose practices to alleviate smells that have been prioritized by business value. This technique focuses on alleviating pains that you have while keeping business value in mind. Smells are prioritized according to your customers business values. Then, from the prioritized smell list, you choose the appropriate practices to adopt with the help of the Smell to Practice mappings shown in Figures 5-8 through 5-15.
- Choose practices to address the most visible smells. This is common, although I wouldn't recommend it. It's plain and simple "fire-fighting"—trying to get rid of the biggest pain regardless of the business value it delivers. This is all too common when the technical team determines the priority without customer input. (I've often been guilty of this.)
The information found in the figures at the beginning of this chapter is prioritized by effectiveness. Therefore, the first practice in the figure is the most effective practice for increasing the business value or alleviating the smell. Get your feet wet with the first practice, and after you've successfully adopted that, come back and take another look at the remaining practices and clusters related to your business value or smell.
No matter how you prioritize your list of practices to adopt, you should adopt those practices as iteratively as possible. Armed with the list of practices, here is how you can successfully adopt the Agile practices on your list.
- Start with an evaluation of the status quo. Take readings (even if they are subjective) of the current business value(s) you want to improve and the smell(s) you want to alleviate.
- Set goals that you want to reach. How much do you want to increase the business value? How much do you want to reduce the smell? What is the time frame? Take a guess initially and modify it as you know more through experience.
- Pull the first practice or cluster off the list you created.
- Read the pattern that is related to that cluster or practice. Decide if it is applicable or not by matching the context and forces to your working environment (more details on what patterns are and their different sections in Part 3: The Pattern Catalog). If the practice is not applicable in your environment, go back and pick the next one off the business value/smells table.
- Once you have determined that the pattern is applicable in your environment, read the pattern thoroughly. Follow the advice in the "Adoption" section in the pattern to get started.
- Periodically evaluate whether the business value you are addressing is improving or that the smell you are addressing is being resolved. If it is not, adapt your practice for your environment using hints from the "Variations" and "But" sections in the pattern. (You might want to take a quick read of Chapter 6, "The Patterns of Agile Practice Adoption," at this point to get an understanding of what an Agile adoption pattern looks like.)
- Go back to step 1 and re-evaluate your business value or smell. If it needs more improvement (that is, you still have not met your goal set in 2), consider adding another practice or an entire cluster to resolve the issue. If it has met your goals, move on to the next one.
So where is the test-driven part of this approach? Your tests are your goal values that you set in step 2. In step 6, you check your readings after adopting a practice. This is a test of how effectively the practice(s) you adopted has already met the goal set earlier. This loop—set a goal, adopt a practice, and then validate the practice against the expected goal—is a test-driven adoption strategy.1