People have been asking me about “how to be successful in agile” and the answer is pretty simple. Its just that doing it is not always easy
Agile is based on simple concepts (the processes and tools should support the interaction of the team, we should plan our work on the probability that we will need to respond to change rather than avoid it, we have to constantly inspect what we do in order to improve and so on).
So, for the team to have good interactions, they need a clear vision of what they are trying to achieve, they need a boss with some money and they need to want to win as a team.
If they have the right skills and all of that stuff they are on the right track. The agile practices should then help them but they still need some more things in place to benefit from agile.
Chiefly, they need permission to learn from their boss. Without this they cannot be agile. But they also need to be willing to learn. Without this they will pretend to be agile but in fact they will inhibit their own adoption of any of the useful parts of agile.
But even if they want to learn and have permission to learn, they need lessons to learn from. Students can learn from school books and teachers but craftsmen and women have to learn through practice – and this means they need continuous and useful feedback to learn from. This might come from releasing to production, or from good testing, honest feedback from customers or even from other sources.
Its good if you have a good understanding of what you have built so far and it helps if that product, system or service is simple and easy to change as well. This makes it easier to get realistic feedback. But even if your product is cr*p and terrible, you will continuously learn about it and improve it if you want to win as a team (including the support team).
So without useful feedback the team are just a good team not doing agile.
If those things are in place they can be pretty agile – but to be really agile they will also need two more factors. If they can add incremental value to their customers then they can add value and learn in a fully “agile way” but if not this will be a constraint on their agility.
Of course – value does not come from “features inflicted per week”, it might come from defect removal, increased usability, risk reduction and so forth.
Similarly, most team have internal or external vendors and partners who help them add value. If these vendors can only deliver in large releases of value, then that will be a constraint on the teams agility. On the other hand if those vendors can deliver incremental value and services then this enables the team to be more agile.
So the process for success agile adoption is simple.
- Baseline these factors and assess what you can do in the short term
- Add some agile practices based on how agile you can be in the current ecosystem
- Bring in coaching and training where it will help the team
- Improve the factors listed here to allow the team to be more agile, or settle for what you have now and don’t try to be more agile
Many teams beat themselves up for “not being agile” when in fact they are very agile in the ecosystem that they exist in.