開発とR&Dの違いは何ですか?


39

同僚から、通常の開発と研究開発(R&D)の違いを明確に説明するよう求められ、それを行うことができませんでした。ウィキペディアを読んだ後、私はまだ正確な答えがありません。

ウィキペディアによると(わずかに変更されています):

2つの主要なモデルがあります。

  • あるモデルでは、主な機能は新製品の開発です

  • もう1つのモデルの主な機能は、貴重な新製品、プロセス、およびサービスの開発を明らかにし、可能にするために、科学技術のトピックに関する新しい知識を発見および作成することです。

最初のモデルは紛らわしいです。開発(R&Dではなく)は、製品に新機能を追加し、バグを解決し、メンテナンスを行うことだけを意味するのでしょうか?以前に新機能として開発されたものが別の製品になった場合はどうなりますか?

2番目のモデルはそれほど複雑ではありませんが、それでも、何かが新しい知識であるのか、再発見された既存の知識であるのかをどのように認定するのですか?

後にウィキペディアは、次の理由で通常の開発はR&Dと異なると付け加えています

ほぼ即時の利益または即時の改善。

まだ十分に明確ではありません。「ほぼ即時の利益」を認定する方法は?タスクに即時の利益はあるが、徹底的な調査が必要な場合はどうなりますか?または、コードベースに対する一般的なスタイルの実施のように、基本的ではあるが不確実な利益がある場合はどうでしょうか?

たとえば、次のような開発またはR&Dに属しますか?

  • データベースへのアクセスを抽象化するエンジンを開発し、データベースにアクセスする他のアプリケーション(既存または将来作成されるアプリケーション)のコードを大幅に簡素化および短縮しますか?

  • Amazonで使用されているような、独立した多数の独立したアプリケーションから、適切に組織化され相互接続されたWebサービスのセットに移行するために、企業リソースの組織全体に新しいサービス指向アーキテクチャを確立しますか?

  • 会社の2つのデータセンター間でのデータの複製を高速化できる新しい通信プロトコルを設計しますか?

  • 特定の製品での作業中に新しいタイプのソフトウェアテストを考え、このタイプのテストがテストプロセスを改善/簡素化することを知っていますか?

  • 証拠、ロジック、および以前の経験に基づいて、特定のアプリケーションに対してOOPよりも関数型プログラミングが適切であることを証明しますか?

  • 正確なタスクセットに対して少なくとも1.4の比率でユーザーの生産性が向上することを示す調査とテストを行った後、触覚画面にジェスチャーを追加して、既存のアプリケーションを強化しますか?

  • データセンターの電力使用効率(PUE)を大幅に強化する方法を見つけますか?

  • ドメイン固有言語(DSL)を作成しますか?

要するに、何かに取り組んでいる間に研究開発を行っているかどうかをどのように判断できますか?


21
Erm ... R&Dには研究が含まれていますか?
ロバートハーベイ

回答:


37

すばらしい質問です。

「開発」と「R&D」を区別することが重要です。

  • ポイント1

R&D =実際には製品にならない可能性のあるアイデア/テクノロジーを実験する。

ソフトウェア開発=実際の顧客が望む製品/サービスに取り組んでいます。

  • ポイント2

R&Dは、特定の問題領域向けの新しいソリューションの開発に関するものです。この努力の最終結果は、私が「研究玩具」と呼ぶものです。

ソフトウェア製品であるためには、研究玩具を完全に再実装する必要があります。そうしないと、ますますエリートで博学なユーザーにアピールする製品になります。ここでの問題は、このエリートで博識なユーザーベースには通常、使うお金がないことです。

成功するためには、ソフトウェア製品は研究用玩具を忠実に再実装し、コモディティユーザーがアクセスし、愛さなければなりません。本当に注目に値するためには、ソフトウェア製品はエリートと博識なユーザーに同時にアピールする必要があります。

  • ポイント3

研究は、学術的または科学的な調査を意味し、業界または社会全体のより良い利益を目的とする傾向があります。製品開発にはさまざまな動機と結果があります。それは利益の可能性によって推進されます。製品開発の状態は健全です。照明研究の状況はそうではありません。

