Apa perbedaan antara pengembangan dan R&D?


39

Saya diminta oleh seorang kolega untuk menjelaskan dengan jelas perbedaan antara pengembangan biasa dan penelitian dan pengembangan (R&D) dan tidak mampu melakukannya. Setelah membaca Wikipedia, saya masih belum memiliki jawaban yang tepat.

Menurut Wikipedia (sedikit dimodifikasi):

Ada dua model utama:

  • Dalam satu model, fungsi utama adalah mengembangkan produk baru ;

  • dalam model lain, fungsi utamanya adalah untuk menemukan dan menciptakan pengetahuan baru tentang topik - topik ilmiah dan teknologi untuk tujuan mengungkap dan memungkinkan pengembangan produk, proses, dan layanan baru yang berharga.

Model pertama membingungkan. Apakah itu berarti pengembangan (bukan R&D) terdiri secara eksklusif dalam menambahkan fitur-fitur baru ke suatu produk, menyelesaikan bug dan melakukan pemeliharaan? Bagaimana jika sesuatu yang sebelumnya dikembangkan sebagai fitur baru menjadi produk terpisah?

Model kedua kurang membingungkan, tetapi masih, bagaimana memenuhi syarat apakah sesuatu itu pengetahuan baru atau pengetahuan yang ada yang baru saja ditemukan kembali?

Kemudian, Wikipedia menambahkan bahwa perkembangan biasa berbeda dari R&D karena:

keuntungan hampir instan atau perbaikan segera.

Masih belum cukup jelas. Bagaimana cara memenuhi syarat "laba hampir instan"? Bagaimana jika suatu tugas memiliki keuntungan langsung tetapi membutuhkan penelitian yang berat? Atau jika itu dasar tetapi memiliki laba yang tidak pasti, seperti penegakan gaya umum atas basis kode?

Misalnya, apakah itu milik pengembangan atau R&D untuk:

  • Mengembangkan mesin yang mengabstraksi akses ke database, menyederhanakan dan memperpendek kode aplikasi lain (ada atau yang akan ditulis di masa depan) yang mana yang harus mengakses ke database?

  • Membangun arsitektur berorientasi layanan baru untuk seluruh organisasi sumber daya perusahaan, untuk beralih dari sekelompok aplikasi terpisah dan otonom ke satu set layanan web yang terorganisir dengan baik, saling berhubungan, seperti apa yang digunakan oleh Amazon?

  • Merancang protokol komunikasi baru untuk memungkinkan replikasi data yang lebih cepat antara dua pusat data perusahaan?

  • Bayangkan jenis pengujian perangkat lunak baru saat mengerjakan produk tertentu, mengetahui bahwa jenis pengujian ini akan meningkatkan / menyederhanakan proses pengujian?

  • Buktikan bahwa pemrograman fungsional lebih tepat daripada OOP untuk aplikasi tertentu, berdasarkan bukti, logika dan pengalaman sebelumnya?

  • Tingkatkan aplikasi yang ada dengan menambahkan gerakan pada layar taktil, setelah melakukan penelitian dan pengujian yang menunjukkan bahwa gerakan itu meningkatkan produktivitas pengguna dengan rasio setidaknya 1,4 untuk serangkaian tugas yang tepat?

  • Temukan cara untuk sangat meningkatkan efektivitas penggunaan daya (PUE) dari pusat data?

  • Buat Bahasa Domain-Khusus (DSL)?

Singkatnya, bagaimana saya bisa menentukan apakah saya sedang melakukan R&D sambil mengerjakan sesuatu?


21
Erm ... R&D termasuk penelitian?
Robert Harvey

Jawaban:


37

Pertanyaan bagus

Penting untuk membedakan antara 'Pembangunan' dan 'R&D.'

  • Butir 1

R&D = bereksperimen dengan ide / teknologi yang mungkin tidak pernah benar-benar menjadi produk.

Pengembangan Perangkat Lunak = bekerja pada produk / layanan yang diinginkan oleh pelanggan nyata.

  • Poin 2

R&D adalah tentang mengembangkan solusi baru untuk domain masalah tertentu. Hasil akhir dari usaha ini adalah sesuatu yang saya sebut "mainan riset".

