导师互选系统 Alpha版冲刺总结

一、设想和目标

  • 我们的软件什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
    我们的软件主要是要实现导师和学生双向互选的功能。功能定义清晰明确,在软件规格需求说明说中有相信的讲解。包括典型用户和典型场景的描述。
  • 是否有充足的时间来做计划?
    有足够的时间来做计划。
  • 团队在计划阶段是如何解决同事们对于计划的不同意见的?
    小组开会讨论协商。

二、计划

504陈逸超教师模块、学生模块V层代码、P层代码7
505陈少铭提供View层模板、android端P层模板、Model层模板、逻辑串联、修复bug9
511黄家俊php后台开发,MC层9
515翁祖航院负责人、系负责模块V层代码、P层代码7
516黄瑞钰需求分析细化、接口文档、UI美化6
517毛仲杰
524王智强博客整理、文档整理,协助后台开发、数据库数据录入7
  • 你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
    原计划的工作大概估计了一下,应该就只完成70%。完成的情况如下:教师模块、学生模块基本完成,院负责人模块、系负责人模块完成85%。UI和界面美化完成的情况比较差,这也是我们Alpha版本主要没有完成的部分。分析一下原因,主要出在了两方面:
  • 有没有发现你做了一些事后看来没必要或没多大价值的事?
    在这次项目中,要提一下 陈少铭同学,少铭同学的编码能力挺强的。在项目开始初期,他按照自己以前的项目经验,牵头为个项目搭建了一个框架,并且加入了一些非常有用的工具类。举个栗子:解析JSON数据的工具类,让我们小组成员在解析JSON数据的时候只需要一两行代码即可!而且有很强的复用性。可能是其他组员刚接触到android不久,有个组员可能没有体会到别人封装的工具类的好用,自己动手写了一个可以解析JSON数据的utils。心里佩服他这种尝试的精神,但是其实事后总结,对于我们目前的项目而言,这其实相当于无用功。因为工具类已经封装好了,可以直接调用。可以确保项目的进度,但是他自己写了工具类,也是会有收获。

  • 是否每一项任务都有清楚定义和衡量的交付件?
    有,因为学生导师互选系统角色较多。功能要求也较高,所我们前期花了大量的时间在功能的讨论上,以及对各个角色的定义。

  • 将来的计划会做什么修改?
    和栋哥在进行需求上面的交流,根据栋哥的需求我们动态调整计划。

  • 在计划中有没有留下缓冲区,缓冲区有作用么?
    项目在前期推进的时候基本上都按照原计划进行。到冲刺中后期,由于出现各种bug问题,忙于修复bug,项目的进度上面有一些拖延。不过经过努力,加班加点修复bug,并完成了大部分的功能。

三、资源

  • 我们有足够的资源来完成各项任务么?
    在资源方面,我们的资源还是充足的。测试数据php后台主要是采用工具postman测试接口的可用性。android端,我们在alpha版本暂时没有采用测试工具,主要是用Log打印工具,对各种bug和功能、以及数据进行测试。

  • 各项任务所需的时间和其他资源是如何估计的,精度如何?
    完成任务的时间在刚开始还是可以把控的,可能是因为刚开始编码的难度都较低。在后期因为涉及跟后台数据的对接、activity之间的逻辑跳转,所以时间上面显得有点不能按期完成。陷入修复bug的深渊中....

  • 测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度? 
    修复bug之后,把功能实现就已经接近项目验收的时间了。在专门的用户测试这一块上面我们做的不够好,我们没有预留专门用来测试的时间不够多。基本上测试都是在开发的过程中,编码代码改bug测试的。没有在功能全部实现之后,在集中的进行测试,更深入的找寻潜在的bug...
    UI用户体验方面,由于专门做美工的同学,参加国家性的比赛。UI基本做完,但是在冲刺快结束的后几天,有点匆促。

