The idea of "Don't make me Think" comes out of literature like:
- Steve Krug's "Don't make me think"
- Kaniel Kahneman's "Thinking, Fast and Slow"
Essentially, we want your brain thinking about what is being done, not how to do it.
We've all seen instructions like:
Now transfer the output file into the program directory.
Given those instructions you now have to think about:
- What is the output file?
- Is it a file of a specific name?
- Where is it?
- There's a log file, is that part of what needs to be copied?
- Where is the program directory?
- The program resides in
/usr/bin
. That's not it - Is it the current working directory?
- Is it something else that I missed in the instructions?
- The program resides in
- What is meant by "transfer"?
- Is it
cp
,scp
,ftp
,rsync
, or something I don't know about.
- Is it
It would be nice to have a simple set of instruction to illustrate. Example:
cp ${OUTPUT_DIR}/output-file.txt ${PROGRAM_DIR}
where OUTPUT_DIR
and PROGRAM_DIR
are defined in previous instructions.
We want to free up your mind to think about why the copying is needed, not how to do the copying.
With that in mind...
The following style guidelines help craft Senzing GitHub documentation.
- Instructions are written using the second-person, imperative mood.
- Instructions use present tense.
- Net: Words like you, I, he, she won't be seen much. When they are used, it's personal 😊.
- Each step has examples.
- Examples gravitate toward "copy-and-paste".
- If variation is needed, operating system environment variable are used.
- Environment variables are introduced via the
export
command. - Examples show "working" values.
- If customized values are required, a "pencil" icon ✏️ is present.
- Any reference to an environment variable should have information on how it was set.
- Environment variables are introduced via the
- Where thinking is required, a "thinking" icon 🤔 is present.