Common denominator that nearly everyone knows nothing about software, except some subcontractors who are not part of our processes.
So in every meeting I need to explain simple concepts like what the API of the service I designed is going to in the context of our whole software context, and currently this is done by fiddling around on draw.io and with my hands and feet.
Can anyone of you guys recommend me some tool, or format, to explain software architecture to non-technical folks, gentle-parenting style?
Thx in advance :)
https://en.wikipedia.org/wiki/C4_model
Level 1: System context diagram
Level 1, a system context diagram, shows the software system we are building and how it fits into the world in terms of the people who use it and the other software systems it interacts with.
Level 2: Container diagram.
Level 2, a container diagram, zooms into the software system, and shows the containers (applications, data stores, microservices, etc.) that make up that software system. Technology decisions are also a key part of this diagram.
Level 3: Component diagram
Level 3, a component diagram, zooms into an individual container to show the components inside it. These components should map to real abstractions (e.g., a grouping of code) in our codebases.
No need to go deeper considering your audience.
Why do they need to know what an API is, rather than what your integration will do for them and how it works with their existing system and process? That kind of stuff belongs in the appendix, at a very high level of abstraction (ie your software sits here, ours is here and connects to it, this is your workflow before and after). If you're going into C4 territory and explaining your whole stack, that's probably way too much detail that's not relevant to them and also may change later anyway. My 2c is to focus on the what and why, less so the how. Tell them their devs can reach out to you separately for a technical deep dive if they need it.
This can generate data flow diagram.
Run the scanner across codebases, you get entire distributed software's flow.
There will be loose ends because of urls formed from configurations. It's fine, make it work, then improve.
Your API is the person who handles the form. Just ride that analogy, and you should do fine.
I also use plantuml a lot
drawio is ugly but free
excalidraw has weird hotkeys