Merencanakan pengembangan ketika penelitian akademis dilibatkan

11

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:

  1. Saya merusak produk dalam fitur; setiap 'fitur' adalah, secara de facto , produk terpisah;
  2. Setiap fitur dibangun di atas yang sebelumnya;
  3. 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.);
  4. 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.

Pengguna Anonim Lainnya
sumber
Berbicara sebagai seorang mantan mahasiswa PhD yang bekerja selama bertahun-tahun dalam apa yang terasa seperti lubang hitam stagnasi dan ketidakjelasan, saya akan sangat senang (dan juga takut) mengetahui bahwa para profesional berdiri dengan menunggu untuk melakukan sesuatu yang berguna dengan pekerjaan saya. Itu akan sangat memotivasi. Saya melihat pertanyaan ini ditanyakan hampir setahun yang lalu, tetapi jika situasinya tetap sama, maka saya akan tertarik untuk mengetahui berapa banyak kontak yang Anda miliki dengan para siswa. Mungkin membantu untuk memberi tahu mereka bahwa Anda mendukung mereka!
octern

Jawaban:

6

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.)

Donal Fellows
sumber
Donal, terima kasih atas jawaban Anda. Anda menaikkan beberapa poin bagus; terutama pada manajemen risiko. Pada penelitian, ya, mereka seharusnya menemukan hasil negatif: begitulah penelitian dilakukan! Jika Anda sudah tahu apa yang akan Anda dapatkan, itu bukan penelitian, itu iklan. Pada kebutuhan untuk tetap anonim: itu karena dari akun stackexchange saya, Anda dapat melihat di profil karir saya siapa saya dan di mana saya bekerja. Itu mungkin membahayakan gaji masa depan tim saya (ya, kami mencari dana non-r & d). Jika itu hanya aku, aku akan jujur. Tapi bukan uang saya yang membayar mereka sekarang, jadi saya harus berhati-hati.
Pengguna Anonim Lain
1
Jawaban yang sangat bagus. Bahkan dalam jenis pengembangan perangkat lunak komersial yang telah saya lakukan, ada beberapa hal yang tidak diketahui di mana Anda hanya perlu menebak dengan spesifikasi dan jadwal. Selama semua orang tahu itu adalah tebakan dan dapat berubah, tidak apa-apa. Satu hal yang dapat Anda lakukan dengan item penelitian adalah bahwa untuk setiap nomor yang harus Anda berikan (tanggal, uang, dll.), Tebak dan berikan kasus yang baik (peluang 10% itu akan berjalan dengan baik), diharapkan (50%) , dan nilai kasus buruk (90%). Juga, untuk mitigasi pada hal-hal yang tidak diketahui, cobalah untuk memiliki "Plan B" (dan idealnya rencana C dan D) di saku belakang virtual Anda.
Bob Murphy
Masalah dengan bergantung pada penelitian adalah bahwa ada peluang kuat Anda akan berakhir dengan jawaban "pasti negatif": bahwa apa yang Anda inginkan untuk produk tidak hanya membutuhkan sesuatu yang tidak diketahui, tetapi sesuatu yang tidak dapat dibuat. Atau bahwa penelitian tidak pernah memberikan apa pun yang relevan sama sekali (risiko nyata dengan PhD). Intinya untuk mendapatkan investasi besar adalah setelah Anda memiliki sedikit bukti konsep, sehingga Anda tahu setidaknya itu bisa dilakukan dan yang harus Anda lakukan hanyalah menyelesaikan bagaimana membuatnya bisa digunakan dan dipasarkan.
Donal Fellows
2

Bagaimana cara membuat bos saya bahagia sementara pada saat yang sama mendapatkan sesuatu di luar pintu?

Jadilah cerdas dan selesaikan semuanya.

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)

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.

Bagaimana saya mendapatkan persyaratan untuk itu, mengingat belum ada klien atau investor, hanya banyak minat dan janji?

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.

Bagaimana caranya mendapatkan kedamaian di dunia?

Menyimpang dari topik :-)

Peter K.
sumber
2

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.

Paul Hiemstra
sumber