The one UML notation every developer should know

Most developers dismiss UML as obsolete. I agree somewhat if they refer to ideas of generating code from diagrams. However, learning a bit of its visual notation is valuable. At least one fact:

UML dependency

A dashed line with a minimal arrow means "depends on". In the above diagram "B depends on A".

Knowing basic UML notation is useful

Why should you know that? So you can use it in your diagrams without the need for a legend.

In my dayjob, I often see diagrams and a disturbing large number of them are a confusing mess. Is that box a class, a git repo, a database, or a web service? Is that arrow a dependency, information flow, API call, or link? Often, the notation is not consistent within a single diagram, let alone consistent with others.

It is impossible to understand them without explanation. So I consider them as mere memory aids for the presenters benefit, but not earnest documentation.

It takes effort to make good diagrams where you make clear which arrow means what. Wouldn't it be nice if we had some consensus for notation, so we don't have to re-explain it in every diagram? Well, UML is that consensus. It is the Markdown of diagram visuals. As such it provides a useful baseline for diagrams. It would be even more useful if you can assume your audience knows some basics.

Dashed lines are intentional

Most people do not draw dependencies but information flow and that goes in the reverse direction:

UML dependency

Information flows from A to B (because B depends on A). Do not interpret that as UML though. In a UML class diagram this would be a directed association and mean that class A references class B somehow.

In most cases this is not the intended meaning. This is the default arrow most people scribble and they do that without clear semantics. So you will have to ask them what the arrow means.

When they draw a dashed line though, then it was probably intentional. There is a realistic chance they actual meant "depends on".

UML dependency

Thus, if you only learn one thing about UML, I recommend "dashed arrow with minimal arrow head means depends on".

The next time you see a dashed arrow, you know: it's probably a dependency. Use it yourself and challenge your audience to learn a little tidbit of UML.

Dashed arrow means dependency