@clobrano I find it helpful to think about what you want to achieve by writing the documentation. Who is it for? What do you want them to understand? Then think about what you need to say to do that.
Try to put yourself in the shoes of the reader. If they did not know anything except that which you have written, would it make sense? Have you introduced all terms before using them? Do you consistently use the same words for the same concepts? Is each paragraph conceptually coherent?
@henrikjernevad thank you! I started thinking that this initial "pain" is more or less like the one after the first weeks of gym. It's part of the process, but I'd love to see examples of real cases
@clobrano@henrikjernevad I gave some examples in my blog post. Unfortunately my design docs pre-2007 are confidential and I can't access them.
Generally, over the years my design docs have become shorter. I don't include detail which should be code or code comments as that will tend to go out of date quickly.
Capturing rationale and alternatives considered is like gold dust and a great gift to my future self. (It's really hard to remember that kind of stuff years later.)
@underlap@henrikjernevad I read your post, very useful thank you!
I get used to taking a huge amount of notes (like zettelkasten), but still struggling converting into something more accessible to share.
@clobrano@henrikjernevad Interesting. That kind of design document is geared towards planning. The other main kind is geared towards describing the (intended) state of the system you are building. The second type gives you an opportunity to think through the options for how to structure the code before you get too invested in a particular piece of code.
@clobrano@henrikjernevad Also, writing introductory material and defining terms early on has the advantage that my viewpoint is closer to that of a beginner. That doesn't last long!
@clobrano
6. If you understand an aspect of the design clearly, write it up so others can understand it too. If you don't understand an aspect, write down a question about it and try to find the answer.
Add comment