このような質問に答えるためには、より大きな利益に対する集団的なコミットメントが必要です。しかし、これは単なる慈善活動ではありません。答えは実用的な目標に対処します。視覚システムにスペクトル的に調整された光源は、より持続可能です。彼らは、視覚システムが最も強く反応するスペクトルの領域で出力を生成することにより、より少ないエネルギーを使用します。この例は、研究と製品開発の違いを強調しています。

  • ポイント4

新製品の開発はすべてR&Dになります。純粋な抽象的な科学と研究開発を混同している人もいると思います。それらは同じではありません。R&Dは非常に製品指向です。科学者は、AIDを治療するワクチンを探しているかもしれません。それは販売する製品を作成するための非常に特殊なタスクであり、それは確かに研究開発であり、自分の気分をいじり回すだけではありません。

  • ポイント5

技術の世界でのR&D =既知の技術と技術を出発点として、興味深いことや重要なことを行う方法を見つける。

ソフトウェア開発=出発点として既知の技術と技術を使用して、興味深いまたは重要なことを行う方法を見つける。

  • ポイント6

実質的にすべてのソフトウェア開発は、R&DのD部分です。ソフトウェア 'R&D'にはRがほとんどない場合があります。時々、ソフトウェア「R&D」にはかなり大きなRがあります。

それはいくつかの測定に依存します。例えば、

さまざまな規模の企業のソフトウェア開発を管理するR&Dは、企業の規模、顧客ベースなどに応じて異なる意味を持ちます。

従業員がいっぱいの小さなソフトウェア会社では、R&Dソフトウェアと実稼働ソフトウェアの境界は通常非常に小さくなっています。ある日はソフトウェアR&Dプロジェクトであり、翌日には生産ソフトウェアとして顧客に出荷されるかもしれません。

ソフトウェア会社が成長し、1つまたは複数の実動ソフトウェアラインがある場合、R&Dソフトウェアプロジェクトと実動ソフトウェア製品の間の分離が大きくなる傾向があります(明らかな理由)。このR&Dギャップは通常、明日のためにソフトウェア製品の多様化を図り、生産ソフトウェアの開発を今日も続けて行うために生じます。

これは、プロダクションソフトウェア製品が革新的な新機能を取得しないということではありません。実稼働ソフトウェア開発者は、通常、R&D開発者と同じくらい「鋭い」です。実際、ある会社では、プロダクションソフトウェア開発者がR&Dプロジェクトの内外でローテーションできるようにするエンリッチメントプログラムがありました。これにより、研究開発チームに新鮮な頭脳の力が加わっただけでなく、多くの場合、プロダクション開発者はより良いプロダクションレベルのソフトウェアを生産するための新しいアイデアを思いつきました。

  • ポイント7

D =「どこに行きたいかを知っている」、Rは「プロジェクトの最初に、そこに到達するために何が必要かわからない」ため

  • ポイント8

R&Dは、説明責任なしにやりたいことができる幸運な人々です。

このトピックに関する優れた研究/リソース:


1
あなたが明示的に記述していないのは、あなただけだと思います-事実上、すべてのソフトウェア開発はR&DのD部分です。ほとんどのソフトウェア「R&D」にはRがほとんどありません-OPの例はすべて開発です。
-mattnz

@mattnz、私はあなたに同意します。今、私は私の答えにあなたのポイントを含めました。提案をありがとう。:)
Mdマフブールラーマン

9

違いは期待にあります。

  • 私が研究開発で働いていたとき、私は主に研究結果を提供することを期待されていました。

  • 開発に携わっていたとき、私は主に動作するソフトウェアを提供することを期待されていました

これらは完全に分離されているわけではなく、その間にかなり大きな灰色の領域がある場合があります。開発中に、ときどきいくつかの研究行うことが期待されていました。同様に、研究プロジェクトの1つで、特定のプログラムを開発するように割り当てられました。


8

他の人が言ったように、研究開発には研究が必要です。私にとって、研究とは、現在誰もその方法を知らないものに取り組んでいるということです。既に行われている場合、既存のソリューションと文献を研究するために多大な時間を費やす必要がありますが、研究ではありません。

リストについて:

  • データベースへのアクセスを抽象化するエンジンを開発し、データベースにアクセスする他のアプリケーション(既存または将来作成されるアプリケーション)のコードを大幅に簡素化および短縮しますか?

