事后诸葛亮
这个作业属于哪个课程 | 计科22级12班 |
---|---|
这个作业要求在哪里 | 作业 |
这个作业的目标 | 复查与事后分析 |
设想和目标
1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
试着去解决同学对于考研院校选择模糊的问题,定义的比较清楚,对于典型用户也比较清晰,因为目标用户就是我们这样可能对考研有想法的同学,所以对于用户需求可以很容易得到并深入了解
2. 是否有充足的时间来做计划?
在功能实现计划上的时间有些不足,主要是环境配置有所困难,查阅许多资料才解决了问题,导致功能实现的进度缓慢,因此在前后端连接时所剩时间不多,导致项目功能没达到理想效果。
3. 团队在计划阶段是如何解决同事们对于计划的不同意见的?
由大家讨论商量选出最佳计划去执行,如果还是没法解决争议就由PM决定
4. 用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么?
基本一致,完成账号注册登录与查询的功能,返回应有的答案,基本满足用户需求,离为大部分对考研不清晰的同学进行推荐的目标进了一步
计划
1、是否有充足的时间来做计划?
有充足的时间做计划。
2、团队在计划阶段是如何解决同事们对于计划的不同意见的?
讨论决定
3、你原计划的工作是否最后都做完了? 如果有没做完的,为什么?
原计划的工作最后都做完了。
4、有没有发现你做了一些事后看来没必要或没多大价值的事?
尚未发现
5、是否每一项任务都有清楚定义和衡量的交付件?
是
6、是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
大部分过程都按计划进行,意外是前后端未对接好。风险是完成时间过于赶,险些未能按时完成。原因是初期规划失误。
7、在计划中有没有留下缓冲区,缓冲区有作用么?
无
8、将来的计划会做什么修改?(例如:缓冲区的定义,加班)
给部分计划预留更多时间,保证各环节都有充足时间完成
资源
1、我们有足够的资源来完成各项任务么?
目前看来,资源总量是足以支撑各项任务的完成的。但是,由于团队成员经验不足,可能会遇到一些效率低下和重复劳动的问题。
2、各项任务所需的时间和其他资源是如何估计的,精度如何?
依靠感觉来估计任务所需的时间和资源,这导致资源分配不当和时间规划不准确。
3、测试的时间,人力和软件/硬件资源是否足够? 对于那些不需要编程的资源 (美工设计/文案)是否低估难度?
Beta版本的测试相较于Alpha阶段有所完善,这表明测试资源在一定程度上是足够的。美工设计、文案等非编程资源可能确实存在被低估难度的现象。
4、你有没有感到你做的事情可以让别人来做(更有效率)?
我认为任务划分是合理的,且目前没有感觉到有更有效率的替代者。这说明当前的任务分配可能较为合适。不过,定期审视和调整任务分配,确保每个成员都能在其最擅长的领域发挥作用,是提高团队效率的关键。
变更管理
1、每个相关的员工都及时知道了变更的消息?
是的
2、我们采用了什么办法决定“推迟”和“必须实现”的功能?
开会讨论
3、项目的出口条件(Exit Criteria – 什么叫“做好了”)有清晰的定义么?
有
4、对于可能的变更是否能制定应急计划?
能,结合git的使用变更计划
5、员工是否能够有效地处理意料之外的工作请求?
能
设计/实现
1.设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
由项目经理(PM)领导团队共同完成,时间安排在项目初期是合适的,因为它为项目提供了明确的方向。选择的人员也合适,因为团队成员能够结合各自的专业知识和经验,做出合理的设计决策。
2.设计工作有没有碰到模棱两可的情况,团队是如何解决的?
通过深入分析用户需求、召开讨论会以及征求用户反馈来解决这些问题。
3.团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML, 或者其他工具来帮助设计和实现?这些工具有效么?
使用了,这些工具非常有效,帮助团队在开发过程中更早地发现和解决问题,提高了开发效率和代码质量。
4.什么功能产生的Bug最多,为什么?在发布之后发现了什么重要的bug? 为什么我们在设计/开发的时候没有想到这些情况?
产生Bug最多的功能是用户输入处理和数据匹配模块。由于系统需要根据用户输入的地区、分数线和院校层次来筛选合适的院校,处理这些输入时容易出现错误。在设计和开发阶段,我们可能低估了用户输入的多样性和数据匹配的复杂性,未能充分考虑到所有可能的输入情况和数据组合。
5.代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
要是通过自我审核进行的。虽然这种方法可以提高个人的代码质量,但可能缺乏外部视角,未必能严格执行代码规范。未来可以考虑引入更多的团队成员参与代码复审,以提高代码质量和一致性。
6.我们学到了什么? 如果历史重来一遍, 我们会做什么改进?
团队学到了在项目中及早开始工作的重要性。如果历史重来一遍,团队会更早地开始工作,避免拖延。此外,团队可能会加强对代码复审的重视,确保更严格地执行代码规范。
测试/发布
1、团队是否有一个测试计划?为什么没有?
没有 因为前期考虑不充分
2、是否进行了正式的验收测试?
是的,按照预先准备的测试用例来执行测试,确保每个特性都经过了充分的检验。测试过程中发现的问题和缺陷应当被记录下来,并跟踪到解决。
3、团队是否有测试工具来帮助测试?
junit等
4、团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
并没有,测试除了单元测试之外主要都是将实际运行效果与预期运行效果进行比较
5、在发布的过程中发现了哪些意外问题?
最终爬虫部分的程序在服务器上无法正常使用,新版本与某些遗留系统或第三方服务不兼容。新功能引入了破坏已有功能的bug。
团队成员在Alpha阶段的角色和具体贡献
队员 | 角色 | 具体贡献 | 团队分 |
---|---|---|---|
黄英琦(队长) | 后端&开发 | 设计整体框架,积极完成项目 | 19.38 |
柯锦宏 | Java后端 | 负责算法模块 | 19.30 |
张怀坤 | 数据库设计 | 负责数据模块 | 19.25 |
肖睿 | 前端开发 | 负责前端模块 | 19.24 |
麦麦提萨力江·卡西木 | 前端 | 负责前端模块 | 19.05 |
陈煜 | 测试开发 | 负责测试和博客模块 | 19.33 |