人月神话笔记
23 June 2015
程序 –3x–> 编程产品(Programming Product)
程序 –3x–> 编程系统(Programming System)
程序 –9x–> 编程系统产品
构思 -> 实现 -> 交流. 在实现过程中才能发现构思的不完整性和不一致性.
经验数据
软件任务进度安排:
- 1/3计划
- 1/6编码
- 1/4构件测试和早期系统测试
- 1/4系统测试, 所有的构件已完成
职业乐趣
- 创建事物,特别是自己进行的设计
- 开发对其他人有用的东西
- 整个过程体现出魔术般的力量(精妙运行,得到期望结果)
- 学习的乐趣(实践+理论)
- 仅仅工作在单纯的思考中(想象构建的城堡–灵活/精炼/重建)
职业苦恼
- 必须追求完美
- 由他人设定目标/供给资源/提供信息
- 依赖其他人的程序是件非常痛苦的事情
- 概念性设计是有趣的,但查找bug确实重复性的活动
- 投入了大量辛苦劳动,产品即将完成时却快过时了
缺乏合理的时间进度
- 乐观主义: 一切都将运作良好,每项任务仅花费它所”应该”花费的时间
- 错误地将进度与工作量相互混淆
- 人数和时间不可互换(任务次序限制分解)
- 计划工作中需要考虑沟通的工作量(子任务间需要相互沟通和交流的任务)
- 沟通和交流的工作量与人数相关
- 对自己的估算缺乏信心
- 对进度缺少跟踪和监督
- 当意识到进度偏移时,下意识反应是增加人力