一位同事请我清楚地解释普通开发与研发之间的区别,但无法做到。看完维基百科后,我仍然没有确切的答案。
根据维基百科(略作修改):
有两种主要模型:
在一个模型中,主要功能是开发新产品。
在另一个模型中,主要功能是发现和创建有关科学技术主题的新知识,以发现并促进有价值的新产品,过程和服务的开发。
第一个模型令人困惑。这是否意味着开发(而非研发)仅包含向产品添加新功能,解决错误并进行维护?如果以前作为新功能开发的产品变成单独的产品怎么办?
第二种模型不那么令人困惑,但是仍然如何确定是重新发现的是新知识还是现有知识?
后来,维基百科补充说,普通开发与R&D有所不同,因为它具有以下特点:
几乎立即的利润或立即的改善。
还不够清楚。如何获得“近乎即时的利润”?如果一项任务可以立即获利但需要大量研究怎么办?还是说它是基本的但有不确定的利润,例如在代码库上实施通用样式?
例如,它是否属于以下领域的开发或研发:
开发一个引擎来抽象化对数据库访问的引擎,从而极大地简化和缩短应该访问数据库的其他应用程序的代码(现有或将来将要编写的代码)?
为公司资源的整个组织建立一个新的面向服务的体系结构,以便从一堆独立的自治应用程序迁移到一组组织良好,相互联系的Web服务,例如Amazon使用的服务?
设计新的通信协议以允许在公司的两个数据中心之间更快地复制数据吗?
知道特定类型的测试会改善/简化测试过程,同时构想针对特定产品的新型软件测试吗?
基于证据,逻辑和先前的经验,是否证明函数式编程比OOP更适合于特定应用?
在进行了研究和测试后发现,这些手势可以将用户的生产率提高至少1.4倍,以完成一组精确任务,从而在触摸屏上添加手势来增强现有的应用程序?
是否找到一种方法来大大增强数据中心的电源使用效率(PUE)?
创建域特定语言(DSL)?
简而言之,如何确定在做某事时我是否在进行研发?