Scrum adalah model iteratif dan inkremental berdasarkan nilai-nilai lincah . Itu berarti Anda tidak memiliki fase desain terpisah. Idenya adalah Anda harus selalu berurusan dengan desain, sama seperti Anda terus-menerus berurusan dengan analisis, implementasi, pengujian, dan integrasi di seluruh proyek.
Anda perlu sedikit perencanaan agar ini berfungsi. Masukkan rapat perencanaan sprint , di mana tim memperkirakan tugas untuk sprint ke depan. Kebanyakan orang tidak menyadari ini bukan hanya pertemuan estimasi, tetapi juga upaya desain. Misalnya, tugas mungkin "Tambahkan kode untuk model mobil baru". Anda belum dapat memperkirakan ini, Anda perlu tahu lebih banyak. Jadi tim membahas desain dan menghasilkan solusi yang luas ("Mobil subkelas?") Dan menambahkannya sebagai pengingat untuk tugas tersebut. Anda jarang membutuhkan formalitas lebih dari itu. Anda sekarang memiliki ide bagaimana menyelesaikan masalah. Anda belum memiliki semua detail dan itu bagus, Anda cukup tahu desain untuk dapat membuat perkiraan yang nyaman. Tanpa harus membuat diagram sama sekali (pada titik ini).
Untuk dokumentasi fisik yang sebenarnya , saya sarankan untuk membuat diagram ikhtisar sistem di dinding agar dilihat semua orang. Tinjauan umum hanya perlu menyertakan kelas dan modul yang paling penting dan jarang harus diperbarui. Juga, membuat beberapa diagram keadaan untuk kelas paling penting dalam sistem sangat membantu. Taburi dengan beberapa diagram urutan pilih dari kasus penggunaan yang umum untuk memudahkan orang melihat dengan cepat bagaimana semua hal terhubung. Saya berasumsi Anda dapat menghasilkan diagram hierarki kelas dari kode Anda, sehingga masalah itu mudah diselesaikan.
Perhatikan bahwa semua diagram dibuat setelah implementasi aktual. Ini sesuai dengan "perangkat lunak yang berfungsi di atas dokumentasi yang komprehensif" dan desain tepat waktu.
Dan ya, kode yang dapat dibaca jelas merupakan dokumentasi.