21: Different Languages for Different Phases

I don't like the "Langauge", but I understand it's a term we still use to refer to our different representations.

As we progress in our design and implementation, we need many different representations to help us understand the system, and varying levels.
Sequence, Use Case, Timing, Object, State... So many different diagrams to help us understand the system. Even if we could find a single representation for all of these, it'd be so incomprehensible we would never use it.

We need to have different ways to represent things. Not just for the different phases, but for different emphasis. Each component can have different diagrams. I don't need to know what the service I call does. It's a black box to my component. We should represent it as a black box.

If I switch to working on the previously black box component, now I need the additional information of diagrams focusing on it. Maybe a different type of diagram is more informative for this component.

Our goal is effective communication. We need to find and use that which is most effective to communicate the information intended. That might even change over time. A single language to rule them all... Will fail.

Relevant XKCD

That's pretty much it. I agree. Use what works best for what you're trying to communicate. I think this extends well beyond "phases".

Show Comments