The 3 Pillars of a Good Software Documentation

Pile of documentation in ring binders


Documentation is an essential part of any software release. Without it, the purpose of the software is unknown, which may lead to some unsatisfied users. But what makes a good documentation? This article tells you 5 aspects of good software documentation.

Often, software creation is intended for utilization by others, which means that once the developer or data analyst completes the project, they embark on a task that is generally disliked… Penning the code documentation. In the realm of software development, crafting documentation is a phase where the coder or the primary developer elucidates in a comprehensive script detailing the functionalities of the code, its objectives, and the methods it employs to achieve those. The predominant reason developers loathe this task is that, inherently, a coder prefers crafting code over delineating it. Moreover, for documentation to be deemed adequate, it necessitates being straightforward enough for individuals with no coding expertise to grasp.


Your documentation should commence with a brief yet comprehensive overview. This segment should encapsulate a few sentences that lucidly delineate the project’s functionalities and the mechanisms it employs. You have previously engaged with open-source projects in your past endeavors; hence, here are some exemplary overviews from renowned data science projects. Pandas: “Pandas stands as a swift, potent, adaptable, and user-friendly open-source tool for data analysis and manipulation, grounded in the Python programming language.” — Pandas documentation Matplotlib: “Matplotlib serves as an extensive library facilitating the creation of static, animated, and interactive visual representations in Python.

It simplifies complex tasks and simplifies straightforward tasks.” — Matplotlib documentation. Bokeh: “Bokeh is a dynamic visualization library compatible with contemporary web browsers. It offers a graceful, concise approach to crafting versatile graphics while ensuring optimal performance during interaction with extensive or streaming datasets. Bokeh is the go-to tool for anyone aiming to construct interactive charts, dashboards, and data applications effortlessly.” — Bokeh documentation.


Next, it’s the moment to delve in and commence utilization. Superior documentation invariably encompasses tutorials illustrating the diverse applications of the project and the methodologies to accomplish them by utilizing the project’s inherent functions. An abundance of tutorials doesn’t equate to quality documentation; the emphasis should be on quality over quantity. Nonetheless, specific projects feature a handful of tutorials that spotlight its application, explicitly indicating its adaptability to various scenarios. This implies that the user requires merely 2 or 3 tutorials to grasp the intricate details of the project’s code.

The prevalent tutorial structure comprises brief explanatory segments interspersed with code snippets, followed by further elucidation, and so on. This segment typically springs to mind when encountering the term “documentation.” A concise description, usually two to three sentences, directly delineates the function or class’s objective, showcasing its category, prevalent attribute types, and return as outlined in the function header. This header frequently incorporates a hyperlink leading to the function or class definition within the source code.


A vital documentation component should elucidate the rationale behind your project’s operational methodology. Not every documentation encompasses an architectural overview; however, incorporating this section might be imperative for open-source project contributions. In such instances, this segment can steer contributors on integrating new functionalities into the code without compromising its central operations.

In the contemporary era, showcasing your proficiency and adeptness with the project and the domain necessitates providing meticulously crafted documentation that accentuates the functionalities and applications of your code. Writing effective documentation depends on different elements; this article outlines the three fundamental aspects that enhance the utility of your documentation. When contemplating drafting documentation next, bear these three fundamental aspects in mind.



Magda Piatkowska, Associate Software Engineer at Brit, moved quickly from a degree in Archaeology into a software development role – she discusses some of her...
As a new software developer, there are several tools that can greatly enhance your productivity and help you streamline your development process. Here are some...
Since shipping her first product at Microsoft, Holly Boothroyd, Software Engineer, has learnt a lot about development, building and shipping products, working within a big...
Susan Maina is a Data Scientist passionate about wrangling, visualizing and analyzing data for patterns and insights. In this piece she shares insights into how...