Pertimbangkan pendekatan yang gesit. Maksud saya, jika Anda memiliki sumber daya waktu dan keterampilan menulis yang sangat baik untuk menuliskan setiap keputusan desain yang Anda buat bersama dengan alasan mereka, cukup dokumentasikan semuanya. Secara realistis, saya berasumsi Anda tidak dalam posisi seperti itu. Pendekatan gesit dapat membantu dengan tantangan utama untuk dokumentasi rasional: Anda sering tidak tahu rasional mana yang penting sampai nanti.
Mari kita mendekati masalah dari sudut pandang holistik. Kalian punya alasan untuk keputusanmu. Mereka terjebak dalam squishyware sekarang, otak tim. Terlepas dari jumlah dokumentasi kredit yang didapat, menyimpan alasan dalam sqishyware tidak terlalu buruk. Kami sebenarnya sangat baik sebagai spesies dalam mengingat hal-hal penting. Itu sebabnya setiap perusahaan besar memiliki "pengetahuan kesukuan," bahkan ketika perusahaan-perusahaan itu berusaha mendokumentasikan semua pengetahuan kesukuan itu.
Sekarang kamu punya masalah. Anda menemukan bahwa sqiushyware tidak memiliki alasan yang cukup baik. Baik untuk Anda karena menyadari ada masalah, dan mengidentifikasi bahwa itu perlu dipecahkan! Itu tidak selalu merupakan langkah yang mudah! Jadi kami cukup yakin solusinya adalah membongkar beberapa alasan itu ke dalam dokumentasi. Namun, itu tidak cukup. Kami tidak pernah bisa melupakan bagian kedua dari teka-teki, yang memuat ulang alasan ke dalam squishyware ketika Anda perlu membuat keputusan. Saya telah melihat banyak tim yang mendokumentasikan semuanya seperti orang gila, tetapi kontennya sebenarnya tidak terorganisir untuk membantu membuat keputusan yang baik, sehingga mereka akhirnya melupakan alasan - alasan meskipun ditulis .
Jadi, Anda memiliki proses dua langkah. Anda perlu mendapatkan alasan keluar dari squishyware dan ke dokumentasi. Maka Anda perlu memastikan bahwa dokumentasi diatur dengan cukup baik untuk mengembalikan rasional ke dalam squishyware saat Anda membutuhkannya! Sekarang saya pikir kita sudah cukup memiliki pernyataan masalah untuk menyadari di mana tantangan akan suka. Ketika Anda mendokumentasikan, Anda biasanya tidak tahu siapa yang akan melihatnya nanti, atau apa yang mereka cari. Demikian juga, ketika Anda melihat kembali pada dokumentasi, Anda biasanya tidak tahu apa yang Anda cari (paling baik Anda tahu kapan).
Jadi perusahaan besar mungkin mencoba menangani ini dalam dua blok besar. Pertama, mereka dapat mengembangkan persyaratan berdasarkan apa yang dibutuhkan orang ketika mereka meneliti dokumentasi. Kemudian mereka menggunakan persyaratan itu untuk membangun proses untuk mengembangkan dokumentasi tersebut. Dan, jika saya berani mengatakan demikian, maka semua orang mengeluh karena hampir tidak ada yang tahu persis seperti apa dokumentasi pada hari pertama. Dokumentasinya selalu tidak lengkap, dan pengembang selalu mengeluh bahwa prosesnya terlalu berat.
Saatnya lincah.
Saran saya adalah memulai upaya tangkas untuk meningkatkan proses dokumentasi Anda: keseluruhan sembilan meter dari squishyware ke dokumen dan kembali ke squishyware. Ketahuilah bahwa Anda akan kehilangan beberapa informasi karena proses Anda tidak sempurna, tetapi tidak apa-apa karena Anda masih mencoba mencari tahu prosesnya! Anda akan kehilangan lebih banyak jika Anda mencoba membuat satu ukuran cocok untuk semua solusi.
Beberapa informasi khusus yang akan saya bahas: * Jelajahi dokumentasi informal. Dokumentasi formal memang bagus, tetapi memakan waktu. Salah satu tujuan dokumentasi adalah merilis informasi dari pengembang squishyware dan menaruhnya di atas kertas. Dokumentasi informal membuat biaya untuk melakukan hal tersebut seminimal mungkin.
- Terima format dokumentasi yang tidak dapat diandalkan. Tidak ada yang benar pertama kali. Lebih baik mendapatkan data dan mencari tahu bagaimana membuatnya dapat diandalkan nanti. Misalnya, Anda dapat mendokumentasikan alasan Anda di blok <rationale> </rationale> atau yang serupa, yang akan memudahkan untuk memanen data itu nanti. Menyimpan alasan dalam cerita pengguna, untuk saat ini, baik-baik saja!
- Jangan pernah lupakan nilai organisasi. Cari tahu bagaimana Anda, sebagai sebuah tim, suka mencari alasan dalam dokumentasi, dan mencoba mendokumentasikannya. Setiap tim akan memiliki proses yang berbeda. Di salah satu tim saya, kami tidak pernah dapat menemukan tiket yang memiliki alasan itu segera. Apa yang bisa kita lakukan adalah menemukan garis kode yang penting, melakukan a
svn blame
untuk mencari tahu ketika itu berubah dan mengapa, lalu lihat tiketnya. Setelah kami berada di sana, kami biasanya meletakkan semua alasan yang kami butuhkan tepat di tiket. Itu hanya bekerja untuk kita, cari tahu apa yang cocok untukmu
- Dokumentasi organik dapat tumbuh seiring waktu. Jarang bagi pengembang untuk mengetahui alasan mana yang paling penting pada hari mereka perlu menulisnya. Kami biasanya mencari tahu mana yang penting nanti. Jika Anda memiliki proses perawatan untuk dokumentasi yang memungkinkan pengembang untuk mengelola kebun rasional mereka sendiri, yang penting akan muncul ke permukaan. Yang lebih penting, alasan mungkin berubah. Anda mungkin menyadari bahwa dua perubahan yang berbeda, dengan dua alasan yang berbeda, benar-benar digambarkan oleh satu alasan yang cocok untuk keduanya. Sekarang ada lebih sedikit konten antara Anda dan keputusan!