In trendy software program growth, agility isn’t a matter of velocity — it’s about being adaptable, open, and constant. Whereas a lot of the eye in Agile growth is concentrated round iterations, sprints, and steady supply, documentation usually falls behind.
However what if the documentation may sustain with the code? That’s precisely what Documentation as Code is about.
At its coronary heart, this method treats documentation like software program code: it’s versioned, re-inspected, examined, and deployed utilizing the identical instruments and workflows.
This idea is in actual alignment with the “Single Supply of Reality” philosophy that makes an attempt to carry and solidify info collectively in a mission so it doesn’t create confusion, redundancy, and miscommunication.
Let’s dive into what Documentation as Code (Docs as Code) is and the way it allows this philosophy in Agile settings.
What Is Documentation as Code?
Documentation as Code refers back to the apply of writing and supporting documentation utilizing the identical processes and instruments which might be used for writing code.
As an alternative of storing technical content material in exterior programs akin to Phrase paperwork or wikis, Docs as Code shops all the things in a model management system, usually Git.
Which means documentation:
- Lives in the identical repositories because the supply code.
- Is written in light-weight markup languages akin to Markdown or AsciiDoc.
- Follows the identical branching, pull request, and code overview workflows.
- Is built-in into the CI/CD pipeline, the place documentation may be robotically linted, examined, and deployed.
The important thing ideas of the Documentation as Code philosophy collaborate with each other to maintain documentation exact, up-to-date, and straightforward to control.
To start with, by utilizing model management, each change to the documentation is tracked and may be rolled again if wanted, identical to with code.
Automation, in flip, helps simplify the method — builds, previews, and error checks occur independently, which suggests much less work concerned and faster supply.
Additional, as a result of the identical instrument units are used when growing customized software program, collaboration is method simpler. Builders, product managers, and technical writers may even contribute in line with established workflows.
The One Supply of Reality Philosophy
One Supply of Reality implies having info in a one single location, which everyone on the workforce can check with.
It’s easy in Agile growth to have the documentation get unruly — there may be a few of it on wikis, some on shared drives, and a few buried in outdated e-mail threads.
With Documentation as Code, in flip, the Single Supply of Reality turns into the codebase itself. The documentation exists alongside the code, in the identical model management repository, and makes use of the identical workflow.
Put merely, any alteration to the code may be adopted by the matching documentation replace and everybody robotically is aware of about it.
By linking code and documentation collectively, groups keep away from duplication, cut back errors, and facilitate communication. This fashion, it’s a lot simpler to belief documentation — as a result of it will get up to date identical to the code, and by the identical folks.
Advantages of Documentation as Code in Agile Software program Improvement
General, Documentation as Code possesses some compelling advantages in Agile growth, serving to groups work quicker, wiser, and with fewer misunderstandings.
First, it retains documentation updated. As a result of it’s being saved and stored with the code, any modifications may be carried out and reviewed directly. No ready for an individual to revise a separate doc or wiki down the road.
Second, it improves teamwork. All of the members, from builders and testers to writers and product managers, can contribute to the documentation utilizing the identical instruments they use to code.
Third, it impacts the code’s high quality. Writing and validating technical documentation concurrently with code forces builders to pay extra consideration to how their code behaves, which tends to result in a greater design with fewer bugs.
Fourth, builders can add automated checks and exams to the CI/CD pipeline. They’ll robotically discover damaged hyperlinks, misspellings, or out of date references within the docs, the identical method they will discover code.
Lastly, quite a few affluent companies are already training this method. GitLab and Kubernetes tasks have indicated that placing documentation into the event course of ends in extra secure, useful, and easier-to-use documentation.
How you can Implement Documentation as Code
Getting Documentation as Code dwell isn’t that tough, however it should take you to change the way in which your workforce operates. One of the best recommendation right here is to begin small and regularly transfer towards making Docs as Code part of your course of.
1. Begin Small
Initially, select a small mission or a selected module to doc utilizing Docs as Code. This step permits your workforce to get aware of the method with out feeling overwhelmed.
Then write documentation for one or two options or elements and retailer it in the identical Git repository as your code. This fashion, you’ll get a really feel for a way documentation may be handled like code.
2. Use the Proper Instruments
Subsequent, double-check you’ve got the correct instruments at hand. For model management, you’ll need to use a system like Git (with GitHub, GitLab, or Bitbucket).
For writing the documentation itself, you should use easy markup languages, akin to Markdown, AsciiDoc, or reStructuredText.
Additional, contemplate making use of static web site mills like MkDocs, Docusaurus, or Hugo to show your Markdown information into knowledgeable, user-oriented documentation web site.
Lastly, combine your documentation into your CI/CD pipeline (e.g., GitHub Actions, GitLab CI, or CircleCI) as a way to auto-format checks, spelling checks, and deployment.
3. Incorporate Documentation into Your Workflow
When you’ve got the instruments arrange, it’s time to merge documentation into your growth workflow. Put merely, it means inserting documentation modifications in the identical pipeline as code modifications.
If a developer creates code, they have to additionally replace or add the respective documentation in the identical commit. To maintain all of the components organized, it’s essential to create pull requests for documentation modifications and overview them identical to you’ll overview code modifications.
4. Educate Your Workforce
Apart from, it’s essential to teach your workforce on how Docs as Code works. This implies explaining the instruments you’ll use, the workflows, and the advantages of getting documentation in model management.
Interact builders, product managers, and technical writers to play energetic roles in including to documentation. Collective duty will make documentation a workforce effort, not the only real duty of 1 individual.
5. Keep away from Widespread Pitfalls
On the identical time, watch out to not fall into frequent traps when going Docs as Code. One mistake to keep away from is over-engineering the documentation course of on the onset. As an alternative, simplify issues first after which add more and more extra advanced instruments or processes.
One other mistake is forgetting documentation after the preliminary setup is full. With a view to maintain your docs up-to-date, embrace them within the CI/CD pipeline and encourage common overview. A short reminder: if you happen to maintain documentation a low precedence, it should simply fall behind.
6. Undertake Steady Enchancment
Lastly, do not forget that Docs as Code is a steady course of. The extra your workforce will get used to the workflow, the extra it is possible for you to to streamline and refine it much more.
You’ll be able to, as an illustration, add even larger automation, enhance the model, and even add consumer suggestions to additional improve the documentation. What is crucial is to deal with it as a long-term funding that pays off within the type of higher collaboration and a greater growth course of.
Challenges and Concerns of Creating Documentation in Software program Improvement
One of many largest challenges is to maintain the documentation updated when the code is being edited. To unravel this, there’s a must replace the documentation and in addition the code.
One other downside is duplication. Programmers wish to remark within the code how issues are completed, and sometimes this repeats the documentation.
Whereas code feedback are essential, they have to concentrate on technical particulars within the code, and the documentation ought to present clear, high-level info for customers.
Adopting Docs as Code additionally requires remodeling how the workforce works, which may be difficult for people used to conventional documentation. A few of the workforce members may resist at first, however with time, after they see the advantages, it turns into painless.
Though automation helps, it might’t do all the things. Instruments can seek for small errors, however they will’t inform if the documentation is unambiguous or useful. That takes human involvement. Reviewing the documentation regularly ensures that it’s useful and correct.
Lastly, as your mission progresses, the system documentation can turn into outdated or disconnected from the place the product is. To stop this, it’s essential to have critiques and updates regularly.
Having an individual who has the duty of keeping track of particular areas of the documentation may also maintain all the things correct and true to life.
Problem | Answer |
Preserving Documentation As much as Date | Replace code and documentation collectively. |
Duplication of Info | Hold code feedback technical; documentation ought to concentrate on high-level data. |
Adopting Docs as Code | Regularly transition, exhibiting advantages over time. |
Automation Limitations | Common human critiques to make sure readability and accuracy. |
Outdated Documentation | Common critiques and updates to align with the newest product model. |
Lack of Possession | Assign workforce members to supervise particular areas of documentation. |
Actual-World Use Circumstances of Leveraging Software program Documentation
To get an thought of how Documentation as Code operates in precise environments, let’s analyze some use instances of corporations and tasks which have efficiently enforced this technique.
The instances under research illustrate how Docs as Code aids in bettering collaboration, sustaining related documentation, and making the event course of extra enough.
1. GitLab: A Chief in Docs as Code
GitLab, a well-known DevOps and CI/CD instrument, is a superb instance of an organization that has welcomed Documentation as Code.
Its docs are saved in the identical Git repository because the code, and your complete workforce works collectively to keep up it as much as the minute.
The corporate makes use of GitLab’s personal CI/CD pipeline to robotically produce and deploy the documentation each time a change is pushed to the codebase.
As a consequence of such an association, all mission members can simply entry and leverage the documentation. And since it’s a part of the event course of, GitLab sidesteps the basic downside of documentation rising outdated or forgotten.
It additionally unites your complete workforce—builders, technical writers, and everybody else can contribute to the documentation in the identical method they contribute to the code.
2. Kubernetes: Open Supply Success
Kubernetes is yet one more nice instance of how Documentation as Code is practiced.
All consumer documentation and API references for Kubernetes are stored in the identical Git repository as their code. This means that each time the software program is being altered, it’s easy to replace the documentation too.
Additionally they make use of automation to verify for issues like hyperlink breaks or out of date code examples.
General, because of this course of, numerous contributors repeatedly refine the code and documentation at common intervals, making certain that each piece of labor is present and reliable.
3. Stripe: Preserving Documentation in Sync with Code
Stripe, a longtime fee firm, additionally makes use of Documentation as Code to maintain its API documentation updated.
As their workforce adjusts their API, they alter their documentation together with the code throughout the identical Git repository. This fashion, all edits are immediately mirrored within the official docs.
By together with documentation in the identical course of as coding, Stripe avoids the inconvenience of sustaining separate documentation and offers customers with the newest and greatest info always.
The Position of Technical Writers in Docs as Code
Within the strategy of Docs as Code, technical writers have an especially essential place. Whereas the builders write down the technical info, technical writers double-check that such info isn’t tough to learn, structured adequately, and straightforward to know for everybody.
Technical writers rework tough technical language into components anybody can perceive, and that is particularly essential in Agile tasks the place each software program and documentation get developed hand-in-hand.
Technical writers additionally work with builders, utilizing the identical Git repository in order that the documentation is at all times updated with the newest code.
Their information makes the documentation correct, well-organized, and useful. They overview updates, acquire ideas, and use automation instruments to catch small errors.
Generally, technical writers fill the hole between the technical aspect of growth and the wants of customers, making the entire documentation course of successful.
FAQ
What’s “Documentation as Code”?
Documentation as Code is a apply of writing and maintaining documentation in the identical method builders write and maintain code — by automation, Git, and model management. It retains the documentation up-to-date, reviewed, and versioned identical to the software program itself.
Do builders write all of the documentation in Docs as Code?
Not essentially. Whereas builders will contribute, technical writers are nonetheless crucial. They make the knowledge properly organized, readable, and clear to customers, even when it’s written in a code repository.
Why is it essential to maintain documentation in the identical Git repository as code?
Preserving code and documentation separate implies that each of them may be up to date on the identical time. It avoids stale info being utilized by groups and ensures customers get the newest and most correct documentation on a regular basis.