M2事后诸葛亮会议

设想和目标

  1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?

我们的软件主要要解决的是对于爬虫爬到的数据进行元数据抽取,最终存入到UI组的数据库中。

由于第一个阶段我们的成果并不是很好,分析了问题以后,我们组没有对问题定义得十分清楚,M2阶段,我们首先解决的问题就是我们要做什么,和其它协商以后,我们负责问答对和PDF文档的网页的元数据的抽取。

我们主要是场景的描述,为特定网站的问答对的提取和标准的格式的PDF的内容的提取。

  2. 是否有充足的时间来做计划?

整个项目是紧接着M1进行的,在M1阶段发现问题与分析之后,我们花了充足的时间来做计划。

  3.  团队在计划阶段是如何解决同事们对于计划的不同意见的?

在M1阶段中,我们项目的任务定位不是很明确,计划也出现了一些偏差。所以最终出现了很不好的结果。对于M2,大家都很明确首先要解决的问题是处理哪些数据。这一点上基本上没有不同意见。但是大家的积极性貌似都不高,也没有做过多其它的计划。

如果历史重来一遍我们会做什么改进?

       如果历史重新来一遍,我觉得我们还是应该要在计划的细节上更多的交流、讨论。这一点对于团队项目的进度,团队项目最终的结果都是有很大影响的。

 

计划

  1. 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?

原来计划的几个工作都算是完成了。欠缺的主要是对于算法等的优化,这些很影响程序的性能。关于优化这一块,时间上不是很充足。

  2.  有没有发现你做了一些事后看来没必要或没多大价值的事?

有,比如说我编写了对于百度知道的网页的问答对的提取。但是最终由于百度知道的内容效果不好。而没有采用百度知道的内容。

另一个例子就是对于OCR工具的使用,这一块最开始的目标想要用到PDF文档的内容的提取上面。但是这个只是对于屏幕中的内容的拾取,对于多页的pdf的内容的提取效果不好,最终放弃这个方法。

  3.  是否每一项任务都有清楚定义和衡量的交付件?

不是。

  4.  是否项目的整个过程都按照计划进行?

总体上是,但是具体来看就不是很好了,比如时间,项目进度的安排都或多或少地存在一些问题。

  5.  在计划中有没有留下缓冲区,缓冲区有作用么?

本来打算是要留下缓冲区的,但是在做项目的过程中,基本上就没有好了缓冲区的概念。一些项目都是在最后的时间内才完成,甚至都没有完成,另外花了一些时间来做的。

  6. 将来的计划会做什么修改?(例如:缓冲区的定义,加班)

M2阶段结束了,我估计大家都不愿意再接触这个项目,所以……

但是如果是对于以后其它的团队项目,这些都可以考虑的。缓冲区可以从时间上来定义,同时也可以从产品功能上来定义。

对于加班,这个我觉得是理所应当的事情。

如果历史重来一遍我们会做什么改进?

       有一个问题需要好好思考,怎么才能够让大家按照计划完成自己的任务。如果历史从来,我想首要解决的问题就是这个。其次就是关于软件的设计问题,这个问题不好回答。因为对于软件的设计不是一件简单的事情。需要一个人长期的经验与能力,这一点可以请教一些有经验的人。同时,我们在做项目的方式上也是需要请教别人的。就比如一些技术上的实现方案。我们这些方面比较欠缺。

 

资源

  1. 我们有足够的资源来完成各项任务么?

这里的资源要怎么定义呢?通常情况下可以包括老师、同学、图书馆、网上资源……看起来这些资源是非常丰富的。但是我觉得还不够。整个项目的过程中我觉得缺少一个有力的指导。我觉得这个项目有些时候让我有点摸不着头脑,不知道应该怎么做,问过老师(包括邹老师请来的微软来的工程师),也问过同学,也在图书馆查找了很多文献,但是,就我自己来说,我觉得不够。这些之后,我还是摸不着头脑,M1结束之后,我们还是没有做好。  

  2.  各项任务所需的时间和其他资源是如何估计的,精度如何?