Untuk menjadi produk perangkat lunak, mainan penelitian harus sepenuhnya diimplementasikan kembali. Kegagalan untuk melakukannya akan menghasilkan produk yang menarik bagi basis pengguna yang semakin elit dan terpelajar. Masalahnya di sini adalah bahwa basis pengguna elit dan terpelajar ini biasanya tidak memiliki uang untuk dibelanjakan.

Untuk menjadi sukses, produk perangkat lunak harus menjadi implementasi ulang yang setia dari mainan penelitian, dapat diakses dan dicintai oleh pengguna komoditas. Agar benar-benar luar biasa, produk perangkat lunak harus serentak menarik bagi pengguna elit dan terpelajar.

  • Poin 3

Penelitian menyiratkan penyelidikan ilmiah atau ilmiah dan cenderung ditujukan untuk kebaikan industri atau masyarakat secara luas. Pengembangan produk memiliki motivasi dan hasil yang berbeda: didorong oleh potensi keuntungan. Keadaan pengembangan produk sehat. Keadaan penelitian pencahayaan tidak.

Kita membutuhkan komitmen kolektif untuk kebaikan yang lebih besar untuk menjawab pertanyaan seperti itu. Tapi ini bukan hanya filantropi; jawabannya akan membahas tujuan praktis. Sumber cahaya yang secara spektral disetel ke sistem visual akan lebih berkelanjutan. Mereka akan menggunakan lebih sedikit energi dengan menghasilkan output mereka di daerah spektrum di mana sistem visual merespon paling kuat, menghasilkan penglihatan yang lebih baik untuk membangun pengguna. Contoh ini memperkuat perbedaan antara penelitian dan pengembangan produk.

  • Poin 4

Semua pengembangan produk baru menjadi R&D. Saya pikir beberapa dari Anda membingungkan murni, ilmu abstrak dengan R&D. Mereka tidak sama. R&D dapat sangat berorientasi pada produk. Para ilmuwan mungkin sedang mencari vaksin untuk menyembuhkan AIDS. Itu adalah tugas yang sangat spesifik untuk menciptakan suatu produk untuk dijual dan sudah pasti R&D dan bukan hanya orang-orang yang bermain-main dengan apa pun yang mereka inginkan.

  • Butir 5

Litbang di dunia teknis = menemukan cara untuk melakukan sesuatu yang menarik atau penting, menggunakan teknik dan teknologi yang dikenal sebagai titik awal.

Pengembangan perangkat lunak = menemukan cara untuk melakukan sesuatu yang menarik atau penting, menggunakan teknik dan teknologi yang dikenal sebagai titik awal.

  • Poin 6

Hampir semua pengembangan perangkat lunak adalah bagian D dari R&D. Beberapa kali, ada sangat sedikit R dalam Perangkat Lunak 'R&D'. Beberapa kali, ada R yang cukup besar di Perangkat Lunak 'R&D'.

Itu tergantung pada beberapa pengukuran. Sebagai contoh,

Mengelola pengembangan perangkat lunak untuk berbagai perusahaan ukuran, R&D memiliki arti yang berbeda tergantung pada ukuran perusahaan, basis pelanggan, dll.

Dalam sebuah perusahaan perangkat lunak kecil, dengan hanya satu tangan penuh karyawan, garis antara perangkat lunak R&D dan perangkat lunak Produksi biasanya sangat kecil. Apa yang suatu hari merupakan proyek R & D perangkat lunak, mungkin hari berikutnya dikirimkan sebagai perangkat lunak produksi kepada pelanggan.

Ketika perusahaan perangkat lunak tumbuh, dan mereka memiliki satu atau lebih lini perangkat lunak produksi, mereka cenderung menciptakan pemisahan yang lebih besar antara proyek perangkat lunak R&D dan produk perangkat lunak Produksi (untuk alasan yang jelas). Kesenjangan R&D ini biasanya dibuat untuk menciptakan diversifikasi yang lebih besar dalam produk perangkat lunak mereka untuk besok, sementara memungkinkan pengembangan perangkat lunak produksi untuk terus menghasilkan hari ini.

