I had a lot more experience with UML, but that too has gone out of fashion.
Nobody models anything anymore, not even ER diagrams are used.
Knowledge ends up scattered between a million tasks in some project management software. Often, things are not even written down, because "there's not enough time".
That way Merge Requests can be blocked for lack of documentation, or lack of documentation update.
MermaidJS have been a godsend for documentation.
Agreed, this can help. I sometimes wonder, having written a substantial project in literate programming¹ style once, whether that approach doesn’t deserve more exploration. Then not only is your documentation kept in the same repo as your code, your source files themselves almost become documentation first and code second.
You definitely have to do a lot of things quite differently to how we typically do them today to make that idea work well, but I suspect it could be like a good static type system, incurring a modest extra cost up-front but with a big long-term pay-off once you’ve figured out the tools and processes to take advantage of it.
This one is the epitome of the “If you think X is expensive, try [not doing X]” meme.
I’d take a decent software architecture diagram, a detailed data model with an ER diagram, and some form of useful written requirements over probably any other process or tool ever invented in the world of software. Alas, advocating such things in the era of Agile often feels like the curse of Cassandra.
I just overlay the flows of data on other diagrams, adding notes about the type of the data, and sometimes add info about particular fields, where useful.
Where I work it’s also useful to add the internal classification of the data, which allows understanding of the sensitivity level of the data and its retention policy.