多くのORMが存在します。あなたが本当に何か違うことをしない限り、私はそれをR&Dとして数えません。

  • Amazonで使用されているような、独立した多数の独立したアプリケーションから、適切に組織化され相互接続されたWebサービスのセットに移行するために、企業リソースの組織全体に新しいサービス指向アーキテクチャを確立しますか?

いや。

  • 会社の2つのデータセンター間でのデータの複製を高速化できる新しい通信プロトコルを設計しますか?

既知のプロトコルでこれが改善される場合、このR&Dを検討します。

  • 特定の製品での作業中に新しいタイプのソフトウェアテストを考え、このタイプのテストがテストプロセスを改善/簡素化することを知っていますか?

  • 証拠、ロジック、および以前の経験に基づいて、特定のアプリケーションに対してOOPよりも関数型プログラミングが適切であることを証明しますか?

  • 正確なタスクセットに対して少なくとも1.4の比率でユーザーの生産性が向上することを示す調査とテストを行った後、触覚画面にジェスチャーを追加して、既存のアプリケーションを強化しますか?

  • データセンターの電力使用効率(PUE)を大幅に強化する方法を見つけますか?

  • ドメイン固有言語(DSL)を作成しますか?

これらのいずれにも研究は含まれていないようです。私が研究開発を検討する他の例を挙げます:

  • Scalaの型推論を改善し、より良い統合を可能にします

  • 新しい種類のコンパイラ最適化を考案する

  • 既存のデータベースとは大きく異なる新しいデータベースを作成します-CouchDBが考案されたときのように

  • 機能的なリアクティブプログラミングのための実用的で使用可能なライブラリを開発する

  • 既存のソフトウェアまたはプロトコルの新しいエクスプロイトを見つける

  • 新しい圧縮アルゴリズムを発明する


3

非公式に、私がそれを定義する方法(および実際にそれが実際に使用されるのを私が見た方法)は次のようなものです:

R&Dというフレーズは、何かを達成するための正確なアプローチが不明であることを示すために使用されます。

(編集:少し言い換えました)

基本的に、これは重要な未知のものが先にあることを言う、簡単で一般的な方法です。実際の質問に答えようとするとき、それは本当に分類を行っている人に依存します。それらの項目の多くには重要な研究要素が含まれているように見えますが、何の研究もせずにそれらの多くを達成できる人がいると思います。それはタスクと個人の両方に依存します。

実際のリストを見ると、私は過去に十分似たようなことをしたかどうかに基づいて個人的に分類するので、これからやろうとしていることに自信を持っています見積り)。


0

年4040,000ドルの給料の上昇?

R&Dでは、Rは研究を使用して、技術開発とも呼ばれるものを記述することがあります。おそらく応用研究としてよく説明されているように、私たちは何かを仕様に合わせて設計し、通常は特許を取得しようとするか、さもなければそれを保護または悪用して競争上の優位性を得ます。

研究開発プロジェクトでは、多くの場合、新しいテクノロジーの発見と活用、および既知のテクノロジーの活用の両方を組み合わせようとするため、Rはリスクを指すこともあります。このアプローチのその他のリスクには、焦点を分割すること、捨てることを意図していないプロトタイプを構築すること、マーケティングが関与し、見積りを契約として扱う可能性があります。

R&Dは、ほとんどが開発に関与する部門をドレスアップできる用語です。ほとんどの技術プロジェクトは、研究とある種のプロトタイプを組み合わせる必要がありますが、1つまたは数十の何かを作成することは、製造業に引き渡すことができない限り、開発とは思えません。

研究には通常、先行技術を探して文献や特許を調べ、新しいイノベーションの主張を主張し、何らかの方法でその価値と独自性を実証するなどの厳密な概念が含まれます。学術研究では、学術文献からアイデアを合成したり、現象を数学的にモデル化したり、分析、結論、将来の研究の提案を伴うケーススタディを報告することがあります。

おそらく、R&Dはこれまでに行われたことのないものに興味がありますが、短期的には製品として提供される予定です。


-4

R&Dは、決して製品にならないかもしれないアイデアを実験しています。ソフトウェア開発は、製品になることを望む製品/サービスに取り組んでいます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.