web-dev-qa-db-ja.com

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

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

Wikipedia によると(わずかに変更):

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

  • 1つのモデルでは、主な機能は新製品の開発;です。

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

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

2番目のモデルはそれほど混乱しませんが、それでも、何かが新しい知識であるか、または単に再発見された既存の知識であるかを限定する方法はありますか?

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

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

それはまだ十分に明確ではありません。 「ほぼ即時の利益」を認定するにはどうすればよいですか?タスクがすぐに利益を得るが、綿密な調査が必要な場合はどうなりますか?あるいは、それが基本的であるが、コードベースに共通のスタイルを適用するなど、不確実な利益がある場合はどうでしょうか。

たとえば、それは開発または研究開発に属していますか?

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

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

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

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

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

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

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

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

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

39

素晴らしい質問です。

「開発」と「研究開発」を区別することが重要です。

  • ポイント1

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

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

  • ポイント2

R&Dはすべて、特定の問題領域の新しいソリューションを開発することです。この取り組みの最終結果は、私が「研究用おもちゃ」と呼んでいるものです。

ソフトウェア製品であるためには、研究玩具を完全に再実装する必要があります。これを怠ると、エリートやエルディテのユーザー層がますます魅力的な製品になります。ここでの問題は、このエリートでエルディテのユーザーベースには通常、使うお金がないということです。

成功するためには、ソフトウェア製品は研究玩具の忠実な再実装であり、商品ユーザーからアクセス可能で愛されている必要があります。本当に注目に値するためには、ソフトウェア製品は同時にエリートとエルディットのユーザーにアピールする必要があります。

  • ポイント3

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

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

  • ポイント4

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

  • ポイント5

技術的な世界での研究開発=既知の技術と技術を出発点として、興味深いまたは重要なことを行う方法を見つける。

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

  • ポイント6

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

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

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

従業員が1人しかいない小規模なソフトウェア会社では、R&Dソフトウェアとプロダクションソフトウェアの境界線は通常非常に小さくなります。ある日はソフトウェアのR&Dプロジェクトであり、翌日は製品ソフトウェアとして顧客に出荷される可能性があります。

ソフトウェア企業が成長し、1つまたは複数の生産ソフトウェアラインを持っている場合、(明らかな理由により)R&Dソフトウェアプロジェクトと生産ソフトウェア製品をより分離する傾向があります。このR&Dギャップは通常、明日のためにソフトウェア製品をさらに多様化する一方で、プロダクションソフトウェアの開発を今日でも継続して行えるようにするために作成されます。

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

  • ポイント7

D =「最後になりたい場所を知っている」、そしてRは「プロジェクトの開始時に、そこに到達するために何が必要かわからない」ためです。

  • ポイント8

R&Dは、説明責任なしに何でもやりたいと思う幸運な人々です。

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

37

違いは期待にあります。

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

  • 私が開発で働いていたとき、私は主に作業ソフトウェアを提供することを期待されていました。

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

9
gnat

他の人が言ったように、R&Dは研究を含みます。私にとって、研究は現在、誰も行う方法を知らない何かに取り組んでいます。それが行われた場合、それは研究ではありませんが、既存の解決策や文献を研究するためにかなりの時間を費やす必要があるかもしれません。

リストについて:

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

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

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

いいえ。

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

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

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

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

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

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

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

これらのどれにも研究が含まれていないようです。私がR&Dと考えることの他の例を与えるために:

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

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

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

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

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

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

8
Andrea

非公式には、私がそれを定義する方法(および実際にそれが一般的に使用されているのを見てきました)は次のようなものです。

R&Dという語句は、何かを達成するための正確なアプローチ、および/またはそれが実行できるかどうか、そしてそれがどれほどうまく機能するかについて確信がないことを示すために使用されます。

(編集:少し言い換え)

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

実際のリストを見ると、個人的には、過去に同じようなことをしたことがあるかどうかに基づいて分類するので、これからやろうとしていることには非常に自信があります(少なくとも、良い球場を与えることができます)見積り)。

3
Daniel B

年収40,000ドルの給与上昇?

研究開発では、Rは研究を使用して、技術開発とも呼ばれるものを説明することがあります。ここでは、方法がわからなかった何かを行う方法を発見します。おそらく応用研究としてよく説明されていますが、仕様に合わせて設計し、通常は特許を取得するか、それ以外の方法で保護または活用して競争力を高めます。

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

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

研究には通常、先行技術を探している文献や特許を調べたり、新しい革新の主張を主張したり、それらの価値や独自性を何らかの形で示したりといった厳密な概念が含まれます。学術研究は、学術文献からアイデアを統合したり、いくつかの現象を数学的にモデル化したり、ケーススタディを分析、結論、および将来の研究の提案とともに報告したりすることがあります。

おそらく、R&Dはこれまでに行われていないが、短期的には製品として利用可能になることに関心があります。

0
DeveloperDon