项目复审分析报告
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineeringClassof2023 |
|---|---|
| 这个作业的要求在哪里 | https://www.cnblogs.com/Lnhow/p/18882235 |
| 这个作业的目标 | 事后的项目复审分析 |
设想和目标
-
我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
我们的软件旨在解决校园二手交易和特色手作商品交易,解决校园社区内闲置物品流通不畅和特色商品供需匹配的需求。我们对产品定位、核心功能、差异化特点以及技术架构都进行了详细的说明,对要解决的问题以及实现方案的方向和核心构成是定义清楚的。结合产品定位和核心功能,典型用户聚焦于学生,典型场景聚焦于校园。 -
我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)
很遗憾,我们没有达到目标,原计划的功能做了16个,未能按照原计划时间交付,原计划的用户数量未达到 -
和上一个阶段相比,团队软件工程的质量提高了么? 在什么地方有提高,具体提高了多少,如何衡量的?
和上一个阶段相比,团队软件工程的质量提高了,在代码质量方面提高了,代码更简洁且注释更多且清晰。 -
用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?
很遗憾没能上线。当然是离目标更近了。
有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
经验教训是应该制定更加合理的目标,并且把主要精力放在实现主要的功能上。
如果历史重来一遍,我们会修改部分原有目标,并且努力将主要功能全部实现并且将该产品上线。
计划
-
是否有充足的时间来做计划?
有充足的时间做计划。 -
团队在计划阶段是如何解决同事们对于计划的不同意见的?
大家先经过商讨,最后对不同意见的计划做投票选择,选取票数多的意见。 -
你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
原计划的工作没有全部做完。因为发现原本制定的目标过于庞大,而且时间来不及全部完善了。 -
有没有发现你做了一些事后看来没必要或没多大价值的事?
暂时没有。 -
是否每一项任务都有清楚定义和衡量的交付件?
是。 -
是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
项目的整个过程没有按照原计划进行,项目后期还有些功能没有全部实现。项目后期出现了些bug,因为时间不够以及发现还有部分功能要完善。 -
在计划中有没有留下缓冲区,缓冲区有作用么?
有留下缓冲区。有作用,通过加班修改了部分功能的bug。 -
将来的计划会做什么修改?(例如:缓冲区的定义,加班)
修改和删减部分非主要的功能,并且留下充足的缓冲区。
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
我们学到了,要充分考虑并制定好项目的计划。如果历史重来一遍,我们会将项目原有的计划进行修改,删减掉部分非必要的功能,同时要对每个人的工作要安排得更加清晰。
资源
-
我们有足够的资源来完成各项任务么?
有七个人来做项目,但是大家的经验不够充分,碰壁较多。 -
各项任务所需的时间和其他资源是如何估计的,精度如何?
根据任务量来进行估计,精度较粗糙,因为没有考虑到任务的难度。 -
测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
测试的时间,人力和设备资源不够充足。
对于那些不需要编程的资源没有低估难度。 -
你有没有感到你做的事情可以让别人来做(更有效率)?
基本没人,任务划分较合理。
有什么经验教训? 如果历史重来一遍, 我们会做什么改进?
要修改部分计划,不能把目标制定的太庞大。如果历史重来一遍,我们会制定更合理的计划,相互之间的沟通要更加频繁,遇到问题及时分工处理。
变更管理
-
每个相关的员工都及时知道了变更的消息?
是的。 -
我们采用了什么办法决定“推迟”和“必须实现”的功能?
从用户需求和实现难度两方面进行考虑,用户需求高的功能和基础功能是“必须实现的”,需求较少和难度较大的功能就决定“推迟”。 -
项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
有。
实现的项目无崩溃、闪退现象,运转正常。
测试发现的bug全部修复。
项目的功能满足典型用户的需求且能够被用户接受。 -
对于可能的变更是否能制定应急计划?
能。比如遇到一个无法解决的bug,可以在github上拉取到上一个能够正确运行的版本,再针对遇到的bug进行讨论分析。 -
员工是否能够有效地处理意料之外的工作请求?
可以。我们会对意料之外的工作安排额外的时间去进行处理并解决。
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
我们学到了对项目的需求分析要越清晰越好。如果历史重来一遍, 我们要更加清晰的制定好项目的需求,对各个接口文档要写得更加完善。
设计/实现
-
设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
设计工作在项目需求出来时由PM张荣辉领导,团队成员共同决定。时间以及人员分工较合适。 -
设计工作有没有碰到模棱两可的情况,团队是如何解决的?
有。比如某些功能是否需要去实现的问题,我们的处理方法是先去完成别的已经确定好的工作,同时抽空讨论该功能是否有实现的必要以及该如何分工进行实现。 -
团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么? 比较项目开始的 UML 文档和现在的状态有什么区别?这些区别如何产生的?是否要更新 UML 文档?
运用了单元测试和UML工具来帮助设计和实现,这些工具非常有效。现在的UML文档比项目开始时的UML文档多了部分新添的用例,这些区别是在开发过程中不断发现新的需求导致产生的,需要更新UML文档。 -
什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
商品订单功能,因为涉及到多个模块功能的业务联合处理,没有保存订单生成时的商品信息地址信息发货信息的快照数据。因为库表设计简化了没有及时检查到业务可能存在的潜在数据变更问题。 -
代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
代码复审由各自的编写者以及团队的PM进行审核,起初没有严格执行代码规范,后来开始对代码严格规范。
我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
我们学到了在工作时要进行充分的交流,及时将遇到的问题进行合作处理。
如果历史重来一遍, 我们会将工作设计得更加合理,不盲目添加功能,以及对已有的功能要分好工作去进行维护,不能到处缝缝补补,以及要做好工作记录。
测试/发布
-
团队是否有一个测试计划?为什么没有?
有测试计划。 -
是否进行了正式的验收测试?
因为调整了最终的需求,最后只测试了一些最重要和一些基础的功能,勉强能够验收。 -
团队是否有测试工具来帮助测试?
有,我们利用工具模拟了多名用户同时进行操作,发现能够支撑大部分模拟用户同时使用。 -
团队是如何测量并跟踪软件的效能(Performance)的?压力测试(Stress Test)呢? 从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
在开发阶段,我们会对关键代码或接口行简单的性能测试。在测试阶段,我们会使用专门的性能测试工具编写脚步来模拟用户行为和负载,同时会模拟大量用户同时使用的情况,查看软件是否能够正常运转。从软件实际运行的结果来看,这些测试工作有用。改进的话就是我们还需要测试一些更加极端的情况。 -
在发布的过程中发现了哪些意外问题?
部分服务未启动或异常:如搜索服务在部署后未能正确启动。
历史数据兼容性:新代码对旧版本生成或存储的历史数据处理不兼容。
我们学到了什么? 如果重来一遍, 我们会做什么改进?
我们学会了利用工具来测试代码和软件的性能并对此进行改进。如果重来一遍, 我们会尽量将代码和软件的测试前置,找出相对应的问题并处理,将软件更加完善好并上线。
总结:
-
你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
达到CMMI中的三级,定义级别。 -
你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
规范阶段。 -
你觉得团队在这个里程碑相比前一个里程碑有什么改进?
大家各个方面的能力都有所提升,交流沟通更多了,任务分配也更加合理了,效率也提升了很多。 -
你觉得目前最需要改进的一个方面是什么?
工作效率方面。 -
下个阶段需要改进什么?
没有下个阶段了,但是期待大家后续的合作,做些别的产品。
全组讨论的照片

团队成员在Alpha阶段的角色和具体贡献
| 名字 | 角色 | 团队贡献分 | 可验证的贡献 |
|---|---|---|---|
| 张荣辉 | PM1 | 93.3 | 完成的Alpha阶段需求列表,看板、关键会议记录、风险登记表 |
| 周戈 | FE1 | 94.8 | 完成的Alpha阶段约60%页面,已联调成功约60%的接口,修复4个前端缺陷问题 |
| 陈曦 | FE2 | 93.7 | 完成的Alpha阶段约40%页面,已联调成功约60%的接口,修复2个前端缺陷问题 |
| 李永胜 | BE1 | 95 | 完成较多Alpha核心接口,如用户注册,登录,物品发布等功能,以及用户商品信息管理的大部分接口 |
| 杨超民 | BE2 | 94.5 | 完成部分Alpha核心接口,如分类筛选,物品修改,订单信息修改等部分接口 |
| 饶博勋 | BE3 | 93.5 | 完成部分Alpha核心接口,如管理员操作,验证码接口,收货信息接口等 |
| 陈培然 | QA1 | 93 | 在Alpha阶段发现并提交验证登录,分页管理商品,商品查询等缺陷,并测试个功能组件是否有效配合 |

浙公网安备 33010602011771号