02 March 2009

The sun and the way UML diagrams fold on my freshly inked skin

It is my firm belief that any modern developer, being junior or senior needs to know at least the basic of UML 2.x class, sequence and activity diagrams in order to be productive in his workplace and to communicate effectively with his coworkers about one of the most hard and abstract matters known to man, by which I mean the matter of software design.
But what I find in the field today is sorry state of affairs where the majority of developer are not aware that UML even exists, a small percentage of can read it and only a handful can write and express them selves in the fine software modeling language of UML. It is my opinion , as a practicioner of the craft, that each high school that teaches programming and each university that prepares young feeble minds for a career in IT or software development must teach its students the basics of reading and writing of UML.
UML is most critical to understand object oriented design. When a developer is able to express his idea about a system in uml , that developer shows a deep understanding of that idea, and therefore is able to teach to other, implement it by producing qualty code and adapt it to changes which are sure to come in the future.
Code which isn't described by UML (or any other notation for the matter)is hard to read, hard to teach and hard to change. Code that is described by UML isn't any of those things.
But by the God of Chips and Neurons, UML isn't hard to learn either. You just need a manual (e.g. UML distilled by Marting Fowler) a pen and sheet of paper on which you can sketch your first diagrams. I've learned my UML near the sea in Pula where I live. I would put the Fowler book in my backpack, take a notes and a black 0.4 pilot pen and I would venture on foot the Pula's "long see" (lungo mare) a walkaway for tourists and kinds high on booze and midnight sex , and I would sit there by the see and draw my diagrams watching the sun go down deep below the summer sea and enjoy my self learning a powerful tool which made a better developer, a better person and more ... I don't know.. just better than I was before.
That should be enough for any of you sorry asses who haven't had the time to learn a tool as basic as UML.