MagicCode团队事后诸葛亮会议

时间:2012-11-24 20:00

地点:主南五层

参会人员:MagicCode全体成员(包括新转会的)

 有图有真相~~

 

 

设想和目标

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

  我们组负责学霸的UI部分,主要是对Document和QAPair做一个Presentation,功能领域定义的很清楚,典型用户和典型场景已经在Spec中明确说明。

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

  由于项目比较简单,计划时间不多,但已经足够。

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

  在PM的带领下,大家基本没有不同意见。

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

 各个团队各自为战,导致UI这边各个团队做的功能有些重合,而且大家的数据结构有差异,给代码整合带来很大麻烦,同时,软件的具体功能没有定义清楚,比如,对于资源的定义,开始我们UI组并没有想到还要在线展示爬来的网页。

计划

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

  原计划的工作都完成,没做完的部分,就是没有与另外两个UI组和前端的pipeline做到完美整合。但这个主要是因为开始各个团队没有协调好,最后我们主动提供了数据添加的API

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

  有,研究silverlight下的PDF在线阅读方案,最后才发现有现成的flexpaper

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

  任务在tfs写的比较简略,但由于比较简单,大家都能明白。

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

  PM一直在赶进度,两位DEV的进度有时候不尽人意

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

  没有

将来的计划会做什么修改?(例如:缓冲区的定义,加班)
  预留必要的缓冲时间。

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

 1. 善用google英文搜索,多了解流行的开源解决方案,少看CSDN(太多不专业),多读Documentation

  2. 预留必要的缓冲时间,留给后期的整合。 

资源

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

  资源(书籍,开源解决方案,服务器,素材)非常充足

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

  各项任务估计精度不是很好,因为任务是由PM估计的,而由DEV完成,PM不知道DEV对技术的掌握程度如何,有时候估计的任务不是很精确。

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

  我们花了两天半的时间来做测试,相对于工程量而言,已经比较充足。

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

  没有。

 

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

 1. 估计任务所用时间时,需要询问当事DEV意见

 2. 留给DEV学习的时间

变更管理

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

  变更是由PM短信同时DEV的,DEV能够及时了解。

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

  根据功能在整个项目中的重要程度,比如anti-spam,放到beta版本中了。

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

  所有页面整合在一起,通过了各项测试,就“做好了”

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

  没有。

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

  两名DEV由于经验不足,不能够有效处理,但是大家在PM的带领下出色的应对了各项突发情况。但是PM还是会在DEV比较忙的情况下独自处理各项变化。

 

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

 1. 善用TFS的源代码管理,少用QQ互传文件

 2. 多开碰头会,少通过短信通知 

设计/实现

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

  设计工作在Sprint的前三天。由经验最丰富的PM来完成。

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

      PM做出页面的草稿,交给UI的DEV具体做,PM做的模棱两可的地方,DEV都给考虑全面了~

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

  团队使用了Visual Studio 2012自带的web应用程序性能测试工具和Sikuli IDE UI自动测试工具进行测试。我们准备再beta Sprint阶段使用更多的技术。

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

  结果列表功能产生的Bug最多,其实也不多,只不过这个在各个页面中反复重复,造成了“泥球”,改起来相当麻烦。。。。

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

  没有想这么多。。。 

 

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

 将UI的部分组件控件化,方便修改与维护

测试/发布

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

  团队有明确的测试计划。

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

  没有。。

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

  有的,团队使用了Visual Studio 2012自带的web应用程序性能测试工具和Sikuli IDE UI自动测试工具进行测试。我们准备再beta Sprint阶段使用更多的技术。

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

  我们并不了解效能测试,但是会在beta中考虑,我们使用软件进行了负载测试,找到了几个致命的数据库操作的bug,在前几篇博文中我们有过总结。

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

  TA给的服务器,有各种小问题,如用户权限不足,Sql server无权限等,这些小问题都是我们团队第一个发现,并报告给TA的。

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

 1. 熟悉VS2012、LoadRunner等负载测试工具的使用(beta目标)

补充问题:

1. 对比敏捷的原则, 你觉得你们小组做得最好的是什么? 

1.1 简单----使未完成的工作最大化的艺术----是根本的

由于我们在开发过程中,始终不渝地遵循MVC的开发模式,虽然大家各自编码,但由于PM设计的架构使得各层次之间的耦合度非常低,整合起来非常顺手,这也在跟其他UI小组进行整合是带来了极大的便利~

1.2 敏捷过程提可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度

我们在整个Sprint阶段,坚持每天拿出2h+的时间coding,良好的进度使得我们的工作能够按部就班地进行下去。虽然平时的作业也很多,但我们基本能够把边边角角的时间放到Coding上,这样总的时间投入不会与其他课程冲突。

1.3 不断地关注优秀的技能和好的设计会增强敏捷能力

我们在项目开发过程中,前前后后使用了贫血模型、MVC等设计模式,采用了FlexPaper,SWF2PDF等优秀的开源解决方案,这使得我们能够把精力集中在满足用户需求之上,而不是一味的拘泥于采用何种技术,何种算法。

1.4 即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势

在最后的整合阶段,一夜之间涌现除了好多新的需求,最后PM熬夜到2点搞定~~

 

2. 什么是在下个阶段 m2 要改进的地方? 

由于邹欣老师安排我们在M2阶段进行搜索引擎的开发,我们准备从以下几个方面入手:

1. UI方面,2Dev(孙胜,陈宇宁)负责,主要有两个方面:搜索首页,搜索结果页设计。主要要求:中英文支持,Tab式的文档、资源搜索结果自如呈现(符合用户习惯)

2. 搜索方面,PM负责,采用Lucene.Net开源解决方案。开发定时构建索引工具,定义索引结构。

3. 测试方面,1dev(谷骞)负责,熟悉vs2012下的效能测试,负载测试等各种测试手段,对网站进行各项测试,同时协助PM进行搜索引擎开发。

附:Lucene索引结构

Name Index Store TV Boost Description
qid UN_TOKENIZED YES NO -
tags TOKENIZED YES NO 4
title TOKENIZED YES NO 2
content TOKENIZED YES NO -
created UN_TOKENIZED NO NO -
repiles UN_TOKENIZED NO NO
views UN_TOKENIZED NO NO

posted @ 2012-11-24 21:06  MagicCode1023  阅读(948)  评论(3编辑  收藏  举报