Documentation: The Good, The Bad and The Ugly
There are very few people who would deny importance and usefulness of the good documentation. Every person who has ever interacted with the somewhat complex system, be it software developer, QA, manager or a customer - is aware of how much time can a good documentation save (it can quite literally be a life saver). Or how much time and efforts can be wasted if the documentation is bad or even missing.
But what is the difference between good and bad documentation?
We believe that there are three fundamental traits which distinguish awesome documentation from the “meeeh” one.
Good documentation is:
Those traits might sound obvious and simple but how many good software docs did you see lately?
And, to make things even more funny, there is one more challenge on the way to a good documentation. While everybody understands the importance of the documentation still there are very few people who likes writing it. And even less of those who actually CAN write it.
Those challenges are especially hard if we are talking about the custom-built software where the only documentation users are internal users and documentation is considered to be NOT a part of the product.
At Service360 we aim to solve all of those challenges in an easy and insightful way. We want to show how simple and fast can it be to write and maintain beautiful software documentation which provides tremendous value to the company with the very small investments.
Let us show how do we address all of the blockers on the way to a holy grail: useful software documentation.
From the years of development and maintenance of the software in the enterprise world we came to a conclusion that good service documentation should answer the following questions:
If your documentation answers those questions there is a high change that it is a really good service documentation!
Unfortunately nowadays having just good service documentation is not enough. There is one more issue: enterprise world rarely has only one service/application. In the modern world of SOA/microservices landscapes it is not unusual to have 10s or 100s of services. Which are maintained by 10s or 100s of people. Which make multiple decisions a day while they build and maintain the software.
Here arises another side of the software documentation completeness: software architecture landscape is NOT only about software. It is also about people building and maintaining it, decisions made by those people, technologies used and a bit more.
We believe that in order to call your enterprise landscape documentation complete the documentation should answer also on questions like:
So how does Service360 answer those questions? Well, not much magic involved: we’d like to introduce a few very simple standards for documentation.
Namely:
All of those docs are stored in the code repositories under the version control (read more about it the Up-To-Date section(link)) and can be modified using you usual development flow.
Service360 is quite opinionated on what does good software landscape documentation means.
There are multiple factors which contribute to an actuality (is there such a word?) of the documentation. If to simplify a bit we can say that in general documentation is up-to-date proportionally to:
Up-to-date = Value / Effort needed for maintenance
Documentation is up-to-date in the next cases:
So, in order for the docs to stay actual we should aim to be “as green as possible”.
As you can see ideally all of the documentation should be auto-generated. But in case it can not be auto-generated (or requires non-proportional efforts to implement automation) it must at least reside in the codebase repository and be integrated into the usual development flow: be reviewed for being up-to-date during code review, for example.
This is the approach we took at Service360: all of the documentation is taken directly from the services' source code repository and a lot of it is autogenerated.
This also means that we do NOT have ANY WRITE interfaces here (remember all those confusing out-dated pages in your corporate wiki?). If documentation should be updated - it should be done via code repository (and go through your usual development process, which hopefully includes code/merge reviews).
Service360 is NOT one more wiki engine.
You might have the most comprehensive and up-to-date documentation but if person in need can not find a piece of the puzzle in it - it is useless.
If the information you have is stored in the obscure place or you have documented EVERYTHING about the service and domain and amount of your documentation is bigger than Harry Potter saga (which is around 7 MB of text by the way) - you are in trouble (or have wasted a lot of efforts).
Service360 believes in simplicity. Documentation about service should be as minimal as possible (but not less than that!). So users would get the answers on the questions they have without reading through tons of the irrelevant info. We address this by introducing Service360 doc standards (link). Those docs are small and simple. It is easy to write and maintain them.
Service360 also provides neat and simple interface to access this data in the centralised fashion. So you would not need to guess where should you get info you are searching for. Just go to Service360!
We believe that it should not be hard to have good service documentation.
With Service360 and DevOps Service Docs Framework we offer to the community our take on the path to the holy grail: good service documentation.
We are working hard with our alpha testers to make sure you will get the best in class product. Subscribe to our newsletter to stay informed about the progress and to receive an invitation to our beta test!