在接到一个任务时,你会怎么对待?从网上找一段源码,直接集成或在其基础上开发。或者是从基础的设计、写代码、测试做起,从0开始构建系统。前者称之为开源开发,后者为从0构建。

如果你花了5个小时从网上找到了源码,而你花三个小时就能写完相关的代码。在这种情况下,从0开始构建比开源开发更有优势。如果所写的代码比较小,且从网上无法短时间内获取高质量的代码,采用从0开始构建的方式比较合适。

如果需要几万行代码,从0构建需要几个月的时间,而且具有更大的失败风险。这种情况下,开源开发就具有绝对的优势了。在这种情况下,开源开发还具有低风险的特点。对于大型系统,根据软件工程的相关知识,软件开发成功的概率只有35%