Richard's Rant

Principal .NET Consultant, MCSD Certified

Is UML A Good Thing in an Agile World?

I remember when I was at University and we were taught this new thing called UML that was going to change the world and make all software development predictable and manageable. Like most things that you are taught at University, the teaching is disconnected from reality: no one knew about it, it was hard to grasp, it went against all conventional wisdom, etc. For an industry that changes so rapidly, there are plenty of examples of the inertia that people in the industry exhibit.

So I come to the question of whether using UML is a good thing. Logic would say that it is a good thing: the ability to model a software artifact before coding holds the promise of better implementation, less time spent in coding, etc.  This is in contradiction with the current wave of agile methodologies, which espouse overall design and instead focuses on short development spurts to deliver small pieces of functionality. Does UML have a place in this new world?

So what is a Software Architect to do? Well, for my 2 cents, using a great UML tool allows the modeller to abstract the design from an implementation, which makes the model more flexible. However, this does bring a lot of issues to the surface, such as the developers losing control of the design process, and developers then being relegated to nothing but code monkeys. Management loves this idea, because it allows them to "offshore" the actual building of the model, lowering costs. Developers must, therefore, change the what they do, which can be very hard due to the inertia that a lot of developers display. From my observations, resistance to change is very high, and brings a whole new set of stresses to the Software Architect.

So back to the question in hand: Is there a place in this new agile world for Model Driven Architecture? Well, I guess that depends on the size of the software model. For an enterprise, using a Model Driven Architecture approach brings great benefits in terms on standardisation, and adherence to a plan that is more aligned with the business. The downside is that the business may not be as agile as a smaller organisation that does not use an MDA approach.

Comments

Richard van den Hurk said:

Very good point and I guess UML is still one method amongst many that can be used to architect a solution. In todays highly visual world though, quick prototype software where the end user can interact with a framework is a lot more advantageous. It provides much more accurate feedback which are checked at each reiteration of the development. I guess the ultimate is a framework where the UML can directly be translated to a UI front end which the user can evaluate.

# August 14, 2008 4:41 AM

Gordo said:

Hmmm, like all things, I don't believe there is a one size fits all. I love the use of UML at the front-end of the solution process to help bridge the gap between the business (who can usually easily understand the UML nomenclature) and the developers. After that, I am more than happy to take on whatever flavour of Rapid/Agile methodology the developer prefers.

Utopia would allow for me to sit with the business, have them describe their business processes according to a set series of questions and compile their answers as they go using voice recognisiton software, into a prototype app there and then. But we are a long, long way from that Utopia ;)

# August 14, 2008 6:00 PM
Leave a Comment

(required) 

(required) 

(optional)

(required)