Guidelines

What can you put into the documentation ?

As a literary genre - most literate programs fall under the “how things work” style. While that is useful for complex algorithms its not useful for normal everyday code. You can assume code literacy while writing for programmers. I believe a history book like approach will be more useful for everyday programs. In future I believe literate documents like this will help in documenting the following and much more with the help of hyperlinks, iframes, images, videos …

  • User stories

  • Commits

  • Design decisions

  • Inspirations

  • Bugs

  • Code History

  • Conversations

  • Research, Bookmarks

  • Stack overflow references

  • Issues

  • Build Steps

  • Tutorials

  • Executable Snippets

  • How To’s

  • Cookbook

  • User Guides

  • Architecture Diagrams

  • and memes

For an existing project you can move the following text files directly into the literate programming

  1. Install / Setup

  2. Readme

  3. Changelog

  4. Acknowledgements

  5. Contact Info, other projects

  6. Test / Platform Coverage

  7. Support

  8. License / Legal

You can move the wiki pages.

Ideas for more chapters

  1. Bookmarks

  2. Inspiration

  3. Similar Work / Credits

  4. Rationale

  5. Research / References / Demos / Presentations / Pitches

  6. Demo Video / User Guide

  7. Errors and Edgecases

  8. Todos

  9. How others can contribute

  10. Current Status

  11. Donations

  12. Blog / Community / Chat

  13. Previous Prototypes

  14. API Docs / Coding Guidelines

  15. Internals

  16. Use cases

  17. Schemas

  18. Examples

  19. Dependencies

  20. Benchmarks

  21. Accessibility

  22. Monetization, Resources, Budgets and Revenue Model

  23. Experiments, Risks, Postmortems and Challenges

  24. Algorithms, Protocols, Interfaces and Patterns

  25. Workflows / Processes

  26. Release cycle planning

  27. Marketing analysis, strategies and possibly live metrics

  28. Responsibility and Contact Information

  29. Maintenance concerns and procedures

  30. Equipment notes and human factors

  31. Trade-offs

  32. Productivity tips and tricks / Advanced users

Chapters for designers,

  1. Styleguides

  2. Design guidelines

  3. Use Cases

  4. Links to assets

For games

  1. Story / Characters / Items / World

  2. Level/environment design

  3. Gameplay

  4. Design Assets / Sounds / Music

For moving the main source code I would recommend going by use-case or by feature. If you source code gets big divide it into modules and change the shell scripts appropriately.

https://web.archive.org/web/20150213050134/http://www.literateprogramming.com/documentation.pdf
https://www.makeareadme.com/
https://github.com/cfpb/open-source-project-template
https://docs.readthedocs.io/en/stable/intro/getting-started-with-sphinx.html
https://guides.github.com/features/wikis/

Misc Notes on Writing

Estimating documentation with code becomes tricky. As a solo activity programming will be most similar to writing novels, while programming as a collective activity might be similar to writing for newspapers with all the entailments of collectivist bureaucracies.

Assuming a programmer reads or writes 5 lines per minute, the upper limit of LOC / Day would be - 60 * 5 * 8 => 2400 and for 1 line per minute - 60 * 1 * 8 => 480. Code is similar to screenplays in its structure. A typical screenplay has ~ 6k lines. Based on the word count, a 16kb total-scripts-size can be a good upper limit for a single programmer.

If the Function point (Avg(lines of code / Function)) is 300, then that means a programmer can code at max 1.5 - 8 features per day. For documentation, you can assume you can write 2-3 pages per day.

https://writing.stackexchange.com/questions/26257/how-many-rewrites-should-a-writer-expect-for-a-novel
https://imsdb.com/scripts/Godfather.html

Drafts

By Leslie Rose,

  1. Vomit draft - let it fly baby

  2. Story arc pass - main story subplots - overall structure

  3. MC & supporting character arcs - including character development & embellishment

  4. Grammar/punctuation pass & bad habit pass (adverbs/tense/sentence variety/word choice)

  5. Hard copy read - make corrections

  6. Kindle read - make corrections

  7. Holistic read - make corrections (wearing my audience hat)

  8. Publish