开发与研发之间有什么区别?


39

一位同事请我清楚地解释普通开发与研发之间的区别,但无法做到。看完维基百科后,我仍然没有确切的答案。

根据维基百科(略作修改):

有两种主要模型:

  • 在一个模型中,主要功能是开发新产品

  • 在另一个模型中,主要功能是发现和创建有关科学技术主题的新知识,以发现并促进有价值的新产品,过程和服务的开发。

第一个模型令人困惑。这是否意味着开发(而非研发)仅包含向产品添加新功能,解决错误并进行维护?如果以前作为新功能开发的产品变成单独的产品怎么办?

第二种模型不那么令人困惑,但是仍然如何确定是重新发现的是新知识还是现有知识?

后来,维基百科补充说,普通开发与R&D有所不同,因为它具有以下特点:

几乎立即的利润或立即的改善。

还不够清楚。如何获得“近乎即时的利润”?如果一项任务可以立即获利但需要大量研究怎么办?还是说它是基本的但有不确定的利润,例如在代码库上实施通用样式?

例如,它是否属于以下领域的开发或研发:

  • 开发一个引擎来抽象化对数据库访问的引擎,从而极大地简化和缩短应该访问数据库的其他应用程序的代码(现有或将来将要编写的代码)?

  • 为公司资源的整个组织建立一个新的面向服务的体系结构,以便从一堆独立的自治应用程序迁移到一组组织良好,相互联系的Web服务,例如Amazon使用的服务?

  • 设计新的通信协议以允许在公司的两个数据中心之间更快地复制数据吗?

  • 知道特定类型的测试会改善/简化测试过程,同时构想针对特定产品的新型软件测试吗?

  • 基于证据,逻辑和先前的经验,是否证明函数式编程比OOP更适合于特定应用?

  • 在进行了研究和测试后发现,这些手势可以将用户的生产率提高至少1.4倍,以完成一组精确任务,从而在触摸屏上添加手势来增强现有的应用程序?

  • 是否找到一种方法来大大增强数据中心的电源使用效率(PUE)?

  • 创建域特定语言(DSL)?

简而言之,如何确定在做某事时我是否在进行研发?


21
Erm ... R&D包括研究吗?
罗伯特·哈维

Answers:


37

好问题。

区分“发展”和“研发”很重要。

  • 点1

R&D =尝试可能永远不会成为产品的想法/技术。

软件开发=开发真正客户所需的产品/服务。

  • 点2

研发全部是针对特定问题领域开发新的解决方案。这种努力的最终结果是我称之为“研究玩具”。

要成为软件产品,必须完全重新实现研究玩具。否则,将导致产品吸引越来越多的精英和博学的用户群。这里的问题是,这个精英和博学的用户群通常没有钱花。

为了获得成功,软件产品必须忠实地重新实现研究玩具,并受到商品用户的喜爱。确实如此,软件产品必须同时吸引精英和博学的用户。

  • 点3

研究意味着学术研究或科学探索,并且往往针对整个行业或整个社会的更大利益。产品开发具有不同的动机和结果:它是由潜在的利润驱动的。产品开发的状态是健康的。照明研究的状态还不是。

我们需要对更大的利益作出集体承诺,以回答这些问题。但这不仅是慈善事业,更是慈善事业。答案将解决一个实际目标。光谱调谐到视觉系统的光源将更具可持续性。通过在视觉系统响应最强烈的频谱区域产生输出,他们将使用更少的能量,从而为建筑用户带来更好的视觉享受。此示例加强了研究与产品开发之间的区别。

  • 点4

所有新产品的开发都要进行研发。我认为你们当中有些人将纯粹的抽象科学与R&D混淆了。他们不一样。研发可以非常注重产品。科学家们可能正在寻找一种可以治愈艾滋病的疫苗。创建要销售的产品是一项非常具体的任务,这肯定是研发活动,而不仅仅是坐下来闲逛的家伙。

  • 点5

技术界的研发=以已知的技术为起点,找到做有趣或重要的事情的方法。

软件开发=以已知技术为起点,找到做有趣或重要事情的方法。

  • 点6

实际上,所有软件开发都是研发的D部分。有时,软件“ R&D”中的R很少。有时,软件“ R&D”中有相当大的R。

这取决于几次测量。例如,

在管理各种规模的公司的软件开发时,R&D具有不同的含义,具体取决于公司的规模,客户群等。

在只有一手员工的小型软件公司中,研发软件和生产软件之间的界限通常很小。哪一天是软件研发项目,第二天可能会作为生产软件运送给客户。

随着软件公司的发展,并且他们拥有一个或多个生产软件产品线,它们倾向于在研发软件项目和生产软件产品之间建立更大的隔离(出于明显的原因)。这种研发空白通常是为了在明天的软件产品中实现更大的多元化,同时允许生产软件开发在今天继续生产。

