Software development: documentation is key

What is the most important trait of any IT project? Its approachability. Whether it’s an Open Source library, Software as a Service application, or a dedicated enterprise solution, it is mandatory to provide clear installation, configuration, and maintenance instructions.

When looking for a new library to be integrated into existing project, I often head down to awesome-awesomeness Github repository, pick desired category, and open up a number of browser tabs. I check the last commit date and the stars. The first real contact with the library is its README, though. Detailed configuration and usage instructions reveal the commitment of the authors to the project. Is it just a quick and dirty ad-hoc solution to some immediate issue? Or rather — does it cover the whole domain of the problem extensively? In my opinion, it can be easily told by the quality of the documentation. It attracts users and contributors. It helps the project to grow and mature.

The same applies to picking external services integrations. I look for readable website with practical examples, detailed API / SDK documentation, and, especially, extensive troubleshooting section. To me, it’s a sign of maturity, both of the service and the organization behind it. I can assume their commitment extends to code quality and client support.

At Ideability, we write custom software for businesses. Documentation is the important part of the delivery. It makes the cooperation with external product and operations teams easier, and adds trust and confidence in all processes we execute together.

As software engineers, we need to pay the same amount of attention to the documentation as we do to the code. It is important to know how to write, both in programming and natural languages.