首页 > 代码库 > M1事后分析汇报以及总结
M1事后分析汇报以及总结
一、设想和目标
1. 们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
我们的软件主要是为了提供周边美食和菜谱查询功能,为“吃货”们提供便利。对典型用户和场景有清晰的描述。
2. 是否有充足的时间来做计划?
有,在确定了要做什么项目以后,我们又一个星期的时间来做计划。
3. 团队在计划阶段是如何解决同事们对于计划的不同意见的?
大家都主动进行讨论与协商,对于那些能改善我们项目地意见,队员们都会接受。
二、计划
1. 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
M1阶段我们想要实现的功能基本上都实现了。
2. 有没有发现你做了一些事后看来没必要或没多大价值的事?
我们所做的事情是在实现我们应用的主要功能,因此每个任务都是有意义的。
3. 是否每一项任务都有清楚定义和衡量的交付件?
大部分都没有。我们对任务的描述基本上只有一个大体上描述,具体的细节并没有交代的很清楚。
4. 是否项目的整个过程都按照计划进行,有什么风险是当时没有估计到的,为什么没有估计到?
在整个过程中,我们需要调用其他网站提供的接口来获取数据。但是我们并没有估计这些数据接口的稳定性。在我们开发过程中,出现过两次这些接口无法返回数据的情况,弄得我们手忙脚乱。这些风险不是我们所能控制的,但由于提供数据的都是一下大的网站,因此在反馈后问题很快就能解决。
5. 在计划中有没有留下缓冲区,缓冲区有作用么?
计划时是用两个星期完成核心开发,剩下一个星期是我们留下的缓冲区,用来完成前两个星期未完成的工作,并实现整合和完善。我们这个确实做了很多工作。
6. 将来的计划会做什么修改?(例如:缓冲区的定义,加班)
这次主要的开发阶段有三个星期,我们还是会留下一个星期作为缓冲区。
三、资源
1. 我们有足够的资源来完成各项任务么?
我们的时间资源是比较充裕的。而测试时由于我们计划使用每个成员的手机做兼容性测试,所以测试资源比较少。后来我们发现网上有专门的兼容性的测试,我们在下个阶段会利用它们来测试。
2. 各项任务所需的时间和其他资源是如何估计的,精度如何?
对于每项任务所需时间的估计,精度是比较低的。有的任务看起来简单,但实施起来很复杂,因此对时间的估计有不小的误差。
3. 你有没有感到你做的事情可以让别人来做(更有效率)?
如果开发人员对于自己开服部分有着更好的设计,结果更加清晰,整合人员在整合时的效率提高不少。
四、变更管理
1. 每个相关的员工都及时知道了变更的消息?
成员都住得比较近,PM会第一时间通知到每个成员。
2. 我们采用了什么办法决定“推迟”和“必须实现”的功能?
经过讨论,对于我们一致认为实现起来很困难的功能,我们觉得推迟。
3. 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
完成上述的我们这个应用的两个基本功能,并对UI进行一定程度的美化。
4. 对于可能的变更是否能制定应急计划?
没有。往往变更都是突然出现的,我们也是等变更出现后再寻找解决方法。
5. 员工是否能够有效地处理意料之外的工作请求?
我们在分配突然出现的工作时,会优先吧工作分配给当前任务已经完成的成员,大家都会接受并很好的完成多余的任务。
五、设计/实现
1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
设计工作时在计划阶段由PM来完成。
2. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
这种情况下开发人员会和PM进行讨论,敲定细节。
3. 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么?
我们并没有使用这些工具。
4. 什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
Bug主要表现在UI的显示,有的部件在一些平台上可能无法显示,这和安卓的版本有关。
5. 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
我们也没有进行很仔细的代码复审。我们对接口的设计规范进行了一定的要求。
六、测试/发布
1. 团队是否有一个测试计划?为什么没有?
测试的计划只是简单的功能测试和兼容性测试。因为不知道有一些工具可以帮助我们进行测试,所以测试做得比较简陋。
2. 是否进行了正式的验收测试?
验收测试也就是功能的测试。
3. 团队是否有测试工具来帮助测试?
没有。但现在我们知道网上有一些测试工具,我们会把它们应用到下个开发阶段中。
4. 团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
队员软件的效能我们并没有做过多的测量。
5. 在发布的过程中发现了哪些意外问题?
发布过程中我们发现审核的速度会比较慢,这可能会影响我们的更新速度。
总结:
你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
我们的团队应该还属于萌芽阶段。因为任务比较简单,所以不会有什么冲突,也不会有太多的规范。团队还是处于最初的萌芽阶段。
你觉得团队在这个里程碑相比前一个里程碑有什么改进?
这应该是我们团队的第一个里程碑,成员们都互相熟悉,明确了自己的目标,并开发出了一个可用的应用。
你觉得目前最需要改进的一个方面是什么?
最需要改进的是任务的设计与分配,并在开发过程更好的应用TFS来管理我们的任务,这样可以提高我们的效率。
两个问题:
1) 对比敏捷的原则, 你觉得你们小组做得最好的是什么?
敏捷原则:在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。
团队成员住的很近,因此当需要进行讨论时,或是在开发阶段遇到了什么问题,开发人员都会主动去找PM进行面对面交流。当任务发生变更时,PM也会当面通知相关的开发人员。在面对面交谈的过程中,也会产生一些新的问题或建议。这一点对整个项目的开发有很大的帮助。
2) 什么是在下个阶段 M2 要改进的地方?越具体越好。
任务的设计方面,有了M1的阶段的经验,我们对安卓开发以及成员的能力都有了进一步的了解。在设计任务时,会更合理的进行任务的分配,并且任务我们会进一步的细化具体的效果。
在M1阶段,我们在使用TFS进行任务管理时,对每天的任务更新有所滞后,新增和删除的任务也没有即使通过TFS和燃尽图体现出来,我们在M2中做好这一点。
开会记录:
M1事后分析汇报以及总结