产品和过程
如果过程很薄弱,则最终产品必将受到影响。 但是对分过程的过分依赖也是很危险的。
Margaret Davis[Dav95a]在多年前写的一篇简短的文章里对产品和过程的双重性进行了以下
评述:
大约每十年或五年,软件界都会对 “问题”重新定义 ,其重点由产品问题转向了过程问 [62
题。 因此 我们逐步采纳了结构化程序设计语言(产品)结构化分析方法(过程)和数据封
装(产品),到现在重点是卡内基 梅隆大学软件工程研究所提出的能力咸熟度模型(过程)
(随后逐步采纳面向对象方法和敏捷软件开发)。
钟摆的自然趟势是停留在两个极端的中点, 与之类似,软件界的关注点也不断地摆动,
当上一次摆动失败时 就会有新的力量加入 ,促使它摆向另一个方向 这些摆动是非常有害
的,因为它们可能从根本上改变了工作内容及工作方法,使软件工程实践人员陷入混乱 而
且这些摆动并没有解决问题, 只是把产品和过程分裂开来而不是作为辩证统一的一体,因此
注定要失败。
这种二象性在科学界早有先例,当某一个理论不能对观测到的相互矛盾的结果做出合理
解释时,就会出现二象性理论。由Louis de Broglie于20世纪20年代提出的光的波粒二象
性就是一个很好的例子。 我相信,我们对软件组成部分和开发过程的观测证明了软件具有过
程和产品的二象性 如果仅仅将软件看作一个过程或是一个产品 那就永远都不能正嘀地理
解软件,包括其背景、应用、意义和价值。
所有的人类活动都可以看成一个过程,我们每一个人都从这些活动中获得对自我价值的
认识, 这些活动所产生的结果可以被许多人反复地在不同的情况下使用 。 也就是说,我们是
从我们自己或是他人对我们产品的复用中得到满足的。
因此,将复用目标融入软件开发,这不仅潜在地增加了软件专业人员从工作中获得的满
足感 也增加了接受 “产品和过程二象性 ”这一观点的紧迫性 对于一个可复用的部件,如
果仅仅从产品或是仅仅从过程的角度考虑, 都不利于软件开发,这种片面的观点或者影响了
人们对产品的应用环境和应用方法的认识, 或者忽略了该产品还可以作为其他开发活动的输
入这一事实。 因此, 片面地强调某一方面的观点会极大地降低软件复用的可能性,也会大大
减少工作的成就感
正如从最终产品获得满足一样,人们在创造性的过程中得到了同样的(甚至更大的)成
就感。艺术家不仅仅对装裱好的画卷感到高兴,更在每一笔绘画的过程中享受乐趣:作家不
仅欣赏出版的书籍,更为每一个苦思得到的比喻而欣喜。一个具有创造性的专业软件人员也
应该从过程中获得满足,其程度不亚于最终的产品。产品和过程的二象性已经成为保留推动
软件工程不断进步的创造性人才的一个重要因素。
原文地址:https://www.cnblogs.com/hellowzl/p/11047794.html