I´ve found this very nice service called yUML.me which allows you to create cool UML diagrams with an URL. I think this is a nice thing but in fact I can´t remember when I used REAL UML at work.So I asked myself, do we really need UML?
Do I need UML?
In my (short) time as a software developer I never felled the pressure to create difficult UML diagrams. Most of the time I paint classes or Use case diagrams or stuff like that on our whiteboard or on powerpoint.
I didn´t finish a study, just an apprenticeship. During my apprenticeship I liked UML but in my opinion it´s oversized. Just take a look on the "Syntax" (what´s the direction of the arrow? "extend" or "include"?) In most cases simple but effective paintings are enough. But I know some students who are in love with UML because it´s well-structured but is this really that important?
UML vs. TDD?
A while ago I read a book with a comparison between UML and a construction plan for house building. The main argument was, that for building a house you need an entire construction plan because it takes more time to build and rebuild a house than making a plan. But in my opinion it´s not the same in software architecture. It just takes a few hours to find out if this will work or not. TDD (test driven design) is the best way especially if I plan to build an API. Making an UML plan will take the same time than testing this in a TDD session.
UML is getting old fast
I affirm that a UML diagram is getting old soon after you created it with a lot of work. Without a strict process that makes sure that the UML diagram is conforming to reality you do it better if you save the work or not?
A good architecture should fit on a napkin
That´s a quote from Ralf Westphal who wrote an interesting Blogpost about this subject (I´m sorry it´s only available in German). I share his opinion ;)
I wouldn´t say that UML is useless but I never used it in one of my projects. If you create it in a nice graphic way (like for example in VS 2010) than it could be interesting of course. Without tooling it´s too complicated for me. So all in all yUML is a good idea but without the write tooling I´m going on painting powerpoint architecture on the white board
But what is your opinion? Do you use UML? Why? How did you keep this actually? Am I crazy and can´t see all the advantages?