Rekan-rekan programmer,
bagaimana Anda melakukan "perencanaan perangkat lunak" ketika riset akademis dilibatkan? Dan, di samping catatan, bagaimana Anda meyakinkan atasan Anda bahwa menulis perangkat lunak tidak seperti membangun rumah dan lebih seperti menulis novel ?
Detail berdarah di bawah ini.
Saya bertanggung jawab atas tim dev kecil yang bekerja di laboratorium penelitian. Kami mulai mengembangkan perangkat lunak dengan tujuan go public suatu hari nanti (yaitu menjual dan menghasilkan uang dari itu). Perangkat lunak tersebut tergantung pada, antara lain, setidaknya dua jalur penelitian independen: yaitu, setidaknya ada dua Ph.D. kandidat yang akan, mudah-mudahan, suatu hari keluar dengan implementasi kerja dari apa yang kita butuhkan.
Perangkat lunak utama juga tergantung pada sumber daya lain yang lebih konkrit yang dapat kita selaku pengembang: rendering grafik, deformasi tubuh lunak, dll.
Bos saya meminta saya untuk menulis spesifikasi, persyaratan DAN grafik GANTT berdarah dari seluruh proyek. Dihadapkan pada kenyataan bahwa saya tidak memiliki petunjuk tentang bagian penelitian, dan bahwa penelitian semacam itu adalah dasar untuk perangkat lunak, ia berkata "membuat asumsi." Untuk kejelasan argumennya, ia adalah seorang profesor yang bergelar Ph.D. siswa harus membuat penelitian yang kita butuhkan. Dan dia berasal dari latar belakang yang sangat ketat: rencanakan semuanya terlebih dahulu, tulis spesifikasi, dan baru kemudian tulis kode bahwa "itu bagian terakhir".
Apa yang saya lakukan sekarang:
- Saya merusak produk dalam fitur; setiap 'fitur' adalah, secara de facto , produk terpisah;
- Setiap fitur dibangun di atas yang sebelumnya;
- Setelah fitur (A) memiliki prototipe yang berfungsi, tim dapat mulai bekerja pada fitur berikutnya (B), sementara QA untuk dilakukan untuk A (jika uang memungkinkan, lebih banyak orang dapat dimasukkan, dll.);
- Fitur yang bergantung pada penelitian akan datang terakhir: saat itu, semoga, bagian penelitian akan selesai ( ketika masih merupakan pertanyaan besar);
Juga, saya mengatur tim untuk menggunakan SCRUM untuk pengembangan 'versi 1.0 ', yang akan selesai dalam beberapa bulan. Tenggat waktu ini dapat ditetapkan berdasarkan asumsi yang masuk akal: kami mencantumkan semua fitur yang diperlukan, kami menghitung ketersediaan kami, dan kami memberikan perkiraan yang masuk akal.
Jadi pertanyaan saya, sekali lagi, adalah:
- Bagaimana cara membuat bos saya bahagia sementara pada saat yang sama mendapatkan sesuatu di luar pintu?
- Bagaimana cara menulis spesifikasi untuk sesuatu yang kami-pengembang-tidak tahu apakah itu mungkin dilakukan atau tidak? (Kami masih belum memutuskan perpustakaan mana yang akan digunakan untuk beberapa tugas; kami akan melakukannya ketika kami perlu)
- Bagaimana saya mendapatkan persyaratan untuk itu, mengingat belum ada klien atau investor, hanya banyak minat dan janji?
- Bagaimana caranya mendapatkan kedamaian di dunia?
Saya yakin setidaknya salah satu pertanyaan saya akan dijawab :)
ps: Saya menulis ini secara anonim karena investor potensial mungkin menjadi bumerang jika ini ditemukan. Semoga Anda mengerti. Namun saya harus mengatakan saya tidak suka mentalitas 'menyembunyikan kebenaran': program ini kemungkinan akan menguntungkan banyak orang, dan tidak dapat berbicara secara terbuka tentang hal ini (dengan nama dan reputasi saya terlampir) terasa seperti sensor. Namun sayang, saya lebih peduli dengan saran Anda sekarang.