Terry Quatrani, a Rational evangelist at IBM reminds us that Agile and modeling (UML) aren’t diametrically opposed. Actually they play very well together.
“I am following an Agile process so modeling is not important.”
A phrase that Terry hears often. Her response: “That is simply not true.” Her reasoning?
“Even if you are following an agile process, you will do some degree of modeling – you just won’t do it as much as you would if you were following a traditional process. Also, the degree of formality will probably be different… A lack of formality in Agile UML doesn’t mean that you’re not modeling – it just means that you’re likely focusing on getting the benefits of modeling without the drawbacks of extraneous documents.”
To Terry, no matter what type of process you follow, Agile or not, you still need to do some requirements of some sort. If you’re using an Agile process, your requirements are often captured in the form of customer tests and user stories.
“When you think about it, you’re modeling when you’re writing a customer test just like you’re modeling when you’re writing a use case.”
Her experience tells us that the exercise of modeling brings teams together in two ways: Communication and Analysis. Since Agile teams already do some sort of modeling, the value stems from merely the exercise of doing some degree of modeling (Story carding, architecture modeling, design wireframes, UX tests, etc). Terry’s final advice? Do what makes sense for your team. You only want to create enough diagrams to help you communicate and think out your problem.