Developers hate it and less mature shops avoid it because of the costs but writing and maintaining developer documentation is an important part of any software development project.
The Bane of Every Coder
Extreme Programming was a software development methodology that got a lot of buzz back in the late 90s. One of its rules was no living developer documentation which meant that you could write documentation but only in the form of a memo or email with a short shelf life. You did not have to keep the documentation up to date over time.
The rationale behind this was that customers weren't paying for documentation, they were paying for code. Half the time, the documentation wasn't kept up to date or was inaccurate anyway so why bother? If you want to know what is really happening, then just read the code.
All well and good for a twenty line script but I can read and understand a two page technical white paper describing the architecture a lot faster than a two million line application.
Another reason for documentation is compliance management as Steve Balmer must be wishing that they did a better job of this when he read this recent news piece on their antitrust judge declaring Microsoft documentation unfit for US consumption.
Compliance management allows an organization to track and measure how well they comply with the rules and requirements of external regulatory organizations and oversight committees. You can read more about how our collaborative software development project lifecycle management product Code Roller supports compliance management by reading this white paper.