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.
Jawaban:
Saya sudah beberapa kali berada di posisi itu, dan dengan pengalaman, Anda tidak dapat mengandalkan mahasiswa PhD untuk memberikan penelitian yang relevan, dan Anda tentu tidak dapat mengandalkannya pada skala waktu yang berguna. Mahasiswa PhD secara khusus diizinkan untuk pergi ke tempat minat penelitian mereka membawa mereka, dan mungkin sangat sulit untuk menjadi hilir ketika tiba-tiba mereka pergi di jalur samping yang relevan bagi mereka tetapi tidak bagi Anda. Ini adalah sumber risiko utama bagi proyek Anda, jadi Anda harus menggunakan strategi mitigasi risiko yang sesuai dalam rencana proyek Anda.
Karena itu, kerjakan ketika Anda harus mengirimkannya (lihat hibah penelitian; ditentukan oleh pendanaan Anda dan bukan apa pun yang lain) dan berapa lama waktu yang dibutuhkan untuk melakukan pengiriman dengan asumsi bahwa penelitian tersebut disampaikan . Ini akan membutuhkan beberapa tebakan yang luar biasa, tetapi itu tidak bisa dihindari; buat tebakan itu secara eksplisit dalam estimasi waktu . Kemudian, kelola risiko dengan tetap berhubungan cukup dekat dengan mahasiswa PhD (misalnya, duduk di sesi tutorial mereka sebulan sekali) sehingga jika sepertinya mereka tidak akan memberikan apa yang Anda butuhkan tepat waktu, Anda dapat pikirkan strategi mitigasi secara terperinci. Jika Anda beruntung, taruhan akan terbayar dan Anda akan mendapatkan sesuatu yang berguna dari penelitian. Hal-hal aneh telah terjadi.
Semua yang lain akan mengikuti dari mengetahui siapa pelanggan Anda akan menjadi, dan berpikir tentang bagaimana Anda ingin mereka menggunakan produk akhirnya (dan bagaimana mereka benar-benar akan menggunakannya juga). Jika Anda tidak tahu itu, Anda tidak akan menjual kepada siapa pun. Tetapi Anda harus mengetahuinya, atau setidaknya segera mengetahuinya. (Jika ditentukan oleh bagian penelitian, Anda dalam masalah besar! Proyek penelitian pasti dapat menghasilkan hasil negatif - atau sebagian negatif; itu terjadi setiap saat, bahkan jika itu tidak selalu dilaporkan secara luas.)
Sebagai poin terakhir, saya pikir sangat memalukan bahwa Anda melakukan ini secara anonim, karena semua yang Anda lakukan adalah mencari nasihat tentang jenis manajemen proyek tertentu. Anda tidak menyebutkan apa subjek penelitian ini atau siapa yang melakukannya atau siapa saja kolaborator Anda, juga tidak masalah untuk pertanyaan ini. Satu-satunya cara itu bisa menjadi masalah adalah jika Anda mencari pendanaan non-R & D sebelum penelitian disampaikan, tetapi itu akan mengharuskan Anda untuk mengungkapkan tingkat risiko yang terlibat (mungkin mengacaukan investasi!) Atau menjadi sangat tidak jujur; karena Anda berencana untuk jujur, itu tidak akan muncul karena proyek seharusnya hanya mencari pendanaan semacam itu setelah risiko lebih pasti. (Jika Anda - sebagai kelompok - tidak jujur dengan calon investor, itu masalah di sana dan itu akan berakhir dengan air mata. Atau tuntutan hukum.)
sumber
Jadilah cerdas dan selesaikan semuanya.
Jika Anda tidak tahu antarmuka apa yang Anda gunakan, itu masalah. Masukan apa yang Anda berikan pada kotak ajaib? Output apa yang Anda dapatkan dari kotak ajaib? Itu juga akan membantu para peneliti mendefinisikan apa itu sihir.
Jika akademik Anda didanai oleh hibah, maka dia mungkin menulis proposal penelitian. Pegang itu. Jika itu seperti proposal hibah penelitian yang pernah saya lihat (dan tulis), itu akan memiliki garis waktu dan "spesifikasi" dari apa yang mereka coba lakukan.
Persyaratan adalah apa yang pengguna akhir dari algoritma / hal-a-ma-jig. Lihat apakah Anda dapat mewawancarai mereka (atau calon pelanggan / klien).
Kalau tidak, makanlah makanan anjing Anda sendiri.
Menyimpang dari topik :-)
sumber
Saya pikir dalam hal perencanaan penelitian pengembangan dalam satu pergi dan tgen berkembang tidak bekerja dengan baik. Saya bekerja di sebuah lembaga penelitian, dan kami bekerja lebih banyak menggunakan prototyping cepat. Seringkali mengembangkan prototipe menghasilkan wawasan tentang apa yang sebenarnya dibutuhkan. Dengan membuat prototipe dengan cepat, Anda bisa mendapatkan umpan balik dari bos dan peneliti dan menentukan apakah ini yang mereka harapkan, dan juga melihat apakah pendekatan Anda berhasil. Setelah itu Anda dapat memperbaiki dan meningkatkan kode Anda. Inilah yang saya lihat dalam praktiknya di institut penelitian tempat saya bekerja.
sumber