Agile Modeling and UML – The Truth is You Already Do UML

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.


5 Replies to “Agile Modeling and UML – The Truth is You Already Do UML”

  1. Nice post!
    I use diagrams for modeling in the initial phases, when I need to have a first glance of the solution and communicate it easily to the team – one image still worth a thousand words. After people understood it, code is the model. If someone enters the project in an advanced phase, and get lost because there is already a lot of code, he/she uses reverse engineering to draw models (typically class diagram) and that’s it.

Leave a Reply