1. Who cares?
Who wants it? Is your customer asking for a more agile approach? Is Agile the latest flavour sweeping the floor? Has someone new arrived in your department with fancy ideas? It’s always a good idea to collect together, bat around the topic, share experiences positive and negative. Identify the like-minded people who are going to support this kind of change. It’s a people-change as well as process so you will need your pals.
2. What will your development teams tolerate?
Do you have agile fans in the development team, or active doubters? Architects can find it very threatening to advocate not doing big upfront design. Some developers simply loathe the idea of pairing on code. IT teams are densely populated with introverts and some find daily stand-ups and high levels of collaboration with business people too confronting. Happily these issues can often evaporate over time, but I have witnessed quite a lot of resistance to agile practices from development teams so it’s very wise to tread carefully and not mandate wholesale process change without buy-in.
3. Are you trying to fix something?
Can you see an issue you believe can be addressed by ‘going agile’? Do you have poor business engagement? Do you do endless mopping up work in the form of changes after a project is delivered? Are your business solutions not fit for purpose? These issues may well benefit by using a more agile approach to development but beware if you think a methodology in itself can cure all ills. Issues of this nature should be addressed irrespectively. Agile can be useful in opening a door to these conversations.
4. Does your technology ‘stack’ up?
Can you use agile development practices on your current technology platform? I’ve seen teams struggle with this on legacy systems, trying to force development practices into a code base that seems to hate it. I believe you can even go backwards attempting this. Using an agile approach to prioritise manage and deliver scope (requirements) without utilising continuous integration or TDD can still give you a lot of benefit, consider this if you are not building a nice green field application, or if you are building with a language that is not agile development practice friendly.
5. Do you know what you are doing?
Consider a coach. Agile coaches are out there, not only have they been on and run agile projects before, they’ve also made the mistakes that you will make before. That’s already a compelling reason to use one. Here’s another one; using an external coach is more palatable then telling your business users “we don’t really have a clue, but agile seems like a good idea so we will plunge in and give it a go!” For some reason organisations like to hear the opinion of outside experts rather than trusting the opinions of experts already on the payroll. Agile practices first came about by people on projects seeking better ways to do things, not by a bunch of expensive consultants having an off-site think tank on how to be agile. You can try it yourself using literature and countless web-documented experiences, but it’s likely to be more painful and take longer than using a coach.
Here’s another great reason – a coach can be objective.
Another – they can pass on the skills to allow you to stand on your own feet.
6. Who’s going to ride the wild horses?
Who is going to support you when you encounter the first obstacle? What if your agile project uncovers a bunch of scope that doubles your project in the first few weeks? What if you realise you need an extra BA to feed the team with enough work to keep them on track? You need to foster some heavy weight support within your business community as well as the development department. You need some champions for the agile cause, with the mettle to stand by you in troubled times.