团队作业6.2——事后诸葛亮分析

发布时间 2023-12-06 19:37:01作者: yuLLin
这个作业属于哪个课程
软件工程
这个作业要求在哪里
团队作业6——复审与事后分析
这个作业的目标 团队项目:复审其他团队的项目,进行事后分析

队名:硬工队
团队GitHub:VividImages

1 事后诸葛亮会议

1.1 会议照片

screenshot1

1.2 设想和目标

  • 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?
    本团队要开发出一款整合了多种图像处理功能的一体化软件,包括图片滤镜、图片拼接、图片水印三个功能,从而满足用户的多样化图像处理需求,提高工作效率。我们在需求分析中对此定义清晰,目标用户和典型场景很明确,即:对于基本图像处理功能有需求的一般电脑用户,如对于个性化表达和各式滤镜有需求的大学生,以及对于高效快捷的图片处理有需求的公司职员。

  • 是否有充足的时间来做计划?
    有充足的时间讨论选题和预期功能,在分工协作上讨论较久,但最终达成了共识。

  • 团队在计划阶段是如何解决同事们对于计划的不同意见的?
    每个人都要把自己的观点表达出来,所有人一起讨论,如果能够讨论出大家都满意的结果就立即更新计划,有分歧则投票表决。

  • 用户量,用户对重要功能的接受程度和我们事先的预想一致么?我们离目标更近了么?
    用户量和用户对重要功能的接受程度与预期基本一致,项目的目标一直没有改变,我们在项目冲刺中一步步朝着目标更新迭代。

1.3 计划

  • 是否有充足的时间来做计划?
    时间比较紧迫,要处理的细节比预想的多。

  • 团队在计划阶段是如何解决同事们对于计划的不同意见的?
    发现问题立刻提出,在工作量合理的情况下采取对应模块负责人的建议,在项目的大方向上主要采取PM的建议。

  • 你原计划的工作是否最后都做完了?如果有没做完的,为什么?
    完成了大部分预期功能。部分功能因为存在优化问题没有在Alpha阶段发布,如导入滤镜功能。

  • 有没有发现你做了一些事后看来没必要或没多大价值的事?
    没有,每一项任务和每一处优化都发挥了作用。

  • 是否每一项任务都有清楚定义和衡量的交付件?
    每一项任务都有对应的成果展示,所有pull request都必须对应要处理的issues,每次提交都要在群里说明。

  • 是否项目的整个过程都按照计划进行,项目出了什么意外?有什么风险是当时没有估计到的,为什么没有估计到?
    项目开发过程基本按照计划进行,在冲刺阶段有部分功能由于存在优化问题而拖延了一些时间,收尾工作比较紧迫。主要风险还是出现在各项功能的优化上,大小bug层出不穷,测试和修复十分费时,也最后导致了部分功能没能成功优化整合进软件中。

  • 在计划中有没有留下缓冲区,缓冲区有作用么?
    有,留出了一些时间处理bug,最后也起了作用。

  • 将来的计划会做什么修改?(例如:缓冲区的定义,加班)
    需要多留出时间处理细节,bug的测试和优化要更加紧凑。

1.4 资源

  • 我们有足够的资源来完成各项任务么?
    人力资源:分工明确,人手充足,团队成员都有合作开发经验;
    开发资源:开发设备够用,环境配置都没有问题;
    时间资源:开发时间比较紧迫。

  • 各项任务所需的时间和其他资源是如何估计的,精度如何?
    通过开会确定工作量和分工,讨论资源的估计和分配,人力资源和开发资源的的估计没有差错,时间资源的估计与实际相差较大。

  • 测试的时间,人力和软件/硬件资源是否足够?对于那些不需要编程的资源,是否低估难度?
    人力资源和软件/硬件资源充足,但测试优化的时间不足。我们的项目几乎所有资源都需要编程实现,故没有这方面的问题。

  • 你有没有感觉你做的事情可以让别人来做(更有效率)?
    由于是初次合作,也不能做到随时交流,导致开发效率比较低;但是每个人的分工明确,各司其职,每个人都在自己负责的任务上有独特的优势。

1.5 变更管理

  • 每个相关的员工都及时知道了变更的消息?
    是的,一有变更就发到群里。

  • 我们采用了什么办法决定“推迟”和“必须实现”的功能?
    以软件基础功能为优先,根据实际开发情况和测试进度调整,在会议中达成共识。

  • 项目的出口条件(Exit Criteria)有清晰的定义么?
    有,即:依照测试计划对软件进行测试,对大部分Bug调试修复后,在基本功能可以顺利运行、没有恶性Bug的情况下,我们认为软件已经足够好,可以发布Alpha版本。

  • 对于可能的变更是否能制定应急计划?
    能,遇到突发情况立即调整开发计划,并且在做计划时就预留了时间应对可能的变更。

  • 员工是否能够有效地处理意料之外的工作请求?
    虽然有应对措施,但效果一般。时间紧迫,加之团队合作经验不足,测试优化的工作拖延了很长的时间。

