Someone really smart has once said “a picture is worth a thousand words”. Isn’t it why we use flipcharts and whiteboards all the time? It’s so easy to make your point and focus your group’s attention if you have a graphic representation of what you’re speaking about. Why don’t we do it in our specifications then? Why don’t large enterprises have any formal diagramming standards (trust me, they don’t)? I’ve been in the company like that for 8.5 years, but during that period I haven’t met anyone else who uses UML or BPMN in project documents. Why?
- Because you have no guarantee that client people will understand your drawings
- Because there’s much higher chance of misinterpretation in case of drawings
- Because it’s hard to express low-level details in drawings
- Because sometimes tiny change in subject requires total overhaul of drawings (because of notations being formal)
- Because Visio is terrible…
- Because if you put too much info, picture gets unreadable and you can’t limit detail level in picture
Some of these points are truly valid. Visio is truly a pile of stinking… errmm, sorry. Where was I? Ahh, ok.
Yes, you can’t rely on your pictures when you need to have client’s signoff. But the key is to use drawings as a protocol of communication between educated people. Drawings are like design patterns in software engineering - sometimes it’s enough to have a one single look and things are becoming more than obvious to you. It doesn’t mean that all what you have to do is to prepare 100 drawings and text description is obsolete. Pictures should be meant to be an additional clarifications - they may lack some details, but they are perfect to refer to, when someone reads a complex and long description of something.
- it’s very easy to prepare different-level perspectives of model
- one simple change in described reality won’t force you to (most likely) manually change tons of diagrams
- if you’re trying to do something illegal in particular notation, tool should be able to at least generate a warning (as your input won’t fit in repository)
- ability to re-create diagrams from actual code / database structure, etc.
- the other way - ability to create code directly from diagrams
- model validation - in terms of complexity, sizing, etc.
- My documentation was found out as an absolute marvel (people were forwarding it one to another just to show them this “curiosum” ;P)
- I was extending my license period of Enterprise Architect every year since that, as it proved itself very useful on many assignments and PoCs.