团队作业6.2——事后诸葛亮分析
这个作业属于哪个课程 | |
---|---|
这个作业要求在哪里 | |
这个作业的目标 | 团队项目:复审其他团队的项目,进行事后分析 |
队名:硬工队
团队GitHub:VividImages
1 事后诸葛亮会议
1.1 会议照片
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 |