【混子小分队】事后诸葛亮
一、设想与目标
1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
我们的软件主要是用来解决人们的倾诉情感方面的需求;我觉得我们对典型用户和典型场景描述的较为清楚,有比较强烈的实际应用需求,因为大家生活的过程中容易受到来自学习、生活、工作等各方面压力的影响,一个简约的倾诉平台更利于用户接受;具体的描述可以参考需求规格说明书
2.是否有充足的时间来做计划?
差不多,但是因为大家对开发的流程等不大熟悉,所以还是略有延误。
3.团队在计划阶段是如何解决成员对于计划的不同意见的?
听队长的。
4.用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?
虽然上线了,但是用户量还没达到。但是我们有特意邀请同学体验一下我们上线的小程序,与我们事先预想一致。我们离目标还是有点距离,但我们对它的前景很看好,在未来可能会对它进行改进发布。
有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
确定好每个人的工作,在前期做好所有事情的规划。当然这是马后炮了,只有经历过团队开发才知道规划这方面有这么多不足之处。
二、计划
1.你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
按照最初的设想,基本上都完成了,而且也成功上线了。
2.有没有发现你做了一些事后看来没必要或没多大价值的事?
暂时没有,因为大家都要集中精力共同开发。
3.是否每一项任务都有清楚定义和衡量的交付件?
基本上是,除了一些比较模糊、难以划分的任务。
4.是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
基本上是按照计划进行,项目制作得还算顺利,唯一没有想到的是后面调试的时候遇到一些奇奇怪怪的bugs,不过都顺利解决了,都是意外。
5.在计划中有没有留下缓冲区,缓冲区有作用么?
有预留,比如将ddl的时间自主地前移,可以有效保证任务按时完成。
三、资源
1.我们有足够的资源来完成各项任务么?
还是可以的,我们组内有编程能力很高的成员,项目的完成不是问题,只是大家的经验不足。
2.各项任务所需的时间和其他资源是如何估计的,精度如何?
感觉一下,精度不高。
3.有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
希望能有更多dl来支持,能更快地从技术上突破。
四、变更管理
1. 每个相关的员工都及时知道了变更的消息?
是,我们有一个微信的群来通知大家项目的进展及变动,同时在github上大家进主页的时候也会看到团队项目的动态变化。
2. 我们采用了什么办法决定“推迟”和“必须实现”的功能?
以项目的开发进度和功能模块来决定。若这个功能在项目的运行中是必不可少的,就是必需实现;若它可有可无,只是锦上添花的话,则可以作推迟处理。
3. 项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
大致定义为以下几点
- 各功能正常运行
- 无突然崩溃、卡顿等奇奇怪怪的bug
- 常用模块没有问题
- 能长时间运行无bug。
4. 对于可能的变更是否能制定应急计划?
是的,比如我们留下了缓冲区,可以在紧急情况下获得更多时间、还有多个多技术型成员,可以在应急情况下及时处理问题。
5. 员工是否能够有效地处理意料之外的工作请求?
是的。
五、设计/实现
1. 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
在最初的集体会议中就着手准备设计的工作了,大家共同商讨决定,还是挺合适的,如果能再早一点就好了。
2. 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
有,我们先以“最低要求”来实现,并且记录本次问题,在项目后期再对这些情况作进一步处理,完善它们。
3. 团队是否有测试工具来帮助测试?
有使用,它们的效果还很好,但是没有大规模地进行,因为我们采用边测试边开发的思想,尽最大化程度地节省测试,而且我们最后时间似乎不大够,但最后结果还是令人满意的。
4. 什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
在我们这个项目中,收、发信的过程容易出现bug,因为它是核心、并且是常常使用的模块。项目构建中我们没有以一种大局的观念来进行项目的开发,在前后端等接合的地方容易出现问题。
5.代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
我们有使用阿里巴巴的代码规划,大家在开发的IDE上都安装了这个插件,所以代码大都能按照规范进行。
6.我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
再早一点干活会更好……
六、测试/发布
1. 团队是否有一个测试计划?为什么没有?
有
2. 是否进行了正式的验收测试?
对安卓机、苹果机的各主要功能进行了逐一验证,都通过了。
3. 团队是否有测试工具来帮助测试?
没有,都是手动一个一个地测试的,因为这个程序的功能不多,量不高,所以这样测试还能令人接受。对于以后的改进,我认为我们需要学习至少一种自动化测试工具,提高效率。
4. 在发布的过程中发现了哪些意外问题?
小程序上线的时候需要配置域名,并且还要配置SSL,幸好我们小组有成员购买了域名,顺利解决,成功上线。
5.我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
测试对于程序来说还是很重要的,它可以发现很多编写代码中暂时未出现的bugs,我们未来还要继续学习测试相关的手段或方法,若下次还有这种项目,可以使用自动化测试手段来提高效率。
七、总结
1. 你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
二级
2. 你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
萌芽阶段,还是有很多很多很多需要学习的地方。
3. 你觉得目前最需要改进的一个方面是什么?
对项目的看法以及团队项目的流程,这次开发的过程中,总感觉时间不够,东西很多,还有很多bug,程序能跑起来已经很不错了。我们还需要用一种工程的视角来看待这个大作业,希望以后做得更好,提交效率。