























我们天天在开发软件产品,有必要思考一下软件产品的特点,我大致查阅了有关材料,做点总结:
知识密集
创造性
虚拟性(不可见性)
实现不具有唯一性
复杂
高附加值
逻辑性强(*)
由于软件所具有的这5个特性,导致了软件开发工作的复杂性。软件开发知识密集,意味着我们需要高智商的群体来完成,具有创造性也对人提出了很高的要求。虚拟的,看不见,就验不着,验不着的事就会有点悬,因此软件开发就必须千方百计的要让它看得见,文档、模型都是在设计阶段的要求。
看不见的问题,也导致客户在表述有关需求的难度,这个难度也正好是软件开发最不好解决的问题之一。
实现不具有唯一性,这个就麻烦了,每个人都可以有自己的做法,都能实现软件产品外部看起来的行为,但是里面怎么样,只有专业人士可以明白,这也导致了很多投机取巧的行为出现。
复杂,这个Dijistra在几十年做过一个总结,大意是说只有软件系统从底层到顶层的复杂性为9级。
高附加值,这个不知道是好是坏,好在于这个特性说明了软件的重要性,坏,也就说明了一旦出事的严重性。一旦软件投入使用,可能影响到一个企业的各个方面。
总的来说,软件产品是纯脑力劳动的结果,它不同于我们以往的产品。我们不能要求梵高一定要每天画出一副画,但社会确要求我们的工程师按照这个速度生产软件。
我们是脑力劳动者,却被像工人一样要求,我们是知识工人。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。