Why good documentation matters for Developers?
Tags: programming, webdev, javascript, opensource
Published: 2022-07-25 10:12:00

For me, writing documentation is almost like coming back to the roots. If you have played some video games, you might be familiar with the concept of throwing an advanced player into a new environment where the player has to start from the beginning (permanently or temporarily). In Assassins Creed Valhalla for example, after about 50 hours of playing I went to another location that basically resets your equipment to the basic one (which was an interesting challenge after collecting the best armour in the game) so you had to use your skills even more and start collecting equipment again. It felt really refreshing. And for me, it is the same with writing documentation.

## Documentation by Developers

You dive deep into developing your product or project so you know it very well already. Taking a step back and positioning yourself as a regular user of your product will let you improve the usability, developer and user experience, and overall relations with the developers. Keep in mind that I do not try to convince you to be a full time documentation writer. I believe that dedicating some of your time for writing docs will make you a better developer in the long run.

Knowing exactly what problem you are trying to solve, how users are using the product, where they fail, etc will let you better solve problems. And this is what the developers are best at, Solving Problems.

## Documentation for Developers

This is the perspective of developers writing docs but what about the other part, namely developers who are using the documentation? It is even more important! Educating users about your products is especially important if you want to have a community or clients.

Back in 2017, I remember starting to learn Vue.js and the official Vue docs were just great for that. 

![Vue.js docs](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o0p1uv101aj76jxmb5u5.png)
 

Year later, I tried Nuxt.js and was really amazed about the code examples that was solving majority of my issues. 

![Nuxt docs](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9tfjf7fciquw5qeuija6.png)
 

Finally, in 2019, I started learning Nest.js and these docs were and are the best in my opinion.

![Nest.js docs](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8q6f1sf64dqkhqybwmva.png)

The docs tell you how to build both simple and advanced applications really easily. Apart from written docs, there are several apps examples in the GitHub repository that you can take a look if you are struggling with some topics.

## My experience with documentation

In my career, I wrote several documentation pages to both big and small projects. It is not a full time job for sure but spending few hours a week, writing tutorials and explaining the basic topics is a great way to understand the needs of your users better.

I started with rewriting the documentation of Storefront UI - Vue.js based UI library specifically for E-Commerce -> https://docs.storefrontui.io. It was built using Storybook so it is more like a playground documentation but it does its job well. I enjoyed explaining how every component work, how to integrate SFUI with Tailwind, Cloudinary, etc. Also, I thought about restructuring the docs so that they will address the current users issues at the first place. It was a great move that helped developers to know how to use Storefront UI properly.

After that, I wrote some documentation for Vue Storefront products and internal projects and found it especially interesting as I had to put myself in the shoes of the regular users.

Finally, I wrote several documentation websites related to Nuxt.js like https://algolia.nuxtjs.org/. I focus really much there on writing the tutorial step by step so that the users can easily start using it.

## Summary

Writing documentation is great and you should try it out definitely. It will allow you to understand your users better. What's more, it will help you also solve your users issues before they actually experience them.