Post/Code

HomeAboutUsesNow

Documentation.

Documentation has a bad reputation amongst developers. This needs to change.

If you think "documentation" means a Word document attached to an email get your head out of the sand. If all the project knowledge, is sitting in your head you have neglected an important aspect of your job. To teach people. To leave your project or codebase better than you found it. At worst - if a truck hits you tomorrow, does everything you know disappear with you, leaving others to scramble in your absence?

I know, that sounds morbid, but we are here to do the best work we can. That means showing up every day, and at minimum trying to learn something. It also means showing and teaching others. This may mean sitting with someone to help them setup a project, or explain the bigger project picture. Better yet, it means sitting down and writing up a blog post or Markdown file that another human can understand so that they can set it up themselves in their own time. (Teach a person to fish...)

Take a look at GitHub or any library or framework worth its own salt and you will find documentation. Not only on the GitHub page, but on the NPM page and on the website and in issues, PRs and Stack Overflow answers. At minimum, it should be written up in a readme or Markdown file. A few weeks ago I went through the basic React Tutorial on the React site. It was written by Dan Abramov, the creator of Redux. If you think clear, concise and thoughtful documentation is beneath you, think again!

Email is where information and knowledge go to die. Don't send emails with instructions and steps - send emails with links to your blog posts. People often like to roll the old "work smart, not hard" adage out, yet they sit and re-type emails with the same information and instructions in them day in and day out and get frustrated with people asking them questions.

Remember, documentation does not mean a .docx file. It can mean any or all of the following including but not limited to blog posts, readme files, markdown files, Confluence pages, code comments. If you don't like Confluence, that's cool! Come up with something else, but make it findable and shareable.

Documentation does not need to be boring either! Add some personality, add some humour (if its appropriate and if you can pull it off), make it your own. Just make sure that you make it! None of the options are perfect, and not everyone likes to write, but unless you can explain something to someone else in a way that they can understand it, the question hanging over your own head should be whether you truly understand it yourself?