Continuous Documentation - The best time is now

A presentation at Northern Ireland Developer Conference 2019 in June 2019 in Belfast, UK by KENIGBOLO MEYA STEPHEN

Slide 1

Slide 1

Continuous Documentation The best time is now @expensivestevie 1

Slide 2

Slide 2

Hello! Terve! I’m Kenigbolo Meya Stephen Front-End Engineering Lead @bcaster Arch Conveyer/Community Manager @TheCodeAfrique You can find me on twitter at @expensivestevie @expensivestevie 2

Slide 3

Slide 3

WHAT I’LL BE TALKING ABOUT 😉 What is Continuous Documentation. Why is it important. Common pitfalls in current documentation practices. How to improve by implementing Continuous Documentation ✘ Continuous Documentation - Moving forward 👉 ✘ ✘ ✘ ✘ 3 @expensivestevie 3

Slide 4

Slide 4

  1. WHAT IS CONTINUOUS DOCUMENTATION 4

Slide 5

Slide 5

CONTINUOUS DOCUMENTATION Continuous documentation is a documentation pattern we developed at BCaster that takes into consideration constant changes/improvements in code and business logic to be reflected internally for every single closed sprint. 5

Slide 6

Slide 6

“ In our industry, change occurs so fast that it sometimes is difficult to catch all of it. This is the same case for the documentation and unfortunately release notes alone do not cut it. 6

Slide 7

Slide 7

“ The open source (OSS) world uses Requests For Comments (RFC) however even in that world the RFC’s are rarely summarized. What do you use internally in your company? 7

Slide 8

Slide 8

THE PROBLEM COMES WITH CHANGE ANOTHER CHANGE 8 EVEN MORE CHANGES

Slide 9

Slide 9

  1. WHY IT IS IMPORTANT 9

Slide 10

Slide 10

“ The reasoning behind a change that you fail to document today might become lost forever resulting in knowledge base gap. What you end up having is an unsynchronized knowledge base 10

Slide 11

Slide 11

TYPICAL DOCUMENTATION TYPES ✘ Proprietary software - Docs included and maintained ✘ Popular Frameworks - Dedicated teams for docs. ✘ Your company - Developers make docs? Dedicated documentation team? How do you handle your documentation? 11

Slide 12

Slide 12

  1. COMMON PITFALLS IN CURRENT DOCUMENTATION PRACTICES If you just said to yourself “we’re definitely doing it right” then trust me when I say you’re definitely doing it wrong 12

Slide 13

Slide 13

@expensivestevie 13

Slide 14

Slide 14

SIMPLE THINGS YOU’RE PROBABLY DOING WRONG Readme’s Unhelpful Phrasing If majority of your code documentation are mostly README.md documents then you’ve been doing a lot of dis-service to what documentation should be Do you have a word checker for your documentation? Do you spot unhelpful phrases in documentation? Can you define what an unhelpful phrase is? If the answer to any of those questions is “No” then there’s room for improvement 14 Inconsiderate Writing Can you take your documentation and give to a non technical person and expect them to make any sense out of it? If you answered that question with “but it’s a technical doc” then there’s definitely room for improvement @expensivestevie 14

Slide 15

Slide 15

README ✘ Readme’s are supposed to be an entry point to your documentation as opposed to it being your main documentation ✘ If you’re having more than three sections in a Readme that already signifies there is a lot of information that needs to be somewhere else. ✘ Ever heard about clutter? Extensive readme’s are simply that Clutter. 15 @expensivestevie 15

Slide 16

Slide 16

@expensivestevie 16

Slide 17

Slide 17

Unhelpful phrasing ✘ “Simply run the tests”.. ✘ “Just write a compiler then it simply works”. ✘ “Simply”, “Just”, “Simple”, “Actually”, “Easy”, “Easily”, “Obviously”. 17 @expensivestevie 17

Slide 18

Slide 18

INCONSIDERATE WRITING ✘ Gender favouring - “Hey Guys”, “he”, “his”, “dude” etc. ✘ Avoid race related phrases (tricky one but we’ll see how to deal with this later on). ✘ Polarizing/Unequal Phrasing - “It has always been like that” - It’s safe to say we all have that one guy in our company. 18 @expensivestevie 18

Slide 19

Slide 19

  1. HOW TO IMPROVE VIA CONTINUOUS DOCUMENTATION Preconceptions are pure evil �� 19

Slide 20

Slide 20

“ Always remember that documentation is a form of communication. Communication is a two way street. If your documentation is ambiguous then you have failed to communicate 20

Slide 21

Slide 21

Our process is easy MAKE CHANGES DOCUMENT CHANGES 21 SCREEN UPDATED DOCS

Slide 22

Slide 22

README ✘ First ensure your document is in Markdown format ✘ Badges are good and informative so if you have CI badges put them up there. ✘ Create a separate folder for docs in every repository. Markdown documents can be used to link to other markdown documents.. ✘ Your readme should contain simply the description and getting started installation instructions. Every other detail should be a link to a respective Markdown document. 22

Slide 23

Slide 23

UNHELPFUL PHRASING ✘ Documentations are a tools for communication as opposed for a place to expand your ego. Do not assume that everyone using them is on the same skill level as you. ✘ Call a non-technical person or content writer to help you review. Like pair programming, a second pair of eyes is always good. ✘ Review documentation changes just as you rigorously review your code. It is equally as important 23

Slide 24

Slide 24

INCONSIDERATE WRITING Don’t you think Primary/Replica sounds better than Master/Slave? How about we use AllowList/DenyList instead of Whitelist/Blacklist? Doesn’t “Hey everyone” sound more gender neutral than “Hey guys”? I’m guessing now you’re already thinking about a lot of phrases that you use but never considered inconsiderate up until this point? 24

Slide 25

Slide 25

“ Release notes are nice and should be a must have for every major change irrespective of the size of your company and regardless of if you use semantic versioning or not. 25

Slide 26

Slide 26

“ There is no such thing like too much of good documentation. If there’s a reasonable change somewhere there should be a corresponding documentation update to show that change. 26

Slide 27

Slide 27

“ Auto generating documentation from code while being a good thing can most times result in a lot of common mistakes flying below the radar. Treat your documentation quality better than you even treat code quality. 27

Slide 28

Slide 28

  1. MOVING FORWARD Continuous Documentation is all about continuous improvement to documentation practices. 28

Slide 29

Slide 29

“ Planning to work on a documentation spec that enforces certain standards but are flexible enough to be configurable. I will then work on a linting tool using those standards and it will be called DocLint. It will be to documentation as EsLint is to Javascript 29

Slide 30

Slide 30

“ Interested in helping out? Let’s have a chat and brainstorm ideas on how to proceed with this. We’ve created an internal TC at BCaster for this very purpose and I’d be more than glad to share more info on this. 30

Slide 31

Slide 31

That’s all for today folks @expensivestevie 31

Slide 32

Slide 32

Thank You! KeyToss! Any questions? You can find me at ▰ Twitter @expensivestevie ▰ Github @kenigbolo @expensivestevie 32