这并不是说生产软件产品不会获得创新的新功能。生产软件开发人员通常与研发开发人员一样“犀利”。实际上,在一家公司中,我们有一个丰富计划,允许生产软件开发人员轮流进出研发项目。这不仅为研发团队增加了新的大脑力量,而且在许多情况下,生产开发人员又回来了有关生产更好的生产级软件的新想法。

  • 点7

D =“知道您想在哪里结束”,R是因为“在项目开始时,您不知道到达那里需要什么”

  • 点8

研发是幸运的人,他们无需承担责任就可以做任何他们想做的事情。

关于此主题的良好研究/资源:


1
我认为只有您没有明确说明的事情-几乎所有软件开发都是R&D的D部分。大多数软件“ R&D”中的R很少-OP中的所有示例均为开发。
mattnz

@mattnz,我同意你的看法。现在,我已将您的意见包括在内。感谢您的建议。:)
Mh Mahbubur Ra​​hman 2012年

9

不同之处在于期望。

  • 在从事研发工作时,主要是希望我提供研究结果

  • 在从事开发工作时,主要是希望我提供工作软件

这些没有完全分开,并且它们之间可能有相当大的灰色区域。在开发中,有时碰巧希望我进行一些研究。同样,在一个研究项目中,我被分配去开发特定的程序。


8

正如其他人所说,研发涉及研究。对我来说,研究正在进行的工作目前尚无人知道。如果已经完成,那不是研究,尽管可能需要大量时间来研究现有的解决方案和文献。

关于您的清单:

  • 开发一个引擎来抽象化对数据库访问的引擎,从而极大地简化和缩短应该访问数据库的其他应用程序的代码(现有或将来将要编写的代码)?

存在许多ORM。除非您做的事情与众不同,否则我不会将其视为研发。

  • 为公司资源的整个组织建立一个新的面向服务的体系结构,以便从一堆独立的自治应用程序迁移到一组组织良好,相互联系的Web服务,例如Amazon使用的服务?

不。

  • 设计新的通信协议以允许在公司的两个数据中心之间更快地复制数据吗?

如果在已知协议上有所改善,那么我会考虑进行这项研发。

  • 知道特定类型的测试会改善/简化测试过程,同时构想针对特定产品的新型软件测试吗?

  • 基于证据,逻辑和先前的经验,是否证明函数式编程比OOP更适合于特定应用?

  • 在进行了研究和测试后发现,这些手势可以将用户的生产率提高至少1.4倍,以完成一组精确任务,从而在触摸屏上添加手势来增强现有的应用程序?

  • 是否找到一种方法来大大增强数据中心的电源使用效率(PUE)?

  • 创建域特定语言(DSL)?

这些东西似乎都不包括研究。再举一些我会考虑研发的例子:

  • 改善Scala中的类型推断,实现更好的统一

  • 发明一种新型的编译器优化

  • 创建一个与现有数据库有显着差异的新数据库-就像设想CouchDB时那样

  • 开发用于功能反应式编程的可用库

  • 在现有软件或协议中发现新漏洞

  • 发明新的压缩算法


3

非正式地,我定义它的方式(以及我在实践中通常如何看待它)类似于:

“ R&D”一词用于表示您不确定要实现某项目标的确切方法,和/或是否可以实现某项目标,以及它会如何运作。

(编辑:稍微改写)

基本上,这是一种快速,通用的说法,即未来还有很多未知的事物。然后尝试回答您的实际问题,实际上取决于谁在进行分类。这些项目中的许多似乎都包含了重要的研究内容,但我想有些人无需任何研究就可以实现其中许多目标。它取决于任务和个人。

查看实际列表,我个人将根据过去是否做过类似的事情对它们进行分类,因此会对我将要做的事情充满信心(至少,至少能够给出良好的标准)估计)。


0

每年$ 40,000的薪水增加?

在研发中,R有时会使用研究来描述事物,这也被称为技术开发,在其中我们发现如何做我们不知道怎么做的事情。也许被描述为应用研究,我们可能会设计一些符合规格的东西,然后通常尝试为其申请专利,或者以其他方式保护或利用它以获得竞争优势。

R也可以指风险,因为研发项目经常尝试将新技术的发现和开发与已知技术的开发结合在一起。使用此方法的其他风险包括分散您的注意力,构建不打算被丢弃的原型,涉及营销并将估算视为合同的可能性。

研发是一个术语,可以修饰一个主要参与开发的部门。大多数技术项目都应该将研究与某种原型结合起来,但是对我来说,一件一件或十几件事情似乎并不像开发,除非它可以交付生产。

研究通常包括严格的概念,例如检查文献或专利以寻找现有技术,主张新发明并以某种方式展示其价值和独特性。学术研究有时会根据学术文献中的思想进行综合,对某种现象进行数学建模,或者报告包含分析,结论和未来研究建议的案例研究。

研发可能对以前没有做过的事情感兴趣,但短期内将作为产品提供。


-4

研发部门正在尝试可能永远不会成为产品的想法。在哪里,软件开发部门正在开发想要成为产品的产品/服务。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.