The main takeway I've just taken is that, your code is both a product of and a definitive text describing the language you use to communicate the domain your software is built to work in. Therefore it _should_ reflect both the knowledge of experts in the field, and the expertise of the developers working on it.
Understanding this contextualizes _why_ things like UML exist. UML is a meta-language to describe that domain language. Languages evolve. The way people apply UML as an upfront artifact of the dev process that rarely changes is antithetical to the purpose of modeling your domain in the first place.