项目完成了,如何做项目的总结会议?

发表于:2012-12-05来源:博客园作者:SoftwareTeacher点击数: 标签:项目总结
项目完成了,如何做项目的总结会议?一个里程碑结束了, 下面怎么办? 团队有什么经验教训? 产品怎么才能做得更好? 我们常说 “软件的生命周期”- 这个软件开发的周期结束了, 生命也结束了
  一个里程碑结束了, 下面怎么办? 团队有什么经验教训? 产品怎么才能做得更好? 我们常说 “软件的生命周期”- 这个软件开发的周期结束了, 生命也结束了。 我们能不能像医学的尸体解剖一样, 把这个软件开发的流程解剖一下? 解剖的过程可以叫: Postmortem, Retrospective, Review, 事后诸葛亮会议, 等等... 大多数学校里的软件工程项目结束后大家一哄而散, 一些诺言像 "我一定会补上文档的", “我们还会继续开发的”... 成了撤退时的疑兵之计, 等烟尘散去, 同学们早跑没影了。
  (下面的人物来自 移山之道)
  产品发布了,大家松了一口气。阿超建议大家开一个总结会议,就是事后诸葛亮会议。会议请公司的秘书小芳主持并作记录。为了让大家能畅所欲言,阿超和大牛没有参加会议。为了活跃气氛,小芳还买了零食、饮料、河曲啤酒等。
  阿超给小芳一个讨论的模板,同时也嘱咐小芳不一定要拘泥于模板,要见机行事,根据会议的进展灵活地变动计划。要牢记会议的核心问题是“如果你可以重新来过,什么方面可以做得更好?" 另外, 在问 “为什么” 的时候, 要多问几次, 层层推进, 找到问题的根源。
  例如: 软件发布后用户报告了一个大问题。 ”为什么?"
  因为程序没有考虑某种边界条件. "为什么在测试阶段没有测试出来?"
  因为这个代码是测试的最后阶段才加进去的。 “为什么不通知PM/Test?”
  因为dev 认为没有问题的, 很简单的修改。 "为什么不通知别人?"
  因为dev 认为那些都是软件工程无聊的规定... dev 是大牛人, 不必遵守的。
  问到这个层次,就把问题根源暴露出来了。
现代软件工程 项目Postmortem 模板
邹欣
现代软件工程 课件
2011
 
设想和目标
1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
2. 是否有充足的时间来做计划?
3. 团队在计划阶段是如何解决同事们对于计划的不同意见的?
如果历史重来一遍, 我们会做什么改进?
 
计划
1. 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
2. 有没有发现你做了一些事后看来没必要或没多大价值的事?
3. 是否每一项任务都有清楚定义和衡量的交付件?
4. 是否项目的整个过程都按照计划进行?
5. 在计划中有没有留下缓冲区,缓冲区有作用么?
6. 将来的计划会做什么修改?(例如:缓冲区的定义,加班)
如果历史重来一遍, 我们会做什么改进?
 
资源
1. 我们有足够的资源来完成各项任务么?
2. 各项任务所需的时间和其他资源是如何估计的,精度如何?
3. 用户测试的时间,人力和软件/硬件资源是否足够?
4. 你有没有感到你做的事情可以让别人来做(更有效率)?
 
如果历史重来一遍, 我们会做什么改进?
 
变更管理
1. 每个相关的员工都及时知道了变更的消息?
2. 我们采用了什么办法决定“推迟”和“必须实现”的功能?
3. 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
4. 对于可能的变更是否能制定应急计划?
5. 员工是否能够有效地处理意料之外的工作请求?
 
如果历史重来一遍, 我们会做什么改进?
 
设计/实现
1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
 
2. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
3. 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么?
4. 什么功能产生的Bug最多,为什么?
5. 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
 
如果历史重来一遍, 我们会做什么改进?
 
测试/发布
1. 团队是否有一个测试计划?为什么没有?
2. 是否进行了正式的验收测试?
3. 团队是否有测试工具来帮助测试?
4. 团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
5. 在发布的过程中发现了哪些意外问题?
如果历史重来一遍, 我们会做什么改进?
 
  怎么开好一个 Postmortem 会议:
  保持会议轻松愉快的氛围, 可以考虑换一个开会的环境, 有饮料, 零食, 音乐的帮助更好
  当 [大官] 的最好不要出现, 让大家畅所欲言。 (即使出现, 也要夹着尾巴, 不要为自己以前的行为辩护, 作好听众)
  坚持对事不对人的原创, 强调 - 如果再有一次机会, 会如何改进? 而不是挖历史旧帐.
  照顾到模板提及的各个领域, 可以深入团队最感兴趣的部分。
  让所有人都有充分发言的机会。
  有人记录发言要点, 最后列出所有改进意见
  最后大家可以投票, 如果我只有三票, 投给哪些改进意见
  大官们保证要采取行动, 执行票数最高的一些改进意见。

原文转自:http://www.ltesting.net