05梦断代码读书笔记
获得更好进展的关键是将软件改进到程序员自己可以使用的程度。
白板上的即时贴:用贴纸,每张纸表示大致同等的工作量。每张即时贴代表各开发者一个月或两个月的工作时间。先在墙上循“点号版本”的顺序贴上,然后就能对每一轮计划的工作和自己是否脱离显示一目了然。用贴纸法来讨论项目各个小版本应该具有的功能特性,也是敏捷开发里重点推广的。
“吃你自己的狗食”的意思是开发者必须使用自己正在做的产品。
在传奇般的施乐帕罗· 阿尔托研究中心(20 世纪70 年代发明了现代个人计算技术),研究队伍领导人鲍勃· 泰勒提出了这种说法:
“吃狗食则是迫使开发者把鼻子伸到产品的问题中、加速发现和修正缺陷的低调且实用的方法。”
WebDAV 的工作机制是扩展HTTP——Web 服务器和浏览器之间赖以互相通讯的协议——增加了让用户在远端服务器上编辑文件的新命令。
Chandler一直具有两面性——一方面,它是用户管理信息的软件应用;另一方面,它是—种“应用框架”或“平台”一开发者可在上面添加新酷特性的一种基础。由于卡普尔和OSAF 团队逐渐勉强接受了不能两者得兼的事实,他们首先选择做应用程序。
从Chandler 项目的最早期开始,卡普尔就坚持要做诚实、现实的计划和进度安排。但项目在满足进度方面却拥有不佳的记录:平均6个月能发布一个版本,但计划却总假设应在3 、4 个月内完成一个版本。部分原因或许是在软件开发和其他领域中计划总是超出了能预见的范围。
Chandler项目的软件开发者很少成组地共同开发一系列项目:他们不太像运动队或是军队单位,也不太像合唱团,而更像是专才们为制作一部电影而临时组合然后解散,再重新为下一部电影组合起来。每次到新团队中开始做新项目时,他们大概还是会按下”重置”按钮, 根据某些首要原则设计出一套新的工作流程。
结构化编程的主要规则:“程序的每一层都该自成一体。”
为了摆脱软件制作的焦油坑,无数软件实行者在不断探索。只有个体开发者为个人工作制定计划并遵循,项目才有控制和管理的基础。想法是好的,但往往很少有人将之付诸于行动。软件的速度和质量造成人月神话的恶性循环,但是质量是保证软件继续发展的前提。
汉弗里在IBM 执行强制进度纪律的成功基于两条原则:
计划是强制性的;
计划必须符合现实情况——“从底向上”,依据那些负责按计划执行的程序员的经验和知识而来,而不是“从顶至下”,靠管理者拍脑袋或对市场的期望而来。