事后诸葛亮分析
1.设想和目标
-
我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
软件旨在解决教育管理中的效率问题,包括教师端的班级管理、作业发布与成绩管理,以及学生端的作业提交与成绩查询。
问题定义清晰,典型用户(教师和学生)和场景(教育管理)有明确描述。 -
我们达到目标了么?
核心功能已按计划实现,但用户推广和界面美化等方面未完全达到预期。 -
用户量,用户对重要功能的接受程度和我们事先的预想一致么?我们离目标更近了么?
用户量未达到预期,但通过Alpha版本的测试与发布,收集到的用户反馈显示功能接受程度较高,我们离目标更近了。 -
有什么经验教训?如果历史重来一遍,我们会做什么改进?
应更早开始用户研究和原型测试,更准确地捕捉用户需求,并加强推广策略。
2. 计划
-
是否有充足的时间来做计划?
时间相对充足,但缓冲时间不足。 -
团队在计划阶段是如何解决同事们对于计划的不同意见的?
通过讨论和项目经理决策解决不同意见。 -
你原计划的工作是否最后都做完了?如果有没做完的,为什么?
核心工作完成,推广和界面美化未完成,因资源和时间限制。 -
有没有发现你做了一些事后看来没必要或没多大价值的事?
初期对某些非核心功能投入过多时间,影响了核心功能的开发。 -
是否每一项任务都有清楚定义和衡量的交付件?
是的,每项任务都有明确定义和衡量标准。 -
是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
项目基本按计划进行,但未充分估计到用户测试反馈对开发计划的影响。 -
在计划中有没有留下缓冲区,缓冲区有作用么?
有缓冲区,但不够,导致部分非核心工作延期。 -
将来的计划会做什么修改?
增加缓冲时间,优化资源分配,加强风险管理。
3. 资源
-
我们有足够的资源来完成各项任务么?
人力资源基本满足,但缺乏专业测试和设计资源。 -
各项任务所需的时间和其他资源是如何估计的,精度如何?
基于经验和任务复杂度估计,精度有待提高。 -
测试的时间、人力和软件/硬件资源是否足够?对于那些不需要编程的资源是否低估难度?
测试资源不足,特别是自动化测试工具的应用不足,对非编程资源的难度有所低估。 -
你有没有感觉你做的事情可以让别人来做(更有效率)?
部分设计和测试工作可以由更专业的人来完成,提高效率。
4. 变更管理
-
每个相关的员工都及时知道了变更的消息?
是的,通过会议和即时通讯工具及时通知。 -
我们采用了什么办法决定“推迟”和“必须实现”的功能?
根据用户需求和实现难度共同决定。 -
项目的出口条件有清晰的定义么?
是的,出口条件清晰定义,包括功能实现和性能指标。 -
对于可能的变更是否能指定应急计划?
应急计划不够完善,未来需加强。 -
团队成员是否能有效地处理意料之外的工作请求?
团队成员能适应变化,有效处理额外工作请求。
5. 设计/实现
-
设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
设计工作在项目初期完成,由团队成员共同完成,时间和人员算比较合适。 -
设计工作有没有碰到模棱两可的情况,团队是如何解决的?
有,通过讨论和用户反馈解决。 -
团队是否运用单元测试、测试驱动的开发、UML或其他工具来帮助设计和实现?这些工具有效么?
未使用这些工具,主要依靠人工测试和讨论,效率有限。 -
什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug?为什么我们在设计/开发的时候没有想到这些情况?
退出功能Bug最多,因为涉及数据删除。发布后发现服务器稳定性问题,设计时未充分考虑。 -
代码复审是如何进行的,是否严格执行了代码规范?
代码复审执行不严格,代码规范执行有待加强。
6. 测试/发布
-
团队是否有一个测试计划?为什么没有?
有测试计划,但因资源限制未完全执行。 -
是否进行了正式的验收测试?
是的,进行了正式验收测试。 -
团队是否有测试工具来帮助测试?
测试工具应用不足,主要依靠手动测试。 -
团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
通过实际运行结果评估效能,测试工作有用,但需引入更多自动化测试工具。 -
在发布的过程中发现了哪些意外问题?
发现了服务器稳定性和数据清除问题。
7. 团队的角色,管理,合作
-
团队的每个角色是如何确定的,是不是人尽其才?
角色基于技能和兴趣分配,基本实现了人尽其才。 -
团队成员之间有互相帮助么?
是的,团队成员之间有良好的互相帮助。 -
当出现项目管理、合作方面的问题时,团队成员如何解决问题?
通过讨论和项目经理协调解决问题。
8. 总结
-
你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
团队达到了CMMI二级——管理级的程度。 -
你觉得团队目前处于 萌芽/磨合/规范/创造 阶段的哪一个阶段?
团队处于磨合阶段。 -
你觉得团队在这个里程碑相比前一个里程碑有什么改进?
团队在需求理解和项目管理方面有所改进。 -
你觉得目前最需要改进的一个方面是什么?
最需要改进的是用户推广和界面设计。
9. 敏捷开发原则
- 根据敏捷开发的原则,你觉得你们小组做得最好的是哪几个原则?
团队在适应性和响应变化方面做得较好。
10. 软件工程质量提升
- 团队在下一阶段应该如何提高软件工程的质量?
应提高代码管理、架构设计、工具应用、项目管理等方面的质量,加强用户研究和反馈。
全组讨论照片:
团队成员在Alpha阶段的角色和具体贡献:
姓名 | 角色 | 团队贡献分 | 可验证的贡献 |
---|---|---|---|
周晨佳 | 前端开发 | 20 | 实现用户界面,优化用户体验,确保界面响应速度和兼容性 |
范健成 | 前端开发 | 22 | 负责前端架构设计,提高页面加载效率,处理跨浏览器兼容性问题 |
李超 | 后端开发 | 19 | 开发核心业务逻辑,优化数据库性能,确保数据安全和一致性 |
陈卓嘉 | 后端开发 | 19 | 负责API开发和维护,实现前后端数据交互,提升系统稳定性 |
郭梓佳 | 项目经理 | 20 | 负责项目整体规划、协调和进度监控,确保项目目标的实现 |
林丙昆 | 功能测试 | 19 | 专注于系统安全性测试,提供详细的测试报告,协助修复缺陷 |
李炫杰 | 功能测试 | 21 | 设计测试用例,执行测试,识别关键缺陷,确保软件质量 |