Currently, I am working on a project and I am wondering what is the best way to go about documenting it. I am documenting in the code but also I crate design documents. The design documents contains for every class develop: why I wrote that class, how the class was implemented, advantages and disadvantages of the class, discussion about the class, example inputs and example of the class. As you can see the design document would be rather time consuming to produce. The main purpose of the design doc is to keep my supervisor informed, who is a remote location. and also to track the decision that are made over the course of the project.
What I'm looking for is how this process is done in other companies. Also, I'm going about the documentation process correctly?
Any input would be greatly appreciated.