刚下飞机——事后诸葛亮

一、设想和目标

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

我们的软件主要解决大学生寻找问题解答困难,又不好意思去向老师同学提问的问题;要解决的问题定义的比较清楚;对典型用户和典型场景有一定的描述,但是不够完整、清晰。

2. 我们达到目标了么(原计划的功能做到了几个?  按照原计划交付时间交付了么?)

各模块已完成的工作如下:
模块 功能
用户模块 登录、登出、注册、修改密码、重新绑定邮箱、修改 个人信息
问题模块 提问、查看、收藏、取消收藏
回答模块 回答、查看、采纳、推荐
评论模块 评论、查看、点赞、取消点赞
回复模块 回复、查看、点赞、取消点赞
全部完成了原定的目标

二、计划

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

是,我们在冲刺前就制定好计划。

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

在计划阶段,对于不同的意见,我们采用在群内进行讨论,然后由组长做出决定采用哪个意见。

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

都完成了。

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

学号 内容
221701317 有不少地方为了按时完成,对代码的重用性缺少考虑了,不少代码可以重用
221701319 重复写一些可以复用的代码
221701328 css样式分了很多文件其实没有必要,有很多样式可以重用
221701333 写了很多dao层代码,其实可以复用网上的dao层泛型接口
221701337 很多块元素不需要id但是都使用了id,导致css代码无法复用
221701338 有很多控件不需要自己写,可以使用bootstrap里的控件,既美观又方便
221701340 为了复用多写了方法,但并用不上
221701401 因为没有和前端沟通多设计了接口

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

对主要的一些任务在之前有较为清楚的定义,对于一些在页面编写过程中的需要的小接口,则是由前端人员商量后交给后端一份接口的说明书。

6. 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?

否,在冲刺中出现前端设计接口跟不上进度,导致开发速度下降。
当时忽略了前端设计接口不够的风险。
没有估计到的原因:对前端人员同时完成页面和接口设计的花费的时间低估了。

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

有;在冲刺的最后两天,推荐算法的难度超出原定设想,使用了原定的缓存时间。

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

对缓冲区的设置,我们考虑将一半的缓存区分配到每个任务,避免有些问题影响整个项目的进度。

9. 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?

前端和后端的开发速度不同,在安排计划时应考虑到前端同时搭建页面和设计接口速度较慢,应该提前前端的工作。

三、资源

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

缺乏较高性能的服务器来部署我们的系统和数据库,请求响应比较缓慢。

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

时间与人力资源的消耗由组长估计,组员根据自身情况提出意见,精度大体上满足要求。

3.  测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?

测试需要的时间,人力和软件/硬件资源足够,alpha冲刺时对前端的工作(美工设计/文案)低估了难度。

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

由于技术上优劣差别,技术比较强的组员做我的事情确实更有效率,但是人力上是不能满足的,还是得分工合作,在熟练之后做简单工作的效率的差别并不大。

5. 有什么经验教训? 如果历史重来一遍, 我们会做什么改进?

免费的数据库的网速太差,浪费了我们一些时间和人力来优化,结果也不一定优于好的数据库,硬件的支持也是必要的。

四、变更管理

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

由于当前的网络发达,通过QQ电话或者其他的联系方式,可以及时的通知到对应的员工,并且详细的进行交接。

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

根据这个功能在整个系统中的重要性,是否是我们所做项目的主体功能,是否可以提高项目的性能。

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

做好各个接口的测试,并且进行整个项目的测试,将项目在服务器上运行起来,各个组员都在项目上进行测试,测试所有的功能,如若没有BUG出现,则该项目可以出口。

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

当某些功能出现变更时,撰写接口的人员会及时的将接口说明书进行修改,并且发布新的版本的功能接口说明书。

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

出现意料之外的工作请求时,负责人会跟组员进行沟通,然后驱动组员进行处理。

6. 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?

根据接口设计说明书进行代码的编写可以大大的提升效率。 项目的功能出现变更时,应当及时和对应的功能实现人员进行沟通,以防出现打出无用的代码,浪费较多的时间。

五、设计/实现

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

大部分设计是在系统设计和数据库设计阶段由组员一起完成的,前后端接口的设计是在开发中完成的,由前端开发组员设计。前后端接口设计时间太迟,只由前端设计接口容易遗漏一些小地方,导致后期需要补充。

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

接口设计时没有清楚说明数据的类型,前端拿到数据后解析方式不对出现bug,最后由前端反映到后端一起讨论解决。

3. 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么? 比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?

团队使用了单元测试的方式来帮助设计和实现,单元测试大大帮助了我们找到代码中的问题,减少了开发中许多不必要的麻烦。比较项目开始的UML文档与现在的设计细节上有很多不用,原因是我们设计UML的时候没有体会到一些开发上的难度和一些细节的不合理,UM文档需要更新一些细节方面。

4. 什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?

邮件验证的功能产生的bug最多,原因主要是我们没有考虑到邮箱系统的安全设计,邮件内容不够充实导致容易被认为垃圾邮件而拦截,从而产生bug。

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

代码复审还是主要由自己复审自己编写的代码的形式。我们在IDE中使用了代码规范插件,基本执行了代码规范。

6. 我们学到了什么? 如果历史重来一遍, 我们会做什么改进?

接口设计一定要提前做好,不然容易出现任务无法并行进行的情况。如果历史再来一遍,我们一定会提前做好前后端接口设计。

六、测试/发布

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

团队提前有测试计划,只不过计划不够完善,测试的效率不高。

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

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

有。Junit4

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

团队采用JProfiler来跟踪代码,查看代码性能,从软件的实际运行结果看测试工作很有用,可以查看哪些部分消耗了大部分的性能,改进的话可以比较其他测试工具进行性能测试。

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

邮箱服务器发生错误无法发送邮件

6. 我们学到了什么? 如果重来一遍, 我们会做什么改进?

学到了更多对单元测试集成测试方法与工具,再来一遍的话我们会制定较为详细的测试计划弥补漏洞,并且采用更多的测试工具。

七、团队的角色,管理,合作

1. 团队的每个角色是如何确定的,是不是人尽其才?

通过各个人的学业状况和个人意向实际情况进行角色划分,主要分为前后端。

2. 团队成员之间有互相帮助么?

有,例如求助其他组员帮忙实现DAO层代码。

3. 当出现项目管理、合作方面的问题时,团队成员如何解决问题?

开一个及时的小会议,通过和组长沟通将问题解决。

八、总结:

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

在CMMI二级,管理级。

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

规范阶段

3. 你觉得团队在这个里程碑相比前一个里程碑有什么改进?

成员之间的配合、默契提高了。

4. 你觉得目前最需要改进的一个方面是什么?

提高代码的质量

九、会议图片

我们采用群组内语音聊天的形式进行会议

原文地址:https://www.cnblogs.com/JustGotOffThePlane/p/12977658.html