If we generously define documentation as a way of learning about a piece of software, we can observe that there are dozens of different mediums of documentation that exist. Many of them are implicit or accidental; others are more intentionally crafted, either by the creator(s) of the software or the expert community that has gathered around it:
- Written documentation (API specifications, conceptual explanations)
- Explanatory images and diagrams (for example flowcharts)
- Written tutorials (walk-throughs, recipes, how to do X)
- Rich media introductions and tutorials (videos, podcasts, screencasts)
- Public Q&As or issues (for example GitHub issues that explain how to fix something)
- Community-driven Q&As (for example StackOverflow)
- Independent communication between programmers (online or offline)
- Meet-ups, conferences, and seminars (owner or community...