|||
作者:蒋迅
Source: NASA ASK
有一天在阅读NASA的一篇文章“Ten Systems Engineering Lessons Learned”(系统工程的十条经验) 时看到了下面的一段话:
在学校里,如果你抄了别人的作业,那叫剽窃,你可能会被开除。但是在工业界,那是一个受到鼓励的良好习惯,而这个良好习惯却被工程师们忽略了。每天,我们看到工程师们在重复别人已经做过的设计,或者写出别人早就写过得程序。他们为什么不查一查文献呢?为什么不请教一下有经验的老专家呢?你可以说别人技术保密。但至少从软件工程方面来说,我相信网上免费的程序和开源代码、开源软件足够软件工程师们日常使用了,Google Code上有许多。如果软件工程师不能利用这些资源,那结果将是浪费时间和经费。
利用开源资源的另一个好处是,你可以比较容易地使人确信你的应用是建立在一个可信的基础上的,因为大型开源包往往是有许多人(包括名人)参与的,许多结果已经被验证过,或者有理论研究作后盾。而且这些开源包打都充满活力,新的功能不断出现,已有的错误不断被修正。这些因素都帮助软件工程师们节省了精力和时间。何乐而不为呢?
我想说,这里我们鼓励的“抄袭”并不是学校里的“剽窃”,它们有本质的不同。学校里的“剽窃”是将别人的工作算作自己的工作,并声称是自己的工作。而我们要鼓励的“抄袭”则是在承认前人的工作的基础上进一步丰富了别人的工作。这一点体现在开源的协议上:你必须承认别人的工作并在转卖自己的应用时把自己的原程序开源。
这篇文章实际上是写给做系统工程的带头人的,而且十条经验都是非技术性的。它们是:
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-1-9 15:29
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社