What is your favourite way to document your programs?

I only used it for testing a batch job doing financial calculations, no UI involved.

I might be wrong. There is some overhead in creating the markdown docs and binding them to tests. Why would you do that if the audience is only devs who can easily read the test code? (Of course you would want to write the test code with this in mind and separate clearly rules from irrelevant implementation details)

We used a similar tool (FitNesse) at a pretty big Java project (~150 devs) a decade ago. The target audience was an acceptance test team consisting of domain experts. We had varying success with it. The biggest challenge was that the wiki-doc and the implementation kept getting out of sync, and that was pain to maintain.

1 Like

Interesting. Why did that happen?

In our case the docs describe quite stable business logic and rules. Examples in the docs are executable tests so should the logic change, we need to change the description / values first.

I should have elaborated that the communication with the test team was lacking and there wasn’t much love for the tool either. So the problem was more with the organization than with the tool I’d say. I came in late into the project and didn’t really got much involved in the process of capturing the functional requirements, but the little I did have chance to participate in was very interesting and appealing to me. But nevertheless the wiring of the docs to test implementations felt very fragile.

Thank you! In our case there was no team so that avoided some problems :slight_smile:

Also, Concordion is purposefully minimalistic and allows nearly no logic in the docs so most of it lives in the tests and the instrumentation layer they provide. The docs themselves live in the codebase as well and the tests are written, maintained, and run frequently by the devs.

That sounds like a much better approach (having the docs and code in the same codebase). I’m starting a new project before summer with a pretty large/intricate domain and several domain experts at hand and a small dev team. So Concordian could be a good fit! I’ll definitely give it a try :slight_smile:

I’ve created GitHub - holyjak/clj-concordion: Enable using https://concordion.org/ specifications with Clojure and clojure.test so don’t HESITATE to contact me with questions are if you would like to pair-program this a little. See Holy on Dev: Contact

1 Like

One tool to consider is Whimsical.

Apart from having diagraming software, they also have documents section. The best part is that the underlaying stack is all Clojure(Script).

(No, I don’t work for them, just a happy customer.)

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.