Ini bukan untuk mengatakan bahwa produk-produk perangkat lunak produksi tidak akan mendapatkan fitur-fitur baru yang inovatif. Pengembang perangkat lunak produksi biasanya sama tajamnya dengan pengembang R&D. Bahkan, di satu perusahaan, kami memiliki program pengayaan yang memungkinkan pengembang perangkat lunak produksi untuk keluar masuk proyek R&D. Ini tidak hanya menambah kekuatan otak baru ke tim R&D, tetapi dalam banyak kasus, pengembang produksi kembali dengan ide-ide baru untuk memproduksi perangkat lunak tingkat produksi yang lebih baik.

  • Butir 7

D = "mengetahui di mana Anda ingin berada di akhir", dan R adalah karena "pada awal proyek, Anda tidak tahu apa yang diperlukan untuk sampai di sana"

  • Poin 8

R&D adalah orang-orang beruntung yang dapat melakukan apa pun yang mereka inginkan tanpa akuntabilitas.

Riset / sumber yang bagus tentang topik ini:


1
Saya pikir satu-satunya hal yang belum Anda sebutkan secara eksplisit - Hampir semua pengembangan perangkat lunak adalah bagian D dari R&D. Ada sangat sedikit R di sebagian besar 'R & D' Perangkat Lunak - Semua contoh dalam OP adalah Pengembangan.
mattnz

@ mattnz, saya setuju dengan Anda. sekarang saya telah memasukkan poin Anda pada jawaban saya. Terima kasih atas sarannya. :)
Md Mahbubur Rahman

9

Perbedaannya terletak pada ekspektasi.

  • Ketika saya bekerja di R&D, saya terutama diharapkan untuk memberikan hasil penelitian .

  • Ketika saya telah bekerja dalam pengembangan, saya terutama diharapkan untuk menyediakan perangkat lunak yang berfungsi .

Ini tidak sepenuhnya terpisah, dan mungkin ada area abu-abu yang cukup besar di antaranya. Dalam perkembangan, kadang-kadang terjadi bahwa saya diharapkan melakukan penelitian . Demikian juga, di salah satu proyek penelitian, saya ditugaskan untuk mengembangkan program tertentu.


8

Seperti yang dikatakan orang lain, R&D melibatkan penelitian. Bagi saya, penelitian sedang mengerjakan sesuatu yang tidak diketahui orang saat ini. Jika sudah dilakukan, itu bukan penelitian, meskipun mungkin memerlukan investasi waktu yang signifikan untuk mempelajari solusi yang ada dan literatur.

Tentang daftar Anda:

  • Mengembangkan mesin yang mengabstraksi akses ke database, menyederhanakan dan memperpendek kode aplikasi lain (ada atau yang akan ditulis di masa depan) yang mana yang harus mengakses ke database?

Banyak ORM ada. Kecuali jika Anda melakukan sesuatu yang benar-benar berbeda, saya tidak akan menganggapnya sebagai R&D.

  • Membangun arsitektur berorientasi layanan baru untuk seluruh organisasi sumber daya perusahaan, untuk beralih dari sekelompok aplikasi terpisah dan otonom ke satu set layanan web yang terorganisir dengan baik, saling berhubungan, seperti apa yang digunakan oleh Amazon?

Nggak.

  • Merancang protokol komunikasi baru untuk memungkinkan replikasi data yang lebih cepat antara dua pusat data perusahaan?

Jika ini membaik pada protokol yang dikenal, maka saya akan mempertimbangkan R&D ini.

  • Bayangkan jenis pengujian perangkat lunak baru saat mengerjakan produk tertentu, mengetahui bahwa jenis pengujian ini akan meningkatkan / menyederhanakan proses pengujian?

  • Buktikan bahwa pemrograman fungsional lebih tepat daripada OOP untuk aplikasi tertentu, berdasarkan bukti, logika dan pengalaman sebelumnya?

  • Tingkatkan aplikasi yang ada dengan menambahkan gerakan pada layar taktil, setelah melakukan penelitian dan pengujian yang menunjukkan bahwa gerakan itu meningkatkan produktivitas pengguna dengan rasio setidaknya 1,4 untuk serangkaian tugas yang tepat?

  • Temukan cara untuk sangat meningkatkan efektivitas penggunaan daya (PUE) dari pusat data?

  • Buat Bahasa Domain-Khusus (DSL)?

