首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >发展和研发有什么区别?

发展和研发有什么区别?
EN

Software Engineering用户
提问于 2012-11-07 06:11:01
回答 4查看 57.6K关注 0票数 46

一位同事要求我清楚地解释普通发展和研究与开发(R&D)之间的区别,但我做不到。在看过维基百科之后,我仍然没有确切的答案。

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

主要有两种模式:

  • 在一种模式中,主要功能是开发新产品;
  • 在另一种模式中,主要功能是发现和创造有关科学和技术主题的新知识,以便发现和开发有价值的新产品、工艺和服务。

第一种模式令人困惑。这是否意味着开发(而不是研发)只包括向产品添加新特性、解决bug和进行维护?如果以前作为一个新特性开发出来的东西变成了一个单独的产品,该怎么办?

第二种模式不那么令人困惑,但如何才能确定某一事物是新知识还是刚刚被重新发现的现有知识?

后来,维基百科补充说,普通的开发和研发是不同的,因为它:

几乎立即获利或立即改善。

还不够清楚。如何限定“近乎即时的利润”?如果一项任务有即时的利润,但需要大量的研究,那该怎么办?或者,如果它是基本的,但有不确定的利润,就像执行一个共同的风格而不是代码库?

例如,是否属于发展或研究与发展:

  • 开发一个引擎,它抽象了对数据库的访问,极大地简化和缩短了其他应用程序(已经存在的或将来将编写的应用程序)的代码,哪些应用程序应该访问数据库?
  • 为整个公司资源组织建立一个新的面向服务的体系结构,以便从一组独立的、自主的应用程序转移到一组组织良好的、互联的web服务,比如Amazon所使用的服务?
  • 设计一种新的通信协议,使公司的两个数据中心之间能够更快地复制数据?
  • 在开发特定的产品时,设想一种新类型的软件测试,同时知道这种类型的测试将改进/简化测试过程?
  • 根据证据、逻辑和以前的经验,证明函数式编程比面向对象编程更适合于特定的应用程序?
  • 通过在触觉屏幕上添加手势来增强现有的应用,在做了研究和测试之后,这些手势对一组精确的任务至少提高了用户的生产率1.4?
  • 找到一种方法来强烈地提高数据中心的电力使用效率(PUE)?
  • 创建特定于域的语言(DSL)?

简而言之,我如何才能确定我是否在做一些研究和开发?

EN

回答 4

Software Engineering用户

发布于 2012-11-07 08:43:12

正如其他人所说,研发涉及研究。对我来说,目前还没有人知道该怎么做。如果已经这样做了,那就不是研究,尽管研究现有的解决办法和文献可能需要大量的时间投资。

关于你的名单:

  • 开发一个引擎,它抽象了对数据库的访问,极大地简化和缩短了其他应用程序(已经存在的或将来将编写的应用程序)的代码,哪些应用程序应该访问数据库?

有许多ORM存在。除非你做了真正不同的事情,否则我不会把它算为研发。

  • 为整个公司资源组织建立一个新的面向服务的体系结构,以便从一组独立的、自主的应用程序转移到一组组织良好的、互联的web服务,比如Amazon所使用的服务?

不是的。

  • 设计一种新的通信协议,使公司的两个数据中心之间能够更快地复制数据?

如果这改进了已知的协议,那么我会考虑这个研发。

  • 在开发特定的产品时,设想一种新类型的软件测试,同时知道这种类型的测试将改进/简化测试过程?
  • 根据证据、逻辑和以前的经验,证明函数式编程比面向对象编程更适合于特定的应用程序?
  • 通过在触觉屏幕上添加手势来增强现有的应用,在做了研究和测试之后,这些手势对一组精确的任务至少提高了用户的生产率1.4?
  • 找到一种方法来强烈地提高数据中心的电力使用效率(PUE)?
  • 创建特定于域的语言(DSL)?

所有这些似乎都不包括研究。给出一些我会考虑研究与发展的其他例子:

  • 改进Scala中的类型推断,允许更好的统一
  • 发明一种新的编译器优化
  • 创建一个与现有数据库有显著差异的新数据库--比如说,就像在构思CouchDB时那样
  • 为功能反应编程开发一个工作的、可用的库。
  • 在现有软件或协议中找到新的漏洞
  • 发明一种新的压缩算法
票数 8
EN

Software Engineering用户

发布于 2012-11-07 06:19:12

非正式地说,我定义它的方式(以及我如何在实践中看到它的普遍用法)是这样的:

R&D这个词是用来表示你不确定实现某一目标的确切方法和/或它是否可以完成,以及它的工作效果如何。

(编辑:略作改动)

基本上,这是一种快速、普遍的说法,表明前方有一个重要的未知数。试着回答你的实际问题,这真的取决于谁在进行分类;其中许多项目似乎包含了一个重要的研究部分,但我想有些人可以在没有任何研究的情况下实现其中的许多。这既取决于任务,也取决于个人。

从实际的清单来看,我个人会根据我过去是否做过足够类似的事情来分类,因此对我将要做的事情非常有信心(或者至少能够给出好的大致估计)。

票数 3
EN

Software Engineering用户

发布于 2012-11-07 06:53:05

年薪增加4万美元?

在研发中,研究人员有时会用研究来描述一种也被称为技术发展的东西,在这种情况下,我们发现了如何去做一些我们不知道如何去做的事情。也许可以用应用研究来形容,我们可能会设计一些特定的东西,然后通常尝试对它进行专利化,或者以其他方式保护或利用它来获得竞争优势。

研究报告还可以提到风险,因为研究和开发项目往往试图将新技术的发现和开发与已知技术的开发结合起来。这种方法的其他风险包括分散注意力,构建不打算丢弃的原型,以及参与营销并将评估视为合同的可能性。

研发是一个术语,可以装扮一个部门,主要是参与发展。大多数技术项目应该把研究和某种原型结合起来,但是,对我来说,做一件或十几件事情并不意味着开发,除非它可以被传递给制造业。

研究通常包括严格性的概念,比如审查寻找现有技术的文献或专利,断言新的创新,并以某种方式展示它们的价值和独特性。学术研究有时综合学术文献中的观点,对某些现象进行数学建模,或用分析、结论和对未来研究的建议报告案例研究。

也许研发人员对以前没有做过的事情感兴趣,但在短期内将作为一种产品提供。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/174900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档