How to write documentation for a software project