Skip to content

Commit 6778d43

Browse files
Merge pull request #51 from chexxor/chexxor-context-narrative-review
Review and revise context-narrative
2 parents 04c06d3 + 533d14a commit 6778d43

File tree

1 file changed

+20
-19
lines changed

1 file changed

+20
-19
lines changed

02-Context-or-Narrative/State-of-PureScript-Documentation-2019.md

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,43 +17,44 @@ It is well-known among the PureScript community that its documentation is lackin
1717
Outline
1818
- Explain what "good" documentation is and define a criteria
1919
- Evaluate PureScript's documentation using that criteria
20-
- Explain why PureScript's documentation is lacking and what is being done to improve it
20+
- Explain why PureScript's documentation is seen as lacking
21+
- Suggest plans to improve the current documentation situation
2122
- Address various audience's possible concerns or questions centered on these themes:
2223
- New learners - How should I learn PureScript?
2324
- PureScript documentation writers - How should I write good maintainable documentation for others?
24-
- Core Contributors -
25+
- Core Contributors -
2526

2627
## What is "Good" Documentation Anyway?
2728

28-
Did someone ever teach you how to write "good" documentation? No, you likely just wrote what came to mind and hoped it was good enough.
29+
Did someone ever teach you how to write "good" documentation? Probably not - you likely just wrote what came to mind and hoped it was good enough.
2930

30-
So, it helps to understand what is "good" documentation and why.
31+
Because of this, it's useful to learn a definition of good documentation and understand why it's defined that way.
3132

3233
Essentially, there are 3 factors that affect whether documentation is "good" or not.
33-
1. The type of documentation
34-
2. The intended audience
35-
3. How up-to-date the documentation is
34+
1. Its intended audience
35+
2. Its type: the question being answered, targeting a specific subsection of the audience
36+
3. How accurately it reflects the desired version of the code/project
3637

3738
### The Types of Documentation
3839

3940
First, there are 5 types of documentation that target specific phases of a learner's experience (as explained in [What Nobody Tells You About Documentation](https://www.divio.com/blog/documentation/) and [Teach, Don't Tell](http://stevelosh.com/blog/2013/09/teach-dont-tell/))
4041

41-
| Type | Analogy | Characteristics
42-
| -- | -- | -- |
43-
| The Hook | Selling a product to a potential customer | Answers these questions: <ul><li>What is this thing? / What problem does it solve?</li><li>Why whould I care? / How is this relevant to me for my purposes? / Who should not care?</li><li>How long will it take to learn it and how difficult is the learning curve?</li><li>Where do I go to get started / learn how to use this?</li></ul>
44-
| Getting Started | Teaching a child how to cook | <ul><li>Focuses on the learner 'doing' stuff, not 'explaining' stuff to the learner</li><li>Provides a small simple working example that teaches the basics</li><li>New learners experience an 'I can use this now!' moment by the end</li><li>Focuses on concrete tasks, not abstract concepts</li><li>Does not use jargon</li><li>Explains only what is necessary and cuts out all else</li><li>Avoids explaining deeper concepts or different ways of doing the same thing</li></ul>
45-
| How-To Guides | Following a cook book's recipe | <ul><li>Achieves some goal or solves a problem</li><li>States the pre-requisites one needs to have before starting (not a Getting Started Guide)</li><li>The Guide follows a clearly-labeled step-by-step process</li><li>By following the steps, one reproduces the same results without fail</li><li>Explains the different ways one can achieve the same goal</li><li>Explains only what is necessary</li></ul>
46-
| Explanation | Listening to a CEO answer questions about his company | <ul><li>Explains the context/history</li><li>Explains the significant design decisions made, their alternativees, and the reasons one was chosen over another</li><li>Implies where things could be improved, expanded, refined, etc.</li></ul>
47-
| Reference | Reading an encyclopedia | <ul><li>Concise explanation of each piece of the code</li><li>The structure of the reference mirrors the structure of the code it documents</li><li>Formatting is consistent throughout the material</li></ul>
42+
| Learner's Phase | Type | Analogy | Characteristics
43+
| -- | -- | -- | -- |
44+
| Curious Outsider | The Hook | Selling a product to a potential customer | Answers these questions: <ul><li>What is this thing? / What problem does it solve?</li><li>Why whould I care? / How is this relevant to me for my purposes? / Who should not care?</li><li>How long will it take to learn it and how difficult is the learning curve?</li><li>Where do I go to get started / learn how to use this?</li></ul>
45+
| Potential User | Getting Started | Teaching a child how to cook | <ul><li>Focuses on the learner 'doing' stuff, not 'explaining' stuff to the learner</li><li>Provides a small simple working example that teaches the basics</li><li>New learners experience an 'I can use this now!' moment by the end</li><li>Focuses on concrete tasks, not abstract concepts</li><li>Does not use jargon</li><li>Explains only what is necessary and cuts out all else</li><li>Avoids explaining deeper concepts or different ways of doing the same thing</li></ul>
46+
| New User | How-To Guides | Following a cookbook's recipe | <ul><li>Achieves some goal or solves a problem</li><li>States the pre-requisites one needs to have before starting (not a Getting Started Guide)</li><li>The Guide follows a clearly-labeled step-by-step process</li><li>By following the steps, one reproduces the same results without fail</li><li>Explains the different ways one can achieve the same goal</li><li>Explains only what is necessary</li></ul>
47+
| Active User | Reference | Reading an encyclopedia | <ul><li>Concise explanation of each piece of the code</li><li>The structure of the reference mirrors the structure of the code it documents</li><li>Formatting is consistent throughout the material</li></ul>
48+
| Experienced User | Explanation | Listening to a CEO answer questions about his company | <ul><li>Explains the context/history</li><li>Explains the significant design decisions made, their alternativees, and the reasons one was chosen over another</li><li>Implies where things could be improved, expanded, refined, etc.</li></ul>
4849

4950
Moreover, there are clear examples of "bad" documentation (as explained in [Teach, Don't Tell](http://stevelosh.com/blog/2013/09/teach-dont-tell/)):
5051

51-
| Statement | Why it's bad |
52+
| Documentation Source | Why it's bad |
5253
| -- | -- |
53-
| Read the Source Code | Only useful once you are already familiar with it
54-
| Read the Test Code | While it uses the code, it tends to focus on edge cases, not normal cases, and may not use all possible options/configurations.
55-
| Read the API docs | One must know the name of the function/value to be able to read its documentation. Most won't know the name until you teach it to them. Likewise, people don't learn by reading alphabetized lists of disconnected information
56-
| Read the Wiki | Content is usually not written by the code's authors, but by multiple 3rd-party people. There are often multiple disconnected voices throughout the material. It's like asking a student to write his own lesson plan.
54+
| Source Code | Only useful once you are already familiar with it
55+
| Test Code | While it uses the code, it tends to focus on edge cases, not normal cases, and may not use all possible options/configurations.
56+
| API docs | One must know the name of the function/value to be able to read its documentation. Most won't know the name until you teach it to them. Likewise, people don't learn by reading alphabetized lists of disconnected information
57+
| Wiki | Content is usually not written by the code's authors, but by multiple 3rd-party people. There are often multiple disconnected voices throughout the material. It's like asking a student to write his own lesson plan.
5758

5859
### The Documentation's Intended Audience
5960

0 commit comments

Comments
 (0)