Documentation as Code (DaaC) adalah pendekatan yang memperlakukan dokumentasi sebagai bagian tak terpisahkan dari codebase, ditulis oleh engineer, diversikan di Git, di-review, dan diuji dalam pipeline yang sama dengan kode. Panduan ini menjelaskan artinya, alasan tim mengadopsinya, dan tools yang membuatnya bekerja.

Documentation as Code (DaaC) adalah pendekatan yang memperlakukan dokumentasi sebagai bagian tak terpisahkan dari kode. Alih-alih berada di wiki yang terpisah, dokumentasi ditulis oleh engineer, disimpan di version control, di-review layaknya pull request, dan divalidasi otomatis di build pipeline.
“Satu-satunya hal yang lebih buruk daripada tidak ada dokumentasi adalah dokumentasi yang buruk.”
Terdengar sederhana, tetapi ini mengubah seluruh cara dokumentasi ditulis dan dipelihara. Berikut penjelasan apa itu DaaC, kenapa dokumentasi sering usang, bagaimana DaaC memperbaikinya, serta tools dan praktik yang mewujudkannya.
Documentation as Code (DaaC) adalah praktik mengelola dokumentasi dengan tools dan alur kerja yang sudah dipakai engineer untuk source code: version control, code review, pengujian otomatis, dan pipeline CI/CD.
Dalam praktik, dokumentasi disimpan berdampingan dengan kode yang dijelaskannya, dilacak di Git, di-review sebelum di-merge, dan diperiksa otomatis untuk format serta validitasnya. Dokumentasi berhenti menjadi pelengkap di sistem terpisah dan menjadi bagian utama dari software itu sendiri.
Tanya siapa pun apakah dokumentasi itu penting, jawabannya hampir selalu ya. Namun bahkan engineer yang menghargainya jarang bersemangat menulisnya. Biasanya ada dua anggapan di baliknya:
Akibatnya, dokumentasi menjadi usang, tidak lengkap, atau hilang sama sekali, yang diam-diam menggerus kualitas dan kemudahan pemeliharaan software.
DaaC menutup jurang antara pentingnya dokumentasi dan kenyataan cara penulisannya dengan satu pernyataan: dokumentasi adalah bagian dari kode. Kalimat sederhana ini mengubah cara dokumentasi diperlakukan:
Memperlakukan dokumentasi sebagai kode memberi keuntungan kualitas yang sama seperti praktik engineering yang baik:
DaaC memakai ulang tools yang sudah dimiliki tim untuk source code. Stack yang umum meliputi:
Beberapa kebijakan sederhana membuat DaaC melekat:
Di 8grams, kami menerapkan DaaC dengan tools yang sama seperti untuk source code, Git untuk versioning dan review, pemeriksaan docstring di CI, portal dokumentasi yang di-generate, serta bug tracker untuk masalah dokumentasi. Merge request tidak disetujui bila docstring hilang, sehingga dokumentasi tetap akurat seiring codebase bertumbuh.
Poin penting
Documentation as Code adalah praktik menulis, menyimpan, me-review, dan menguji dokumentasi dengan tools dan alur kerja yang sama seperti source code, version control, code review, dan pipeline CI/CD. Dokumentasi berada di samping kode dan diperlakukan sebagai bagian utama software.
Karena itu menjaga dokumentasi tetap akurat. Saat dokumentasi diversikan, di-review, dan divalidasi di build pipeline seperti kode, ia tetap selaras dengan software alih-alih usang di wiki terpisah.
Wiki disunting terpisah dari kode dan mudah usang. Documentation as Code berada di repository yang sama, mengikuti proses review yang sama, dan diuji otomatis, sehingga berkembang bersama kode yang dijelaskannya.
Tools yang umum meliputi Git dan GitLab/GitHub untuk version control dan CI, linter docstring seperti pydocstyle, generator seperti Sphinx, static site generator seperti Docsify, MkDocs, Hugo, atau Jekyll, serta issue tracker seperti Redmine atau Jira untuk bug dokumentasi.
Tidak. Technical writer tetap sangat bernilai untuk panduan dan konten yang menghadap pengguna. DaaC hanya membuat engineer bertanggung jawab atas dokumen yang hanya bisa mereka tulis, reference docs dan docstring, dan memberi semua orang satu sumber kebenaran yang sudah di-review.
Anda me-lint format dan cakupannya (misalnya menggagalkan build jika cakupan docstring turun di bawah ambang), memeriksa tautan dan struktur, serta memperlakukan dokumentasi yang tidak sesuai sebagai bug yang harus diperbaiki sebelum di-merge.
Docstring adalah dokumentasi yang ditulis langsung di source code untuk menjelaskan modul, kelas, atau fungsi. Tools bisa menegakkan format dan cakupannya serta meng-generate dokumentasi HTML yang bisa dijelajahi darinya.
Bisa. Karena sebagian besar konten DaaC ditulis dalam Markdown dan dipublikasikan ke portal, product manager, desainer, dan pemangku kepentingan lain bisa membacanya dengan mudah dan, dengan alur Git ringan, ikut menyunting.
Tidak. Ini bekerja untuk reference API, dokumen arsitektur, runbook, panduan onboarding, dan basis pengetahuan internal, apa pun yang diuntungkan dengan diversikan, di-review, dan dijaga selaras dengan kode.
Mulai dengan memindahkan dokumentasi ke repository kode, menambahkan linter docstring atau Markdown ke pipeline CI, mempublikasikan portal dokumentasi dengan static site generator, dan menjadikan dokumentasi yang hilang atau tidak valid sebagai penahan merge, lalu berkembang dari sana.
Ceritakan proyek Anda, kami balas dalam satu hari kerja.
Hubungi 8grams