M1事后分析报告

我们的项目整体分为服务端和客户端。服务端准备架设在服务器上,进行多平台用户数据的存储。客户端目前打算做两个,一个基于Windows平台,一个基于Android平台。主要需要实现的功能有两个:

  1. 对于个人用户,实现个人的设置闹钟,取消闹钟的操作,这些操作将会上传至数据库,并被同步到所有的客户端上。在服务器端要实现用户注册、数据的增删改查等功能。
  2. 对于群组,我们还要加入用户的好友功能,可以根据其他人的ID来添加好友,将好友拉入群组,如果好友同意的话,这个群组可以设定群组闹钟,这些闹钟会被共享给整个组内的所有成员。对于这个功能,我们在服务器端还要加入用户的好友数据,以及群组。

【计划】

我们目前打算用Bmob后端云,这也是我们在第一轮迭代之前需要完成的。另一个需要在第二轮迭代完成的是windows端的客户端,我们需要在第一轮迭代前实现Beta版本。

         对于这个项目,我们认为用心做就一定会有用户,界面简介,没有广告,做良心的应用。

   

M1事后分析报告

设想和目标

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

软件的灵感来源于组员的最初需求,生活中经常会发现很多社团会议难以加入日历项,大多数会议也只是口头通知,我们的闹钟提醒软件就是由活动发起用户建立群组来提醒所有组员,从而解决这些问题。定义和典型用户及场景已在说明书中明确说明。

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

有时间,但是没有充分利用时间来做计划,对计划的执行力度不够。

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

主要是在团队会议讨论阶段,大家提出自己的看法,最后由几位核心负责人总结并制定计划。

 

计划

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

我们目前打算用Bmob后端云,这也是我们在第一轮迭代之前需要完成的。另一个需要在第二轮迭代完成的是windows端的客户端,我们需要在第一轮迭代前实现Android版本。

对于这个项目,我们认为用心做就一定会有用户,界面简介,没有广告,做良心的应用。

目前原计划的实现Android版本完成了一部分。因为第一轮我们的开发主力被学院调走参加挑战杯比赛。落在其余组员身上的压力过大,以至于没有完成。

 

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

有,而且这些事浪费了我们时间。比如纠结用何种开发工具。

 

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

不是,因为开发人手不够,所以任务只有少数人清楚。

 

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

不是,项目中途有很多突发状况,出现很多次人手不足的情况,导致后来一直要赶进度。

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

有缓冲区,还是有一定作用的,缓解了一部分人员短缺和突发状况的问题,但是不能从根本上解决问题。

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

      将开发工程师人数提升到4人。分别负责2名前端,1名后端,1名UI界面。测试由工作量较小者完成 

资源

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

人力资源不够充足。

完成任务的学习资料很充足。

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

 由于第一轮人手不足,所以开发人员压力比较大,没有很细致的考虑资源分配和任务分配的问题,所以也谈不上精度如何。只是在有限时间内,每个人能做多少就做多少。

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

在百度开发者平台发布时,留有开发者联系方式。至今为止没有用户联系过我们。但是身边的同学在使用过我们的Agenda Manager之后,提出了一些建议。

人力资源自然是不够的。

软件和硬件资源充足。

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

本来人手就不足,基本是每个人的利用率最大化了,所以基本没有人可以代替别人完成任务。 

变更管理

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

 不是。在更换PM的时候,前一位PM没有及时的得到消息。

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

根据功能的优先级即重要程度来确定,将一些次重要的功能留给下一个阶段实现。

  1. 项目的出口条件(Exit Criteria)是否得到清晰的定义?

是的,如下:

(1)、注册新用户并登录

(2)、通过ID添加好友

(3)、创建群组

(4)、邀请好友进入群组

(5)、被邀请的好友选择接受或拒绝

(6)、创建群组的用户在本地创建好日程提醒

(7)、可以创建多个日程    

(8)、将日程提醒推送给群组内每个人

(9)、组内用户收到推送后选择接受或拒绝

(10)、某个用户拒绝后,创建者收到反馈。

(11)、日程提醒的时间格式应为: year – month – hour - minute

(12)、创建日程提醒的人可以手动修改或删除该日程的任意信息。

(13)、日程提醒过后,可自动删除该项

(14)、实现自动登录,即在退出后的短时间内,无需再次通过用户名和密码登录。

(15)、到设定好的日程提醒时间后,完成弹窗震动或响铃提醒。

(16)、重启后,原有日程提醒不失效。

 

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

目前采用的是较简单的顶替做法,没有系统地制定应急方案。

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

能。

 

设计/实现

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

设计工作由主力开发人员完成,都在M1前期完成。

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

经常碰到,大部分是由具体执行的人自己解决,如果问题比较严重,就会拿出来和其他组员进行讨论,再由核心成员一起制定解决方案。

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

M1阶段没有进行单元测试。

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

闹钟提醒功能BUG最多。

因为开发人员对于Android的广播、注册机制了解不够透彻。

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

       开发进度一直很拖,最后没有进行代码复审。 

测试/发布

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

团队有明确的测试计划。

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

是。在Android 内测版完成编码后,由本队的测试员进行了全方位的测试。

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

由于是移动端的App,所以仅需进行使用测试。

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

在M1阶段,我们仅进行了使用测试。

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

    由于是第一次发布产品,所以有很多需要严格执行的程序。比如要有独立版权的App图标,并且图标必须是512X512高清图;有登录功能的产品需要提供测试账号、测试密码等。

 

 

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

  1. 保持简明,尽可能简化工作量。任何还没有明确的工作都会花不可知的时间,因此在计划中时刻最大化未完成的工作量,不把那些还没有做的工作和正在做的工作混起来。

 

  1. 敏捷流程中保持可持续的开发速度。不论目前手头的事有多少,总能在一个长期恒定的开发速度中完成任务,因此中间的一些突发状况也能较好地应对过去。

 

  1. 注重需求,把客户当做团队的一部分,时刻注意新的需求的产生,并制定实现的新方案。

 

2)   什么是在下个阶段 M2 要改进的地方?越具体越好。 

  1. 我们认识到了具备一位统揽全局的PM之重要,在第二轮我们将任命一名专职的PM,以掌控全局。
  1. 改善整体的团队成员分配,我们需要在第二轮迭代中引进一位能够编写代码的同学,这样我们就有了4位主力进行开发。此举能够大大加快我们的进度。解决我们码力不足的尴尬境地。
  2. 提高全体成员的积极性。这对我们而言是不简单的工作,因为我们还同时有编译原理和数据库作业,所以一定要拿出成果,及时播报成果,让队伍有了成就感,就自然有了团队的向心力。这个任务交给黄上,由他来带动整体的气氛。
  3. 重构代码,整合Bmob提供的API。
  4. 严格执行绩效制度,想要得分就一定要对团队有正贡献。用以防止我们出现人手不足的这种情况,让所有的同学能够加入到开发过程中来。每次的任务都有任务点(Mission Point)来标记,最后将按照任务的权重来分配分数。

 

posted @ 2015-11-24 12:21  TeamC#  阅读(229)  评论(5编辑  收藏  举报