I agree that commenting and documenting exist for different purposes and different audiences. However, I put them together because often times, neither exist. And when written material does exist, it isn’t comprehensible.
I am not sure I agree that different documents should be written by different people. Although one would think technical writers do most of the writing, a lot of companies have eliminated the position and have developers themselves do ALL the writing, no matter the type of document.
Developers may not like this, but it helps them understand the purpose of their work and how they fit in to the bigger picture and bottom-line. They should be able to explain their work to other developers of any level. They should know how the users will use their product. And they should know how their work is integrated into and utilized by other parts of the product. Doing so helps developers flush out how they can explain their work to executives and junior level developers. And even if there are technical writers, are the developers able to explain their work and its purpose in case the writers don’t understand…especially if a developer plans to leave the company?