10.20号QCON全球软件开发大会在上海举行,为期3天,因为工作原因我只参加了第三天的《研发效率提升》板块的讲座,基于三位讲师的演讲专题,我来做一下听后感,希望能与大家更多的进行探讨交流。
三位讲师分别来自美团、小红书、华为,不同的公司和团队对于研发效率有不同的实践方法:
《美团》
基于度量标准(指标度量平台)来明确项目目的和改进研发管理流程
度量的意义:
1、目标明确
2、明确现状
3、给改进提供精确的数据支撑
度量的维度
1、价值(商业价值、技术价值)
2、效率(敏捷工具)
3、质量(线上质量、过程质量)
度量平台
1、作为项目经理,前期以价值为核心来管理建设团队,通过明确价值目标提升团队的成就感,分迭代拆解高价值需求,减少拍脑袋需求,降低部门浪费;
2、项目进行中通过使用累计流量图、价值流程图(敏捷工具)监控项目进行中的效率和需要过程改进的地方(累计流量图);
3、在平台上通过度量质量指标,提早发现质量问题,进行修正,减少内部失败成本,
并且还可以在项目的进行中和结项时可以根据查看已完成的价值指标来了解项目整体进展情况。
关于质量度量的指标定义
线上质量
1、服务端
a整体:线上质量评分
b线上故障率:线上故障数、缺陷数、故障恢复时长
c稳定性:服务可用性、错误数量、错误率、报警数
d性能:接口响应时间、慢响应率
2、客户端
a基本信息:质量评分
b稳定性:Crash率、页面错误率
c性能:页面加载时间、安装包大小、启动时间、卡顿、流量、CPU/MEM
过程质量
1、需求质量
a需求整体质量:需求评分、bug数
b需求自身质量:打回次数、变更次数
2、代码质量
a基本信息:文件数、方法数量、类数量
b可靠性:代码重复率、代码圈复杂度、千行代码错误数
c可维护性:过大方法、高复杂函数、迷惑变量、技术债务比
3、测试质量
a整体质量:整体漏测率、测试覆盖率、提测打回率、
bBug统计:缺陷新增趋势、缺陷生命周期分布、缺陷解决趋势、有效缺陷率
c单元测试:单元覆盖率、单元通过率
d自动化测试:自动化通过率、覆盖率、稳定性
4、发布质量
a发布整体:发布失败率及次数、发布与需求相关度、高峰发布频率
b构建相关:构建成功率、构建次数/时长/频率、失败平均恢复时长
c回滚相关:回滚次数、
5、系统质量
a基本信息:服务数量、最长链路
b性能:QPS、响应时间、CPU
c安全性:严重安全漏洞数量
小红书
通过团队角色转换和基于数据决策分析加强研发效率
团队转换
1、弱化流程类型的PM(强调文档),改为以问题或者业务驱动的PM
2、团队思想转换,经过以下3种,可以达到最终生产效率10倍差别
迭代速度>不出问题
MVP>完备的产品设计
用户反馈>按期交付
套用敏捷思想(这里打个广告,欣旋PMI-ACP值得一学)
敏捷核心思想4宣言:
个体交互大于流程
可用软件大于文档
客户协作大于合同
相应变化大于遵循计划
数据驱动
经过采集全链路数据(需求、研发、流程、项目结果等),变成团队人人都会使用数据采集工具,得到自己想要的价值目标
从对流程负责改为对结果负责
1、任意两个工程师经过互相review即可上线功能,采用小流量形式验证。并且工程师对上线功能负责。
2、对于新型项目和决策进行MVP(敏捷概念,最小功能集合产品)实验
3、为一线团队放权
华为
通过提升员工的自我认同和管理意识来进行提升效率
打造高效个人
1、工程师聚焦软件编码
2、例外事件打断
3、项目管理类事物占比高
4、新手写代码,老员工解问题
定期监控团队技能倾向,分析下个迭代的硬性能力
1、使用excel图表制作员工能力评估矩阵或者六芒星图
2、指定措施提升能力。定制计划、实践锻炼、改进、培训分享
通过完善公司开发工具链(SOA服务治理框架、CodeHub、集成测试、自动化发布),加强员工开发效率
提倡问题知识积累 消灭不必要沟通
制作员工档案共享,提升自我价值
高协作成员组建为战队,释放管理
综上3位讲师的经验,分别都是以度量(监控)、团队思想转换(管理团队)、提升个人(团队建设)3个方面进行实践,结合敏捷思想(以人为本、以价值驱动、以客户为中心)打造高效研发团队