I bought a book on UML 2.0, UML 2.0 In a Nutshell to be specific, and have been reading it on breaks at work. While on break today I was asked by one of our architects why I was reading it, with a “why spend the time” kind of connotation. I just responded saying that I wanted to learn and understand it and it was left at that.
After work this got me to thinking, what is knowing UML worth in the world of software development? Obviously knowing UML is worth more than not knowing it, but, in the larger scope of skills that you can acquire as a software engineer, how does knowing UML stack up?
Here is another way to frame this question: if you were in charge of hiring a software engineer, and the software engineer listed the following items as skills he/she has acquired, what importance would be given to UML?
1. Knowing UML.
2. Master of an interpreted language.
3. Master of a compiled language.
4. Knowing design patterns.
5. Experience in XML.
6. Experience in advanced SQL.
7. Experience in a plan-driven SDLC.
8. Experience in an agile SDLC.
9. Experience in secure coding practices.
10. Experience in OOP.
So, of these items, where does “Knowing UML” rank? I am hoping I will get some good comments on this. Is there something *not* on this list that would be ranked above all others?
A final question, my professional goal is to one day become a software architect. What is the importance of UML in becoming a software architect?