Tergantung pada proyek, jika Anda bekerja sendiri pada proyek kecil, mungkin masuk akal untuk melakukan riset dan investigasi teknologi Anda sebagai bagian dari pengembangan. Dan meskipun bukan bagian dari Agile, tentu saja metodologi Agile dapat digunakan untuk menambahkan beberapa kontrol untuk ini. Namun ini membuat prosesnya sangat sulit untuk diprediksi / atau kotak waktu. Mungkin baik-baik saja, bahkan lebih cepat, jika bekerja sendirian di proyek kecil yang sepenuhnya milik Anda, biarkan persyaratan Anda terungkap saat Anda mempelajarinya. Gunakan prinsip yang baik di sepanjang jalan, dan konsisten dan Anda tidak perlu terlalu banyak faktor.
Di tempat kerja kami menggunakan Kanban, Scrum, dan pendekatan air terjun yang lebih tradisional. Bergantung pada proyek, saya menemukan bahwa perkembangan kompleks dengan persyaratan di muka yang terdefinisi dengan baik tidak paling cocok untuk gesit, namun banyak yang akan tidak setuju.
Sebelum kita mulai bekerja bahkan pada proyek yang gesit (semua kecuali yang paling sederhana), kami membuat beberapa dokumentasi. Kami memiliki mock up (jika ui fokus), satu set persyaratan, dan spesifikasi fungsional.
Pengembangan akan diminta untuk membuat spesifikasi teknis dari spesifikasi fungsional, dan selama proses ini kami akan menentukan teknologi dan melakukan penelitian awal yang kami butuhkan. Proses ini tampaknya sangat penting bagi saya, karena memberikan kesempatan untuk melihat kesenjangan dalam persyaratan / spesifikasi fungsional - dan memberikan keputusan teknologi besar di muka kepada orang-orang dengan pengalaman dan pengetahuan sistem untuk membuat keputusan seperti itu.
Namun yang penting, adalah bahwa spesifikasi fungsional bisa menjadi daftar poin-poin, dan spesifikasi teknologi biasanya akan menjadi model, dengan beberapa poin-poin dan teknologi mengarahkan, mungkin hanya 3 atau 4 halaman dalam beberapa kasus.
Bahkan ketika menjalankan proyek gesit kami membuat dokumentasi:
- Semua dokumentasi memiliki biaya.
- Berkembang melawan persyaratan tingkat tinggi yang bergerak dan tidak jelas memiliki biaya.
- Keseimbangan yang tepat untuk hal di atas tergantung pada proyek Anda, budaya, dan orang-orang.
- Kami mendokumentasikan Tepat pada waktunya, dokumen keluar dari tanggal.
- Kami mendokumentasikan cukup / cukup.
- Kami tidak memelihara atau memperbarui dokumen-dokumen ini, kami tidak berupaya keras untuk mendapatkannya. Mereka kecil. Kami berharap akan membuangnya.
- Kami mengatasi hal-hal besar yang tidak diketahui seperti keputusan teknologi, persyaratan kabur, dan arsitektur di muka.
- Kami tahu apa yang kami kembangkan sebelum kami mulai.
- Kami memercayai pengembang untuk membuat keputusan berdasarkan dokumentasi dan mendiskusikan masalah apa pun.
- Kami menghargai komunikasi daripada dokumentasi, karena itu kami berharap semua yang terlibat sering berkomunikasi.
- Kami mendokumentasikan sistem (ikhtisar) setelah pengembangan, bukan selama, bukan sebelumnya.
Anda lihat ada air terjun kecil dalam proses tangkas kami.
Jika Anda bekerja sendiri, buat model dimuka (diagram!) Dan mainkan dan pilih teknologi, dan kemudian ketika Anda memiliki konsep persyaratan tingkat tinggi ini, maju terus dan kembangkan dengan cara berulang yang gesit, tetapi pertimbangkan prinsip-prinsip yang baik dan konsistensi saat Anda pergi dan Anda akan perlu faktor ulang lebih sedikit, lebih banyak faktor ulang saat Anda pergi.
Tetapi secara umum, jika ada biaya nyata yang terlibat (bukan hobi) tahu apa yang Anda kembangkan sebelum Anda menulis kode, tetapi jangan buang terlalu banyak waktu menulis dokumentasi yang akan menjadi berlebihan cepat karena Anda akan berubah pikiran, dan harus mengubah pikiran Anda selama pengembangan saat Anda menjadi lebih baik. Dan proyek Anda bisa berubah arah, tetapi mulai dari fondasi yang bagus dan terdefinisi dengan baik.