I did something cool Friday.
I was trying to document all the data flows in and out of our in-house Web app.
First I put the data flows into a database table: source, sink, what is being transmitted, details on the source point, details on the sink point, is it a push or a pull, what protocol is used, and any notes. And a unique id for each data flow.
Second, I generated a graph for each data flow using GraphViz and a shell script that pulls from the database and pushes into GraphViz. Each graph has two bubbles and a line going from one to the other: that’s my source and sink, and the line is labeled (what is being transmitted), and the start and end of the line are labeled with details like hostname and port.
Finally, I used AsciiDoc to generate a 30 page booklet documenting:
1. data flows (broken down by protocol)
2. data flows (broken down by source point)
The resulting PDF doc, complete was corporate logo, was quite presentable. I was impressed with myself.
And yet, I didn’t do any original work, I was just gluing together pieces others made. I do wish I had time to contribute some original work.
Aleksey