《JOEL说软件 JOEL ON SOFTWARE》笔记

评定开发团队的Joel测试

  1. 使用源控制机制吗?(有没有诸如svn的版本控制)
  2. 能一步完成连编吗?
  3. 每天都做连编吗?
  4. 有故障信息数据库吗?(有没有BUG跟踪系统)
  5. 在编写新代码之前修复故障吗?(是不是排除了所有BUG以后才开始写新的代码)
  6. 有最新的进度表吗?(有没有反映进度的,随时及时更新的进度表)
  7. 有规格说明书吗?(软件功能规格说明书)
  8. 程序员拥有安静的工作环境吗?
  9. 你用到了你资金能力内可买到的最好工具吗?
  10. 有测试人员吗?
  11. 新聘人员在试用期写代码吗?(面试阶段)
  12. 进行走廊可用性测试吗?

软件功能规格说明书

  1. 作者:项目小组的技术主管
  2. 内容结构:事先声明、作者、使用情景、不支持目标、概况、细节描述、未尽事宜。
  3. 对由一部分人阅读的内容加上旁注,说明是谁应该充分考虑看的。以便关心的人认真阅读,不关心的人略过。
  4. 时时更新,直到所有的功能都实现。
  5. 使用word写说明书。如果需要演示文稿(幻灯),则由市场部门根据规格说明书自行编写。使用Dreamweaver制作演示Demo网页,以便向客户演示。同时把Demo网页的屏幕快照粘贴到规格说明书里。
  6. 要写的有文采,有趣味,简洁,反复阅读修改,不要使用模板,并负责让相关人员认真阅读。

软件进度表

  1. 根据软件功能规格说明书使用Excel制作出软件进度表。
  2. 表结构:功能特性、任务、优先级别、计划工期、当前估算工期、已使用时间、剩余时间。
  3. 每个特性都应该包含多项任务。
  4. 只有参与编码的程序员才能制订进度表。
  5. 进度单位精确到小时。
  6. 同时跟踪计划和当前估算的工期。一个任务完成后当前估算工期和已使用时间就相同了,剩余时间则为0。剩余时间是自动计算的。
  7. 每天更新已使用时间。
  8. 加入休假、节假等条目。
  9. 在进度表中要设置调试时间。
  10. 在进度表中设置集成时间。
  11. 在进度表中放置缓冲项目。
  12. 决不能让经理们要求程序员降低估算值。
  13. 进度表是硬性的。要么为了进度减少功能,要么延长交付工期。
  14. 使用Excel的技巧
    • 工具–共享工作簿,允许多个人在同一时间更改文件。
    • 自动过滤,过滤只属于自己的进度项。自动排序,按优先级别排列任务。
    • 支撑表,生成图表。
    • 工作日功能。

软件开发中的五个世界

  1. 散用软件(Shrinkwrap):散用软件有三个大的变种,分别是公开源代码、基于Web软件与咨询软件。
  2. 内用软件(Internal)
  3. 嵌入式软件(Embedded)
  4. 游戏软件(Game)
  5. 代用软件(Throwaway)