1.6 设计/实现

  • 设计工作在什么时候,由谁来完成的?是合适的时间,合适的人么?
    设计工作在项目冲刺之前,经过组内会议后由组长完成工作。从最终结果来看比较合适。

  • 设计工作有没有碰到模棱两可的情况,团队是如何解决的?
    有。随机应变,综合考虑软件基本功能和时间限制,最后做出折中的决定。

  • 团队是否运用单元测试(unit test),测试驱动的开发(TDD)、UML,或者其他工具来帮助设计和实现?这些工具有效么?
    运用了单元测试优化软件,其它的没有使用。单元测试很有效,大部分的bug都由单元测试检出。

  • 什么功能产生的bug最多,为什么?
    图像风格化功能bug最多,不同的滤镜拥有不同的特性,需要单独测试并修复。

  • 代码复审(Code Review)是如何进行的,是否严格执行了代码规范?
    由PM进行代码复审,过目所有的代码,并严格执行开发前确定的代码规范。

1.7 测试/发布

  • 团队是否有一个测试计划?为什么没有?
    有测试计划,在项目冲刺前制定完成。

  • 是否进行了正式的验收测试?
    是,进行了软件的整体测试。

  • 团队是否有测试工具来帮助测试?
    使用cProfile进行性能分析,使用Coverage库进行代码覆盖率分析。

  • 团队是如何测量并跟踪软件的效能的?从软件实际运行的结果来看,这些测试工作有用么?应该有哪些改进?
    使用cProfile进行性能分析。实际优化上,测试工作提高了软件运行的效率,但提升不算高。

  • 在发布的过程中发现了哪些意外问题?
    没有。

1.8 团队的角色,管理,合作

  • 团队的每个角色是如何确定的,是不是人尽其才?
    先提出自己的理想角色,最后由组长确定角色,并且由于团队人数较少,每个人都承担多个角色的工作,可以说发挥了每个人的优势。

  • 团队成员之间有互相帮助么?
    有,遇到难以处理的情况时会在群里交流。

  • 当出现项目管理、合作方面的问题时,团队成员如何解决问题?
    经过组内讨论达成共识,主要由PM决定大方向。

  • 对成员帮助的感谢
    虽然开发过程比较艰难,但每个人都尽自己所能提出建议、帮助团队成员测试优化,每个人都不可或缺。

1.9 总结

  • 你觉得团队目前的状态属于 CMM/CMMI 中的哪个档次?
    执行级(CMMI一级)。

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

  • 你觉得团队在这个里程碑相比前一个里程碑有什么改进?
    团队的交流更加流畅,网上协作更加熟练,测试优化技能更进一步。

  • 你觉得目前最需要改进的一个方面是什么?
    开发进度、优化问题等组内信息的交换应该更及时,对于软件功能的实现方法和预期效果应该更加统一。

  • 对照敏捷开发的原则, 你觉得你们小组做得最好的是哪几个原则?
    快速迭代;多沟通,尽量减少文档;及早考虑测试。

2 团队成员贡献评估

2.1 团队成员绩效评估方法

  绩效评估遵循以下公式:成员的绩效 = 团队获得的分数 + 个人的团队贡献分。
  在项目alpha和beta阶段评审后,团队将得到一个项目分数(每个成员都会得到同样的分数,作为自己的原始分数的一部分)。团队成员的努力程度不同,达成目标的程度不同,帮助同伴的付出不同,这些方面将在“团队贡献分”上有所区分。 所有人贡献分的总和为 20N,其中N为团队的人数,在本项目中N=4,即贡献分的总和=80。在alpha和beta阶段评审后,团队按照自己制定的规则,把贡献分的总和(20N)瓜分给每人,即 “团队贡献分”。
  本项目中,团队贡献分将根据以下四个方面进行评估:任务完成质量、合作表现、是否准时完成、积极性。每个方面均占20分,每个成员初始均占一个方面的25%的分数,即5分,每个方面的评估都分为以下五个等级:

L1 L2 L3 L4 L5
13% 16% 19% 22% 25%

  当一个成员因为在某一方面表现欠佳而等级降低时,初始的比例25%和其等级所对应的比例的差值将均分给其他的三个成员(例如,成员A在合作表现方面的等级为L3,成员B、C、D的等级均为L5,则计分得:A的比例为19%,即3.8分;B、C、D的比例均为27%,即5.4分),最后将四个方面的分数相加并四舍五入(四人分数总和依旧为80),得到个人的团队贡献分。

2.2 团队成员在Alpha阶段的角色和具体贡献

任务完成质量:

徐宗韬 冯浩天 朱正东 黄皓坤
等级 L4 L5 L4 L4
分数 4.8 5.6 4.8 4.8

合作表现:

徐宗韬 冯浩天 朱正东 黄皓坤
等级 L5 L5 L5 L4
分数 5.2 5.2 5.2 4.4

是否准时完成:

徐宗韬 冯浩天 朱正东 黄皓坤
等级 L5 L5 L5 L5
分数 5 5 5 5

积极性:

徐宗韬 冯浩天 朱正东 黄皓坤
等级 L5 L5 L4 L4
分数 5.4 5.4 4.6 4.6

总分和具体贡献:

团队成员
角色
可验证的贡献
总分
徐宗韬 开发,PM 博客编写,UI开发 20
冯浩天 开发,PM 各个图像处理功能的开发,历史记录开发 21
朱正东 开发,测试 各个图像处理功能的开发,测试 20
黄皓坤 开发,测试 UI开发,测试 19