Wednesday, July 1, 2009

Better than UML, the Next Big Thing, AML (Arbitrary Markup Language)

I got to say when I first saw Neal Ford's blog on AML (Arbitrary Markup Language) on Hacker News I knew I had to read it. AML is about the only design layout and style I've seen in the real world. When I see UML in the real world, most of the time is it not UML which follows the OMG standards. Instead the UML I see in the real world are diagrams which use the UML symbols in Visio, but I do not think the Three Amigos would call it UML. You see most people do not really understand UML and even if they do, they do not understand UML 2.0. Most people do not know about most of the symbols and diagrams that are part of UML 2.0. Most of the time in the real world you will get a Use Case Diagram, Class Diagram, a Sequence Diagram, and sometimes a Activity and Deployment Diagram. On these diagrams the symbols are close to being right, but they are not the official UML 2.0 symbols (most of the time they are the first options in for a symbol in Visio). To confuse things even more, most of the time if you have more than one person doing designs you can tell during a review that multiple people did the over all design.

Truth be told there is nothing wrong with this. The reason that you communicate is to pass on understanding and ideas from one person to another. So if the diagrams are not a 100% correct OMG official UML 2.0 diagrams, that is OK in my book. If the diagram can communicate what you want to say, then it is good.

What really stood out in Neal's blog on AML was when he said, " I'm a fan of AML, because it cuts down on irrational artifact attachment: you have nothing except the last 5 minutes invested in the diagram, making it as transient as possible". I never really thought about it, but the amount of time I spend on a design document is inversely related to my willingness to make major changes to it or throw it away. I find that this seems to be true with most other IT people too (I'd assume it is true for all fields). This attachment is completely irrational, it does not really matter how much time was spent on something, if it does not meet your client's needs (be it the business, another area, customers, etc.), then it should be changed to meet those needs.

That is the nice thing about AML, it is quick, direct, and to the point (said in my best Use Car Sales Man voice). You see AML is just boxes, circulars, arrows, lines, and whatever else is need to communicate your design and ideas in as clear and concise as possible. If you have spent any time in IT, you have by now seen a few different takes on AML and that is the whole point. If you can understand what the other person is drawing and trying to convey then the diagram is good.

Ever since cameras have been a common feature on most cell phones, I have been finding that most meetings in which a design in AML is drawn on the white board someone will take a few pictures of it and send it out in the meeting notes. If the design is really good, someone will draw it up in Visio really quick. To me this is the best way to design. Remember only you can fight irrational artifact attachment.

Now do not get me wrong, I am not saying that you should not think about your designs. If anything, I think that as much time as possible should be spent on designs (they are the cheapest thing to change and fix). What I am saying is that you should spend time figuring out what needs to take place and how to do it. You should spend as little time as possible on the symbols and layout of the design and as much time as possible thinking about all of the different things that you have to worry about in any design.