zoukankan      html  css  js  c++  java
  • 阅读3

    读人月神话有感

    书中提到编程人员通过纯粹的思维活动即概念以及灵活的表现形式来开发程序。用人月来衡量一项工作的规模是一个危险和带有欺骗性的神话(人员数量和时间并不是可以相互替换的)。软件开发本质上是一项系统工作,即错综复杂关系下的一种实践,因为沟通交流的工作量大,会消耗任务分解所节省下来的时间的个人时间,因此,添加人手并不一定缩短了进度。效率高和效率低的实施者之间个体差异很大,经常能够达到数量级的水平。需要协作沟通的人员数量影响着开发成本,成本的主要组成是相互的沟通和交流,以及更正沟通不当引起的不良结果(系统调试)。

     人们总是希望一切的事情都尽在掌握之中,所以总是试图在制定完美计划之后一路顺风顺水地执行下去。但是软件维护是一个提高混乱度(增加熵)的过程,所以出现前进两步,后退一步;甚至前进一步,后退一步都是很正常的。而且随着维护的深入,会发现用在修复原有设计上瑕疵的工作量越来越少,而早期维护活动本身所引起的漏洞的修复工作越来越多。正如大思想家斯宾塞·约翰逊曾经说过“唯一不变的是变化本身”,我们要为变更设计系统,为变更计划组织架构。

     世界总是处在变化中的,需求亦然,所以项目也要适应变化,正因为如此才会不断维护升级项目,书中借巴比伦塔项目的例子,讨论失败的原因是缺乏交流和组织,从而进度灾难、功能的不合理和系统缺陷纷纷出现,追其根本原因是团队成员之间的每个人的理解存在偏差,存在个人推测、群体猜忌等,因而团队之间应尽可能的相互讨论,无论是以正式的简要技术陈述的项目会议,共享的正式项目工作手册,还是非正式的小组讨论都可以让大家相互理解。软件开发人员必须设立规模目标,控制规模,考虑减少规模的方法,在规模预算时,明确所占内存空间、程序对磁盘访问次数、指明每个模块的功能。

  • 相关阅读:
    ArcEngine:GP使用!没道理的错误!
    XMLHttpRequest的亲密接触(1)——简单讲解
    XMLHttpRequest的亲密接触(2.2)——表单提交
    初入Ajax,需要明确的Web工作原理
    文章收藏明细
    【备忘】Oracle10g 创建、删除表空间、创建、授权用户
    proxool的使用总结
    Java操作压缩与解压缩
    解决jquery ui dialog中调用datepicker时日期选择控件被遮挡的问题
    如何读取jar包中的xml等资源文件
  • 原文地址:https://www.cnblogs.com/xk1013/p/13087092.html
Copyright © 2011-2022 走看看