When I assemble a design, I’m interested in conveying ideas that are clear to the audience. This audience consists of (usually) different people with different backgrounds. What I do not want to do is enter the “training mode” for a particular design model. If I have to spend a lot of time telling my client what a solid-headed arrow means and how it differs from that which is empty or what a square means compared to a circle, I have not made progress - at least not progress I want.
If this is informal enough, I will draw it on the board or on paper blocks and simple arrows at most. The point of rough design at this point is to make sure we're on the same page. However, it will be different from the customer.
If it is more formal, I can pull out the UML tool and collect some diagrams, but basically my clients do not write software and are probably only slightly interesting in internal relationships. We keep it at the bubble and line level and can collect some bulleted lists where clarification is required. My client doesn't want to see class diagrams or anything like that, as a rule.
If we need to show some kind of interaction with the GUI, I'm going to put together some simple window prototypes in Visual Studio - it's quick and easy. I found that the client can relate to this quite easily.
In short, I produce simple drawings (in some format) that can convey the design to interested parties and shareholders. I make sure I know what I want, and more importantly, what they need to do and talk about it. Usually this does not fall into the weeds, because people get lost there, and I do not find that this time spent on the chart is all to the nth degree. Ultimately, if the client and I (and all other interested parties) are on the same page after talking about design, I’m a happy guy.
itsmatt
source share