Talking about Agile

Part of what I do as a developer in patterns & practices is evangelize agile software development within Microsoft. In the past month, I have done five or six different talks. Most of these talks were with a small team that is piloting the adoption of some form of agile development to see how it works. In these discussions, topics range from Scrum to TDD to pairing to getting any of this to work in the Microsoft culture. There have been a few questions that are consistently asked along with short versions of my answers:

  • How do I get started?
    Just do it. Pick at least one thing to try (like TDD), and do it. Work hard at it. Try it for a month (unless it is scrum, where I say try it for 3-6 months) Commit to it. Know that you will encounter challenges, and that dealing with them will be difficult. Get help: a mentor or a coach.
  • Where do I learn more?
    I have a book list that I send out with 10-15 books on it that I edit to fit the topic and send out to the group after the fact.
  • What were the biggest challenges you have encountered?
    • Getting Test integrated into the process in such a way that they are not a bottleneck, no one gets too frustrated, and we can deliver reliable, good quality code.
    • Getting a team to "gel" is tough, but when it does happen it is amazing what the team can accomplish.
  • Did you want to do this when you started?
    I was sold on TDD after using it on a single project. Pairing and Scrum and working in a collocated space were not at the top of my TODO list. However, I did not like the old way of doing things, so I tried all of this. The funny thing is now I don't want to ever go back to the old way of dong things.
  • Are you crazy?
    Maybe.

So, how would you answer these questions?

For those of you who do a lot of talks on agile topics, what are the common questions you get?