《JOEL说软件 JOEL ON SOFTWARE》笔记
评定开发团队的Joel测试
- 使用源控制机制吗?(有没有诸如svn的版本控制)
- 能一步完成连编吗?
- 每天都做连编吗?
- 有故障信息数据库吗?(有没有BUG跟踪系统)
- 在编写新代码之前修复故障吗?(是不是排除了所有BUG以后才开始写新的代码)
- 有最新的进度表吗?(有没有反映进度的,随时及时更新的进度表)
- 有规格说明书吗?(软件功能规格说明书)
- 程序员拥有安静的工作环境吗?
- 你用到了你资金能力内可买到的最好工具吗?
- 有测试人员吗?
- 新聘人员在试用期写代码吗?(面试阶段)
- 进行走廊可用性测试吗?
软件功能规格说明书
- 作者:项目小组的技术主管
- 内容结构:事先声明、作者、使用情景、不支持目标、概况、细节描述、未尽事宜。
- 对由一部分人阅读的内容加上旁注,说明是谁应该充分考虑看的。以便关心的人认真阅读,不关心的人略过。
- 时时更新,直到所有的功能都实现。
- 使用word写说明书。如果需要演示文稿(幻灯),则由市场部门根据规格说明书自行编写。使用Dreamweaver制作演示Demo网页,以便向客户演示。同时把Demo网页的屏幕快照粘贴到规格说明书里。
- 要写的有文采,有趣味,简洁,反复阅读修改,不要使用模板,并负责让相关人员认真阅读。
软件进度表
- 根据软件功能规格说明书使用Excel制作出软件进度表。
- 表结构:功能特性、任务、优先级别、计划工期、当前估算工期、已使用时间、剩余时间。
- 每个特性都应该包含多项任务。
- 只有参与编码的程序员才能制订进度表。
- 进度单位精确到小时。
- 同时跟踪计划和当前估算的工期。一个任务完成后当前估算工期和已使用时间就相同了,剩余时间则为0。剩余时间是自动计算的。
- 每天更新已使用时间。
- 加入休假、节假等条目。
- 在进度表中要设置调试时间。
- 在进度表中设置集成时间。
- 在进度表中放置缓冲项目。
- 决不能让经理们要求程序员降低估算值。
- 进度表是硬性的。要么为了进度减少功能,要么延长交付工期。
- 使用Excel的技巧
- 工具–共享工作簿,允许多个人在同一时间更改文件。
- 自动过滤,过滤只属于自己的进度项。自动排序,按优先级别排列任务。
- 支撑表,生成图表。
- 工作日功能。
软件开发中的五个世界
- 散用软件(Shrinkwrap):散用软件有三个大的变种,分别是公开源代码、基于Web软件与咨询软件。
- 内用软件(Internal)
- 嵌入式软件(Embedded)
- 游戏软件(Game)
- 代用软件(Throwaway)