《人月神话》初读

一、焦油坑

        表面看上去每个问题都能获得解决,但当它们相互纠缠和累积在一起的时候,问题的麻烦程度会令每个人都感到惊讶,并且很难看清问题的本质。

        认识到真正的大型编程系统产品并不是简单程序的简单堆叠。

二、人月神话

        对于项目进度乐观的估计。

        在软件项目中往往用人月这个指标来衡量项目的工作量,但是人月这个指标实际上是一个危险的带有欺骗性的神话,它暗示着人员数量和时间是可以互相替换的。只有在将任务分解给参与人员后,他们之间不需要相互交流的情况下,人数和时间才是可以互换的。
        项目的时间依赖于顺序上的限制,人员的最大数量依赖于独立子任务的数量。


三、外科手术队伍

        面对软件项目的焦油坑以及人月神话,给出的一个解决办法是--外科手术队伍。
        为确保软件系统的概念完整性,需要由一个首席程序员或具有共识的小型团队来从上至下的对系统结构进行设计。

四、没有银弹

        无论在技术和管理方法上,都看不出有任何突破性的进步,能够保证在未来大幅度地提高软件的生产率、可靠性和简洁性。
        银弹在软件项目中就是比喻这种使得软件成本像计算机硬件成本一样迅速降低的尚方宝剑。
        软件开发中存在着两种困难,一种是根本的--软件特性中固有的困难,另一种是次要的--目前存在的,但并非与生俱来的困难。

        4个天生的根本困难--复杂度一致性可变性不可见性
        复杂度是说规模上,软件实体可能比以往人类创造的其它任何实体都更加复杂。
        一致性说得其实是软件的兼容性
        可变性是指各种外部条件持续强迫着软件也要随之变化,在软件行业中有一句话就是,唯一不变的可能就是变化的需求
        不可见性是说软件在客观存在上不具有空间的形体特征,无法可视化。

        现代软件工程中通过高级语言、分时系统、面向对象程序设计、使用开源库、敏捷开发等新的理论实践不断在客服软件开发中的次要困难,同时也减轻了一些根本困难,但始终不能消除软件复杂度这样的根本性困难。因为随着软件工具能力不断的提升,软件开发中需要面对的复杂度其实也是在不断提升的。所以,我们再软件生产效率上的提升需要的是逐步的进步,而不是期待一个一蹴而就的突破

        最后,软件工程的焦油坑在将来很长一段时间内会继续使人们举步维艰,无法自拔。
        软件系统可能是人类创造中最错综复杂的事物,只能期待人们在力所能及的或在刚刚超越力所能及的范围内进行探索和尝试。
        这个复杂的行业需要:进行持续的发展;学习使用更大的要素来开发;新工具的最佳使用;经论证的工程管理方法的最佳应用;良好的自我判断以及能够使我们认识到自己的不足--上帝所赐予的谦卑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值