本期话题
怎样衡量监控敏捷型软件项目质量(指标?工具?)
01
/ 背景说明 /
受诊人:有实体产品的项目一般都有成熟的质量管理体系,成熟通用的标准要求,但软件项目一般偏迭代和敏捷,没找到有成熟的度量体系指标,做为项目经理如何直观的监控到项目的软件产品的开发质量,有哪些好的通用的指标或管理工具。
公司正在认证CMMI4,正在确定项目度量项,暂时制定了工作量、偏差、缺陷几项指标,感觉无法反映出项目产品实际运行的质量情况。
02
/ 诊断 /
1、项目质量从哪里来?
在项目的规划阶段,我们需要确定质量的标准,而质量的标准需要根据项目章程、项目管理计划(成本、时间、范围、干系人)、事业环境因素和组织过程资产等确定。事业环境因素和组织过程资产一般是不随着项目改变的,每个项目有差异的主要是项目章程和项目管理计划。
所以我们要着重研究项目章程和项目管理计划,再辅以事业环境因素和组织过程资产,指导我们制定质量标准。
而对于研发项目来说,质量的终极目标一定是交付物的质量达到要求,并在达到要求的同时保证成本、时间和范围满足项目的要求。
以终为始,我们再去分解如何达到这些要求。
2、研发项目的阶段
首先研发项目一般分为需求设计阶段、代码开发阶段、测试阶段和上线阶段。对于结果的质量要求就分到了每个阶段,这样问题就容易了一些。
需求设计阶段,质量指标主要是变更次数。
代码开发阶段,质量指标主要是自测bug数、联调bug数、测试bug数。
测试阶段,质量指标主要是验收bug数、线上bug数。
上线阶段,质量指标主要是线上bug数。
这种阶段划分只要在迭代和瀑布式开发中比较试用,在敏捷开发中不是很试用,但我们要度量的指标基本是相同的。因为不管是什么模式,都逃不开需求、开发、测试、上线这几个阶段。
或许大家有疑问说为什么指标有重复的情况,比如说测试阶段和上线阶段都有线上bug数,如何区分呢?
这就需要我们了解、研究bug的根本原因是什么,去确认问题产生的环节。
3、确定具体指标
①参考项目章程、项目管理计划等。
当然很多项目是没有项目章程和项目管理计划的,没关系。
②如果是需要在当前项目就应用的,需要我们参考同类项目的指标设定情况,即经验数据。
③如果是希望长期应用,则可以只是记录这些数据。
在经过一段时间的记录后,我们从数据的角度知道了我们的项目质量的现状,在这个基础上,我们去制定质量要求会更加有把握,达到质量要求所面临的风险、问题也就更清晰了。这个比较适合在公司内部一个比较稳定的项目团队使用。就是说这帮开发、测试产品什么的,一段时间内都在做一个产品或业务。
4、质量的提高也是有成本
质量的测量其实就是对项目人员能力的测量,因为质量的提高也是有成本的。
我们单纯的从数学角度讲,三角形的面积就是质量,质量由范围、成本和时间确定,如果质量要求提高,则需要改变三个顶点中至少一个。
也就是说质量的提高或者达标一定是有成本的。当然这个前提是质量要求是高于当前的质量能力,如果是质量要求低于质量能力,那其实就好办很多了。
如何平衡取舍呢?
这个和做产品有点相似,看优先级,那个对你最重要,那个相对不重要,都排排序。
实操中人是最难搞的,所以我们做任何事的出发点,一定要把各位干系人的利害关系梳理清楚再做决定,会从容很多。
“我在之前的团队中,实践的第三个方法:3.如果是希望长期应用,则可以只是记录这些数据。在经过一段时间的记录后,我们从数据的角度知道了我们的项目质量的现状,在这个基础上,我们去制定质量要求会更加有把握,达到质量要求所面临的风险、问题也就更清晰了。
效果还是很好的,因为质量如果不达标,大家难免会互相抱怨,团队士气也会比较低。这样做了一段时间之后,质量提上来了,团队士气和氛围也好很多。”
5、具体工具推荐
jira:jira中可以记录需求、bug、任务等,并且灵活性非常高。我们可以根据项目的要求来配置jira,比如bug的分类、WBS分解、项目阶段等。
这就要求我们一定要记录准确,这个是衡量质量阶段。也就是说如果你不能很好的描述他,你就不能改变他。
这个对项目团队来说是个负担,负担就是时间成本和资源的占用,这个需要项目经理作出取舍:信息维护要做到什么完整度和频率。
要填的信息太多,大家就会很烦,记录好之后,过一段时间我们就可以拉出数据看看质量情况了,如果jira比较熟练,可以用jira自带的一些图表工具来展示质量情况,如果不行就导出到Excel。然后我们再看和质量目标的差距,制定方案,然后落地,然后检查,这就是PDCA了。
03
/ QA /
Q:体量越小越合适敏捷,可以这么理解吗?
A:不能,使用哪种模式,一定要适合业务需要,团队大小和是否用敏捷没有绝对关系。
Q:测试阶段的bug数是为了提高质量可靠性,上线阶段的bug数是实际运营的问题解决吧?
A:你说的也对,但这也是项目质量的一方面,不是说上线了就和项目质量没关系了。
Q:有些指标比如上线后的bug数对于项目质量管理来说算是滞后的质量指示,而不是预测到项目质量将变坏需要纠偏,对于这类指标异常除了采取补救措施分析原因之外,考核追责有没有必要?
A:如果是公司内部的项目,最好不要,因为质量问题不是一个人的问题,肯定是多方面造成的。
Q:如果是甲方,如何监控乙方的敏捷开发软件质量?
A:如果是甲方,很少会采用敏捷开发, 因为很难估算工作量。比较多的是瀑布和迭代。
Q:那作为甲方,如何监督控制呢?
A:其实很难,因为你需要乙方填数据才能监控吧?乙方填这些的动力足吗?其实甲方很多时候只能在阶段性来验收成果,比如方案阶段、UAT阶段、上线阶段等等。
Q:对内的项目可能只有项目目标比如说一个新框架研究应用,怎么去衡量质量?
A:这个目标可以设定为不影响既定的成本、时间里程碑和范围。
Q:按照刚讲的这个过程,质量管控其实落脚点可以重点放到指标上,除了指标有没有其它好用的东西?
A:质量落脚点在量上,如果不量化,如何衡量呢?
Q:我们作为甲方都是以上线、初验、终验为阶段进行验收,而且乙方与省公司是共用的,经常乙方会以省公司有紧急需求为由推后我们的需求开发。这个有什么比较好的处理方法吗?
A:乙方其实用了信息差这个理由,建议咱们和省公司建立联系,需求放到一个需求池里。不知道你们和省公司的关系,但是,你们、省公司和乙方,三方一定要坐到一起制定解决方案。
Q:敏捷开发是公司内部使用的开发方法吧?
A:不限于公司内部,匹配即可使用。
Q:你们有没有专职的质量人员,人数和职责怎么划分的?
A:这个数据做参考吧,400人左右的研发团队,10个左右的pm,有3个SAQ(软件质量保证SQA-Software Quality Assurance)。这个也和公司的项目管理成熟度有关系。
Q:他们的职责一般会包含哪些内容,除了刚说到的监控项目的度量指标。
A:主要是度量质量指标,然后发现问题后进行复盘制定改进计划,持续监控。一般每周都会发质量周 给cto和各部门总监。
Q:会涉及运营的板块吗,比如说参与用户满意度调研,分析用户相关数据变化等等。
A:不会,这个就只是运营的工作,如果是研发质量的问题,一般是业务部门先找到研发部门,研发部门再找到sqa进行诊断。
结语:
如果你不能很好的描述他,你就不能改变他。
讨论内容整理
【以上关于项目团队管理的内容都来自于希赛群内诊断会,由?@小M妹妹 整理,由以下小伙伴分享完成@万旗-杭州-互联 @羊~@大帅-北京-IT@帅杰@大懒-青岛-智能健身@沫水-合肥-软件@张勇强-新疆-IT通信@mx-南京-软件@王娜-北京-IT@小糊涂仙-重庆-物联 @Aron-长沙-模型@Lucy-成都-智慧园区运营@空空-杭州-IT@过客+郑州+实施@不争–西南–通信@圣徒子-北京-人防环保政务三维GIS】
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!