阅读笔记
《人月神话》摘抄
进度安排,我的经验是1/3用于设计, 1/6用于编码, 1/4用于构件测试, 1/4用于系统测试。
在若干人员中分解任务会引发额外的沟通工作量——培训和相互沟通。
用人月作为衡量一项工作的规模是一个危险和带有欺骗性的神话。它暗示着人员数量和时间是可以相互替换的。
软件开发本质上是一项系统工作——错综复杂关系下的一种实践——沟通、交流的工作量非常大,它很快会消耗任务分解所节省下来的个人时间。从而,添加更多的人手,实际上是延长了,而不是缩短了时间进度。
向进度落后的项目增加人手,只会使进度更加落后。
在大型系统设计中,需要外科手术似的的队伍:由一个人进行进行任务的分解,其他人给予支持。
概念完整性是系统设计中最重要的考虑因素。
为了获得概念完整性,设计必须由一个人或者具有共识的小型团队来完成。必须有人控制这些概念,虽然这是一种专制统治。
尽早交流、持续沟通,可使团队效率更高。
一天一天的进度落后比重大灾难更难以识别,更不容易防范和弥补。
根据一个严格的进度表来控制大型项目,进度表由里程碑和日期组成。里程碑必须是具体的可度量的事件,里程碑需要定义得非常明确,以至于无法弄虚作假。
巴比伦塔可能是第一个工程上的彻底失败,但它不是最后一个。交流和交流的结果——组织,是成功的关键。交流和组织的技能需要管理者仔细考虑,相关经验的积累和能力的提高同软件技术本身一样重要。
唯一不变的就是变化本身。