四、变更管理

  • 测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度? 
    团队小伙伴都住在相邻宿舍,更改信息传递上面没有什么延迟。几乎都会到宿舍当面说。

  • 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
    项目的出口条件,在alpha版本还没有太明白的搞清楚什么是项目的出口条件。

  • 对于可能的变更是否能制定应急计划?
    对于变更,我们根据哪些人手头的任务完成之后,就先去接手。

  • 员工是否能够有效地处理意料之外的工作请求?
    我们所有的请求都汇总到组长那边,再由组长统筹安排。

五、设计/实现

  • 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
    界面设计主要是有黄瑞钰同学完成的。字体大小的定义和界面图片的边距都是由他负责。瑞钰的审美较好,PS用的很熟练。切图都由他完成。图标的边距,我们采取的是用“标你妹~啊“来自动帮我们处理完成,再加上人工手动调整。

  • 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
    在界面设计方面其实,我们刚开始还是遇到了一些问题。就是在画原型的时候,考虑的不周到。比如手动添加学生信息,这个界面少了一些 输入框。少了这些输入框是必要的,也就是提交post请求必须传给后台的。所以当我们编码阶段的时候,还是有对原型和界面的设计进行讨论和修改

  • 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么?
    alpha版本没有运用单元测试。不过最近在学习juit怎么进行单元测试。计划在beta版本运用,还有一个bugtags也会运用。

  • 什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
    我们项目bug最多的地方是在Listview列表和JSON解析。listview的适配器其实套路都差不多。但是listview里面的每个item有个按钮,点击按钮要实现一些跳转和intent传值这部分刚开始遇到有些棘手。JSON数据的解析,经过我们的后面开会的总结,主要是细心程度不够。比如返回的键值对的键应该是message,而后台开发的小伙伴一不小心写成了”mesage“,少了一个s,android端的小伙伴只按照文档,所以造成数据解析不出来。不过也是这个原因,我们慢慢摸索,懂得了在获得后台返回数据之后,将JSON数据先Log出来一下,再进行解析。发现错误也好沟通修改。

  • 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
    刚开始504陈逸超515翁祖航都是在自己的分支上面写代码,完成工作量。505陈少铭等我们代码写完之后,他有帮忙审核,审核不行,会让我们修改,审核通过再合并到主分支。后面可能因为时间不怎么来得及,都在主分支上面开发和提交。下一阶段,会合理安排时间和进度。落实好,代码复审。
    代码规范还行。有个要注意的点就是,写一个函数的时候就要随手把注释给写上,养成一种习惯。写完一个模块再回过头来注释,有的小伙伴采取这种方法。但是思考一下,这样不太好。

六、测试/发布

  • 没有专门的测试计划,alpha版本都在忙着码代码,完成功能,修复bug。所以测试暂时还没做到。
  • 下一个阶段我们调整一下结构。组长不参与编码,专心把握项目的进度,做好项目的管控,安排好任务和制定好测试计划。统筹协调组员之间的编码问题。

七、总结

  • 你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
    二级

  • 你觉得团队目前处于萌芽/磨合/规范/创造阶段的哪一个阶段?
    磨合

  • 你觉得目前最需要改进的一个方面是什么?
    沟通不足。

八、从alpha版本到beta版本的展望

团队沟通:明显不足,出现问题未及时反馈交流,导致bug倍增(找bug之夜)将安排每天晚上2个小时的一起工作时间,所有人不得缺席。一起码代码,有问题当场面对面沟通。出现bug,新手尝试无法解决,则老手上。(让bug胎死腹中。。)
原型设计不够完善整理细化要求
分工不够细化。尤其是模块之间耦合的部分分工不够明确。重新调整,细化分工。
UI美工部门去参加比赛,UI虽基本做完但不佳且不够beautifulbeta的时候UI实力扛把子,会在原来的界面设计基础上有比较明显的提升。
代码规范还ok要求在写函数时,务必跟上注释。
测试没有专门的测试计划,没有形成测试体系组长将不参与编码,专心把握项目的进度,做好项目的管控,安排好任务和制定好测试计划。
04-23 08:22