Siapa yang akan membaca dokumentasi? Untuk apa dokumentasi itu digunakan? Ini adalah pertanyaan paling penting untuk dijawab. Sebagai contoh, dokumentasi untuk pengembang pemeliharaan akan lebih fokus pada struktur sedangkan dokumentasi untuk pengembang yang terintegrasi dengan produk akan lebih fokus pada layanan web dan struktur basis data.
Secara umum, lakukan dokumentasi sebanyak yang diperlukan dan tidak lebih. Banyak organisasi memerlukan dokumentasi karena seseorang bersikeras itu adalah praktik terbaik tetapi dokumentasi akhirnya menjadi debu.
Dengan asumsi bahwa orang benar-benar akan menggunakan dokumentasi, jangan mencoba untuk menangkap kode dan basis data ke tingkat terkecil. Pengembang akan melihat kode minutiae. Alih-alih, fokuslah pada detail yang tidak terlihat dalam kode , misalnya:
- Kasus penggunaan produk bertemu. Ini mungkin sulit mengingat usia produk tetapi menangkap apa yang dimaksudkan dengan produk tersebut memberikan konteks penting bagi pembaca dan penguji non-teknis. Siapa pesaing di pasar (jika ada)? Apakah ada yang dikecualikan dari ruang lingkup produk?
- Persyaratan non-fungsional yang jelas . Misalnya, apakah produk ditulis untuk menangani volume tertentu? Berapa umur data itu? Di mana caching digunakan? Bagaimana cara pengguna diautentikasi? Bagaimana cara kerja kontrol akses?
- Sebuah diagram konteks yang menunjukkan interaksi dengan sistem lain, seperti database, sumber otentikasi, backup, monitoring dan sebagainya.
- (Jika diketahui) Risiko dan bagaimana mereka dimitigasi bersama dengan register keputusan . Ini mungkin sulit dalam retrospeksi tetapi sering ada keputusan kritis yang mempengaruhi desain. Tangkap semua yang Anda tahu.
- Pola desain umum atau pedoman desain . Misalnya, apakah ada cara standar untuk mengakses database? Apakah ada standar pengkodean atau penamaan?
- Jalur kode kritis , biasanya menggunakan diagram alir atau aktivitas UML atau diagram urutan. Mungkin tidak ada dalam proyek ini tetapi ini biasanya yang diucapkan pengguna bisnis.
Bahkan jika semua informasi ini tidak tersedia, mulailah sekarang . Pengembang yang datang setelah Anda akan berterima kasih.
Tes unit otomatis yang baik atau kasus uji juga dapat menjadi dokumentasi yang bermanfaat, walaupun sulit diakses oleh orang yang kurang teknis.
Sepertinya Anda perlu melakukan perubahan budaya untuk memasukkan dokumentasi . Mulailah dari yang kecil tetapi, idealnya, proyek tidak boleh "diselesaikan" sampai setidaknya memiliki tingkat dokumentasi minimal. Ini mungkin langkah yang paling sulit karena hal-hal di atas bisa Anda kendalikan. Ini adalah sesuatu yang harus dibeli orang lain. Namun, itu juga bisa menjadi yang paling bermanfaat, terutama jika proyek berikutnya yang Anda lakukan disertai dengan dokumentasi yang baik.