各项任务所需的时间的估计很轻松。首先有一个8小时的限制,然后再加上一些自己的经验(也就是个人设想的这个任务应该怎么做,有哪些问题)得到最终的估计。精度的话,只能够说百分之三十到四十吧。有些任务对于我来说,就明显不止花了8小时。 

  3. 用户测试的时间,人力和软件/硬件资源是否足够?

用户测试时间不够,其实说实话,到M2结束以后,大家(几乎所有人(我敢这样肯定))都没有在软件工程这门课上花什么心思了,因为有数据库、编译的考试和大作业。

软/硬件资源还是够的。

  4. 你有没有感到你做的事情可以让别人来做(更有效率)?

 有,每个人的兴趣和能力以及个人的时间安排都是不同的。这样自然就会存在问题

如果历史重来一遍我们会做什么改进?

       可能不会有什么改进,因为M1阶段的postmorterm也写了这个问题。

 

变更管理

  1. 每个相关的员工都及时知道了变更的消息?

不是,这个项目中主要的变更会是在TFS上反应。但是有的同学不是经常使用TFS。

  2. 我们采用了什么办法决定“推迟”和“必须实现”的功能?

我们组主要的目的就是为UI提供数据,所以决定“推迟”和必须实现还是以数据这个问题为导向的,同时也包括了实现难度上面,比如扫描版的PDF,我们觉得做不下来,推迟了,最终放弃。索性,因为这个是多个小组联合的项目。我们要求实现的内容还是比较单一的,没有太多“推迟”与必须实现的功能。

  3. 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?

算是比较清晰的定义,只要给UI组中的数据库填入了准确内容,那么项目就完成。

  4. 对于可能的变更是否能制定应急计划?

不能制定,基本上都是个人面对问题时自己处理的。

  5. 员工是否能够有效地处理意料之外的工作请求?

基本上不能。

 

如果历史重来一遍我们会做什么改进?

       我觉得还是做不出什么样的改进,这也是M1阶段说过的内容了。但是个人感觉,除了给大家的任务更明确之外,没有多大的改进。

 

设计/实现

  1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?

设计工作主要是在Daily Scrum开始之前,也在进行的过程中有一些小的方面的设计。由dev完成。我觉得时间上挺合适,人嘛,我是比较水的,所以我不太合适。

  2. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?

有,大家提出自己的想法,选取一个最容易实现的方案解决。

  3. 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么?

部分模块做了单元测试。未使用UML

  4, 什么功能产生的Bug最多,为什么?

对于PDF中内容的提取产生的Bug最多,因为一直没有找到一个好的方法来提取PDF。

  5. 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?

 没有复审。

如果历史重来一遍我们会做什么改进?

       还是需要督促团队每一个人做好自己的工作,这一点上要制定明确的规范。

 

测试/发布

  1. 团队是否有一个测试计划?为什么没有?

没有,因为大家基本上都是一个想法,写代码最重要,首先要把这个东西给写出来。然后就是时间问题和测试人员的专业性问题。

  2. 是否进行了正式的验收测试?

没有。

  3. 团队是否有测试工具来帮助测试?

使用VS2012中的工具。

  4. 团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?

只是做了最简单的软件测试,软件整体性能手动进行。

  5. 在发布的过程中发现了哪些意外问题?

发布主要在UI组。

如果历史重来一遍我们会做什么改进?

         首先是各种测试工具学习使用,然后是持续测试,让测试人员从一开始就开始测试工作。

 

和M1的比较

1、         M1阶段我们最主要的问题是没有明确我们要处理什么样的网页。在M1阶段,因为这个问题,我们纠结了很久。导致最终的问题没有做好。在M2阶段,明确了我们要处理的是问答对和PDF文档。我们的工作明确了很多。这个是最大的改进。

2、         在M1阶段,项目的管理不好。大家的工作分配了之后督促也没有做好,在M2阶段这个有了一定的提升。

3、         测试方面,虽然M2也没有做多少的测试,但是,和M1相比是肯定有的

4、         代码规范,这个是两个阶段都没有注意到的。

posted on 2013-01-07 01:11  fightingsnail1  阅读(236)  评论(0编辑  收藏  举报

导航