Tak satu pun dari hal-hal ini tampaknya termasuk penelitian. Untuk memberikan contoh lain dari hal-hal yang akan saya pertimbangkan R & D:

  • Meningkatkan inferensi tipe dalam Scala, memungkinkan penyatuan yang lebih baik

  • Ciptakan pengoptimalan kompiler jenis baru

  • Buat database baru yang memiliki perbedaan signifikan dari yang sudah ada - katakanlah seperti CouchDB ketika itu dikandung

  • Kembangkan perpustakaan yang berfungsi dan dapat digunakan untuk pemrograman reaktif fungsional

  • Temukan exploit baru dalam perangkat lunak atau protokol yang ada

  • Temukan algoritma kompresi baru


3

Secara informal, cara saya mendefinisikannya (dan bagaimana saya secara umum melihatnya digunakan dalam praktik) adalah sesuatu seperti:

Ungkapan R & D digunakan untuk menandakan bahwa Anda tidak yakin tentang pendekatan yang tepat untuk mencapai sesuatu, dan / atau jika itu bahkan dapat dilakukan, dan seberapa baik itu akan berhasil.

(EDIT: diulang sedikit)

Pada dasarnya, ini adalah cara cepat dan umum untuk mengatakan bahwa ada sesuatu yang tidak diketahui di depan. Mencoba menjawab pertanyaan Anda yang sebenarnya, itu benar-benar tergantung pada siapa yang melakukan klasifikasi; banyak dari barang-barang itu tampaknya termasuk komponen penelitian yang signifikan, tetapi saya kira ada beberapa orang yang dapat mencapai banyak dari mereka tanpa penelitian apa pun. Itu tergantung pada tugas, dan individu.

Melihat daftar yang sebenarnya, saya pribadi akan mengklasifikasikan berdasarkan apakah saya telah melakukan sesuatu yang cukup serupa di masa lalu, dan karena itu akan sangat percaya diri dengan apa yang akan saya lakukan (atau setidaknya, dapat memberikan rata-rata yang baik) perkiraan).


0

$ 40.000 per tahun kenaikan gaji?

Dalam R&D, kadang-kadang R menggunakan penelitian untuk menggambarkan hal yang juga digambarkan sebagai pengembangan teknologi di mana kami menemukan cara melakukan sesuatu yang kami tidak tahu bagaimana melakukannya. Mungkin digambarkan sebagai riset terapan, kita dapat merancang sesuatu untuk dispesifikasi, kemudian biasanya mencoba mematenkannya atau melindungi atau mengeksploitasinya untuk keunggulan kompetitif.

R juga bisa merujuk pada risiko, karena proyek-proyek penelitian dan pengembangan sering mencoba untuk menggabungkan penemuan dan eksploitasi teknologi baru dan eksploitasi teknologi yang dikenal bersama. Risiko lain dari pendekatan ini adalah memisahkan fokus Anda, membangun prototipe yang TIDAK dimaksudkan untuk dibuang, dan kemungkinan bahwa pemasaran terlibat dan akan memperlakukan perkiraan sebagai kontrak.

R & D adalah istilah yang dapat mendandani departemen yang sebagian besar terlibat dalam pengembangan. Sebagian besar proyek teknologi harus menggabungkan penelitian dengan beberapa jenis prototipe, tetapi membuat satu atau selusin sesuatu tidak tampak seperti pengembangan bagi saya kecuali jika itu dapat diserahkan kepada manufaktur.

Penelitian biasanya mencakup gagasan tentang ketelitian seperti meneliti literatur atau paten yang mencari seni sebelumnya, menegaskan klaim inovasi baru dan menunjukkan nilai dan keunikannya dalam beberapa cara. Penelitian akademis kadang-kadang mensintesis gagasan dari literatur akademis, memodelkan beberapa fenomena secara matematis, atau melaporkan studi kasus dengan analisis, kesimpulan, dan proposal untuk studi selanjutnya.

Mungkin R&D tertarik pada hal-hal yang belum pernah dilakukan sebelumnya tetapi dalam jangka pendek akan tersedia sebagai produk.


-4

R&D sedang bereksperimen dengan ide-ide yang mungkin tidak pernah menjadi produk. Di mana, Pengembangan Perangkat Lunak bekerja pada suatu produk / layanan yang diinginkan untuk menjadi suatu produk.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.