发布日期:2024-07-08 00:50浏览次数:
IM电竞IM电竞中汽人(CAHRD):2023年中国智能网联汽车软件研发人才绩效管理研究报告(30页).pdf
中国软件行业协会:2023年度中国软件行业基准数据报告(22页).pdf
e-works:实验室管理利器—LIMS软件厂商巡礼(2023)(17页).pdf
中国软件行业协会:2022年度新职业人才需求与职业技能提升模式研究报告(44页).pdf
中国软件行业协会:2022版中国软件根技术发展白皮书-操作系统册(65页).pdf
北京软协:2023北京软件和信息服务企业综合实力报告(21页).pdf
InfoQ:中国软件技术发展洞察和趋势预测报告2024(45页).pdf
前瞻研究院:2023深圳“20+8”之软件与信息服务产业-前景机遇与技术趋势探析(49页).pdf
《ONES&中国信通院:2023中国企业软件研发管理白皮书(70页).pdf》由会员分享,可在线阅读,更多相关《ONES&中国信通院:2023中国企业软件研发管理白皮书(70页).pdf(70页珍藏版)》请在三个皮匠报告上搜索。
1、中国企业软件研发管理白皮书Software Development Management White Paper深圳复临科技有限公司(ONES)中国信息通信研究院云计算与大数据研究所2023 年 4 月随着中华人民共和国国民经济和社会发展第十四个五年规划和 2035 年远景目标纲要“十四五”软件和信息技术服务业发展规划“十四五”数字经济发展规划等一系列政策文件的出台,软件的质量管理和标准化能力被列为数字经济重点建设的内容,要求充分认识软件产业发展的重要性和紧迫性,实施软件产品和数字化能力的升级,促进产业基础能力的提升,着力打造更高质量、更有效率、更可持续、更为安全的产业链供应链,充分释放软件融
2、合带来的放大、倍增和叠加效应,有效满足多层次、多样化市场需求,为构建以国内大循环为主体、国内国际双循环相互促进的新发展格局提供有力支撑。在此背景下,ONES 联合中国信息通信研究院,发布2023 年度中国企业软件研发管理白皮书。本白皮书聚焦软件研发管理中产业链的新发展新变化,重点围绕工作方法、实践路径、核心目标、效能度量等研发管理领域的热点话题以及研发管理的发展趋势进行深入探讨,旨在帮助读者更好地把握研发管理的产业动向。从研发管理的历史沿革以及敏捷管理的转型突破,再到研发管理数字化模型的提出,这对研发管理数字化系统的产品能力提出了具体的要求。结合软硬件研发、金融行业和传统行业的数字化转型,研发
3、管理的解决方案在实践中落地并取得成效,使得企业向更加标准化、多方协作演进的同时,保证质量、安全和效率,为社会的可持续发展提供更加专业和深入的可行性。前言I数字产业是这个时代最大的增量。人类社会正进入以数字化生产力为主要标志的发展新阶段,而软件在数字化进程中发挥着重要的基础支撑作用。在“软件定义未来”的新时代,软件成为未来世界的关键元素之一,也必将成为企业提升核心竞争力的“杀手锏”。企业软件开发已步入规模化和工程化,带来前所未有的工作量。现代软件行业已不再是“大鱼吃小鱼”,而是“快鱼吃慢鱼”。在互联网下半场,随着外部流量增长的红利逐渐消失,企业开始向内部精细化运营寻找增长。研发效能决定了软件团队
4、产出能力的水平,成为高科技企业之间相互竞争的有力武器,因而成为了公认的方向性领域,是许多团队管理者的重要任务。然而在相当长的时间里,软件研发作为智力密集型活动,与团队的组织协同密不可分,很难严格地标准化。随着现代基础设施、架构理论和 AI 算法的不断成熟,研发效能快速进化为具体的工具、流程和指标系统,让软件研发成为规范的、科学的、可度量的工作。研发效能的重要目标是实现企业级跨产品、跨项目的研发能力复用,当前研发效能已完成了“0 到1”的建设,需要去关注更有价值的“1 到 N”,谋求打造组织级别通用研发能力的最佳实践平台。鉴于此,企业级研发管理领军者 ONES 联合中国信息通信研究院,发布中国企
5、业软件研发管理白皮书,力求扎根数字化实践,探索研发管理的合适路径。卷首语卷首语中国企业软件研发管理白皮书执行摘要模块一:组织与文化变革领导力组织架构企业文化模块二:研发管理实践业务规划目标管理产品管理版本管理需求管理工单/反馈管理价值流管理可视化管理流程自动化资源管理知识管理质量管理敏捷精益协作变更管理开放 API 与集成模块三:工程技术实践企业架构领域驱动设计云原生架构代码管理策略代码评审自动化测试持续集成持续交付灰度发布监控/可观测性环境管理安全合规模块三:工程技术实践企业架构领域驱动设计云原生架构代码管理策略代码评审自动化测试持续集成持续交付灰度发布监控/可观测性环境管理安全合规模块四:
6、研发基础设施研效垂直工具一站式 DevOps 平台研发效能度量平台容器云平台研发效能交付效率交付质量交付成本交付能力研发效能交付效率交付质量交付成本交付能力商业效率收入利润用户规模市场占有率用户满意度商业效率收入利润用户规模市场占有率用户满意度实现路径最终目标研发管理数字化模型软件研发方法逐步敏捷化转型本白皮书提出了我们通过实践总结反复验证的模型,用于研发管理的数字化建设。研发管理数字化以商业效率为最终目标,以研发效能为实现路径,通过四个方面的实践模块完成转型落地:“组织与文化”“研发管理实践”“工程技术实践”“研发基础设施”。研发数字化模型将研发管理思路用完整的逻辑和清晰的脉络呈现出来,凝聚
7、了丰富的实践经验和效能提升的技巧,为研发管理从业者提供路径参考和经验借鉴。(详见本白皮书第二章)通过推行研发管理和应用场景的数字化结合,企业组织可扩大线上管理面积和新的盈利增长点,同时企业组织拥有自己的智能化品牌和核心竞争力。因此,企业组织能以较低的资金成本和技术成本享受到科技赋能产业的红利。执行摘要中国企业软件研发管理白皮书研发管理数字化系统的六大核心能力研发管理数字化模型提供了整体思路和框架,企业组织在践行研发管理的变革方案时,需要完成自上而下的软件工程认知升级,然后通过一站式的系统协作将最佳实践落入日常工作中。这就要求研发管理系统具备六大核心能力,分别是:“端到端的需求生命周期管理”“项
8、目管理统筹研发全过程”“自动化提升企业组织效能”“知识经验沉淀为过程资产”“有度量才有针对性的改进”和“多工具集成适配大型团队”。这六大核心能力构成了数字化的研发管理系统,覆盖软件研发的全过程,使企业组织重构端到端的研发协同工作,不受限于单点工具的能力,打通研发数据链路,持续改进研发效能,实现企业的数字化目标。研发管理系统将实践信息汇总到检索、分析能力强的单一平台,集成多种工具适配多团队多场景的业务需求,加强研发角色间的关联性和可追溯性。通过团队成员之间的高效协作,让企业更好更快地发布产品。研发管理数字化的未来发展趋势随着企业数字化转型的不断深入,标准化体系的缺乏和企业增长需求之间的矛盾不断凸
9、显。因此,需要加快建设和推广研发管理的标准和评估体系,让数字化协作进一步释放研发团队的生产力,使软件研发保质保量、安全可靠地运行,并通过效能度量体系实现研发管理的提质增效,为企业实现可持续发展提供有效路径。执行摘要V中国企业软件研发管理白皮书第一章 软件研发管理概述02(一)研发管理数字化转型初见成效,方兴未艾03(二)数字经济时代,研发管理的重要性日益凸显06第二章 研发管理数字化模型08(一)研发管理数字化模型综述09(二)研发管理数字化的一个核心目标1 1(三)研发管理数字化的四个衡量维度1 1(四)研发管理数字化的四大实践模块13第三章 研发管理数字化平台的核心能力32(一)端到端的需
10、求生命周期管理33(二)项目管理统筹研发全过程36(三)自动化提升企业组织效能38(四)知识经验沉淀为过程资产40(五)有度量才有针对性的改进4 1(六)多工具集成适配大型团队43目录目录中国企业软件研发管理白皮书第四章 研发管理的典型案例47 案例一:招商基金48 案例二:紫金保险52 案例三:鸿合科技55 案例四:中农网57第五章 研发管理趋势展望62(一)标准和评估体系支撑产业高质量发展63(二)数字化协作赋予研发管理新动能63(三)安全能力保障研发管理可靠运行64(四)研发效能体系建设助力研发管理提质增效64(五)研发管理推动企业实现可持续发展65目录中国企业软件研发管理白皮书(一)研
11、发管理数字化转型初见成效,方兴未艾(二)数字经济时代,研发管理的重要性日益凸显第一章软件研发管理概述中国企业软件研发管理白皮书(一)研发管理数字化转型 初见成效,方兴未艾软件研发方法逐步敏捷化转型传统软件开发方法:软件研发起源于 1948 年,英国数学家和计算机科学家汤姆基尔伯恩(Tom Kilburn)在曼彻斯特大学研究了世界上第一台电子存储程序计算机 Manchester Baby。进入 60年代,软件工程开始被看作独立的工程类型,但面临着一系列“软件危机”:软件很难跟上硬件的发展,问题包括软件超出预算、超过期限,需要大量的调试和维护,不能成功地满足消费者的需求,甚至从未完成。1968 年
12、,北约(NATO)召开了第一次软件工程会议,会上讨论了与软件有关的问题,制定了开发软件的准则和最佳实践。当时业界普遍认为,软件应借鉴工程领域的经验,“系统地应用工程方法”是应对软件危机的出路,在这一思路下产生的软件开发方法就是传统的开发方法。设计设计部开发研发部测试测试部部署运维部运维运维部整个项目绝不适合大型软件开发Winston Royce项目经理负责协调整合不同职能部门的资源典型代表?让产品开发有矩可?让项目和产品的成功可复?让组织的能力可以被评估优点传统的软件开发方式强调计划、管控和结构化,遵循严格的生命周期概念,把软件开发拆分成由固定顺序阶段构成的过程:设计 开发 测试 部署 运维。
13、这种传统的瀑布模型在软件开发的前期起到重要作用,但逐渐暴露出其缺陷,即将充满回溯的软件开发过程硬性分割为几个阶段。面对传统软件工程方法在现实中的问题,陆续出现了一批轻量级软件开发方法,它们共同的特点是遵循演进和迭代的模型。软件研发管理概述03随着 70-80 年代新的语言、理念和个人电脑的面世,软件工程的面貌得到较大改善;90 年代是编程语言的繁荣期,今天使用最广泛的编程语言被引入,面向对象的编程开始流行;随着互联网的首次亮相,开源软件也逐渐进入主流。有别于传统的开发模式不断涌现,优秀个人在程序开发中的作用得到凸显。这些因素都让非传统开发方法有了实验的土壤。其结果是,一方面,质量问题层出不穷,
14、这部分促使了源自全面质量管理体系的 CMM/CMMI 在这一时间的繁荣和推广;另一方面,也产生了许多不同于传统方法的有效实践,让业界看到了新的可能。2001 年,17 位软件大师在加拿大雪鸟共同发表了敏捷宣言,提出敏捷软件开发方法应遵循的“十二原则”,凡符合这一宣言所倡导的价值观并遵循“十二开发原则”的方法均可被认为是“敏捷软件开发方法”。用户故事 1设计开发测试部署用户故事 2设计开发测试部署用户故事 3设计开发测试部署项目经理负责监督流程规则不被破坏,保持工作顺畅流通?需求库存少,周转快,产生收益更?每个小需求都会检验一次过程和产?追求用尽量少的产出获得尽量大的结?有利于团队自组织、有节奏
15、地持续改进优点典型代表敏捷软件开发方式强调交付价值和灵活应变,遵循利润最大化和流动理念,让小粒度需求以动态调整的最优顺序和最快的速度单独完成从需求端到客户端的“端到端”流转,从而频繁检验整个流程和获得客户反馈,更敏捷地交付业务价值。如今,随着云计算技术的发展,软件架构向分布式化、解耦合和工程化等方向演进,云计算给软件工程带来了由内而外、从软件开发形式到企业组织文化的变革。云上软件开发为产品创新、快速试错、高频交付提供了强大助力。然而,交付速度与软件质量的平衡问题已愈加凸显,业务价值的持续高质量交付成为企业的核心诉求。企业发展需重视研发管理过程目前,我国多数企业仍呈现出“大而不强”的状况,更需要
16、注重企业创新能力的培养,将创新驱动发展战略作为国家重大战略是中国经济社会全面转型的时代需要。在对科技自立自强做出战略部署,加快建设科技强国的背景下,企业作为创新行为投资、研发、风险的承接主体,必须不断进行研发创造,增强自身竞争地位。因此,研发作为创新活动的主要环节,更应受到企业的高度重视。软件研发管理概述04中国企业软件研发管理白皮书企业创新绩效的取得依赖于技术创新、制度创新等方面的协同,这已成为实务界和理论界的共识。国内研发团队处于中等效率水平的占比较高,国内软件研发效能水平有较大提升空间,需持续改进。根据中国信息通信研究院2022 中国软件研发效能调查报告显示,我国研发效率处于中等发展阶段
17、,对比 DORA DevOps 现状调查报告,发布频率、变更前置时间等指标处于精英水平的占比低于国际水平,软件交付质量和稳定性仍有提升空间。受访用户中,超过 30%的用户部署和发布频率低于一个月一次,与用户所处的行业有一定相关性,非互联网的企业或者面向企业(ToB)的软件产品普遍的发布频率会较低。另外,产品和服务是否运行在云上也会一定程度影响部署频率;仅 10%左右的受访用户能频繁地部署(按需部署),对比 DORA DevOps 现状调查报告中能够实现按需部署的用户达到 26%,因此,建议用户团队还需通过提升工程能力来推动部署频率的进一步提升。研发效能提升的核心阻塞点主要为流程规范、组织结构、
18、工具平台和人员技能,国内市场需要成熟完善的研发效能体系建设路径和功能完备的工具平台来解决企业痛点。根据中国信息通信研究院2022 中国软件研发效能调查报告显示,流程规范以 46.74%的占比作为阻塞研发效能的首要因素,组织结构(35.92%)、工具平台(33.24%)和人员技能(33.14%)是处于影响研发效能提升第二梯队的阻塞点,质量问题仍然是阻塞研发效能非常重要的因素。企业亟需新型研发人才,随着编程普及的低龄化,研发人才的结构变化已然发生。近年来,随着国内人工智能、云计算、数据库等 IT 产业迅猛发展,企业研发人才需求不断上涨,研发人员第一次接触 代 码 的 年 龄 也 趋 向 年 轻 化
19、。CSDN 2021-2022 年中国开发者现状调查报告显示,有 57.23%的受访者表示第一次写下代码的时间是在 16-20 岁,即在高中或大学接触编程已十分普遍,在 30 岁之后接触编程的开发者仅占 0.8%。中国企业软件研发管理白皮书软件研发管理概述05(二)数字经济时代,研发管理的重要性日益凸显近年来我国数字化转型进程不断推进,各类软件服务的市场规模不断扩大,代码量级也呈指数增长。以汽车行业为例,多年前,一辆汽车包含约 1000 万行软件代码;三五年前,一辆汽车约有 1 亿行软件代码;未来,自动驾驶汽车的软件代码量将达到 10 亿行以上,软件将重新定义汽车。然而,在车企逐年加大 IT
20、研发投入的前提下,软件质量和效能仍不能平衡,传统的软件开发模式已难以满足汽车行业对软件研发效能快速增长的要求。国内在软件工程领域的数字化协同水平相对于其行业属性偏低,未来,中国的软件研发效能工具和平台的建设还有较长的道路要走。根据中国信息通信研究院2022 中国软件研发效能调查报告显示:在研发工具对各环节的覆盖率上,半数以上研发团队的工具链已覆盖代码管理、项目协作、CI/CD 流水线、自动化构建,而自动化性能测试、生产监控和可视化工具集成、自动化运维的覆盖率偏低。同时,仍有约 20%的团队仍处于手工和线下协同的阶段。软件行业是驱动整个社会进行数字化变革的特殊行业,而且软件开发从业者的技术能力、
21、数字化素养在全社会各行业中处于较高水准,因而提升软件行业的数字化协同水平至关重要。进一步来看,一站式研发效能平台在企业中的普及率偏低,企业期望拥有功能完备、操作便捷、原生一体化的一站式研发管理平台。根据中国信息通信研究院2022 中国软件研发效能调查报告显示:已经建立了较为完备的原生一体化平台,并且公司级别统一规划管理的企业占比不到 10%。结合 80.56%的受访企业有研发效能平台建设规划,61.12%希望纯自研或半自研,51.91%希望引入商用产品这三个数据。我们或许可以得出一个推论:大多数企业期望拥有功能完备、操作便捷、原生一体化的一站式研发管理平台。随着云计算、大数据、人工智能等新兴科
22、技的进一步发展,我国的软件行业将会迎来更多增长机会。软件研发管理作为这一领域的上游基础,其战略意义将随着我国对信息科技产业重视程度的不断加大而提升。软件研发效能提升是一个复杂的学科和系统性工程,涉及到组织、流程、工具、文化等方方面面。针对当前国内在软件工程领域的软件体量大、软件质量和效能难以平衡、数字化协同水平较低等现状,亟需编写一本具有指导意义的软件研发管理白皮书,助力企业实现业务价值持续高质量交付的核心诉求。中国企业软件研发管理白皮书软件研发管理概述06中国企业软件研发管理白皮书(一)研发管理数字化模型综述(二)研发管理数字化的一个核心目标(三)研发管理数字化的四个衡量维度(四)研发管理数
23、字化的四大实践模块第二章研发管理数字化模型(一)研发管理数字化模型综述研发管理数字化是利用计算机、网络、通信、大数据以及人工智能等技术,将研发管理对象、管理方式和管理活动量化,使管理趋向数字化、互通化、智能化,以实现研发管理目标的管理活动和方法。研发管理的本质是 IT 软件团队的工作过程管理,是实现企业数字化战略管理的重要组成部分。有效的研发管理活动必然能对企业经营产生正面影响,企业将软件的数字化能力运用于生产销售,达到节流开源的目标。数字化能力并非一蹴而就,软件项目能否按时、快速、准确、稳定、低成本地部署到实际业务场景中,是影响企业数字化进程的关键因素,这正是软件行业中“研发效能”的概念。研
24、发管理数字化模型整合了以提升研发效能为路径的方法与实践,其中包括四个方面的实践模块:“组织与文化”“研发管理实践”“工程技术实践”“研发基础设施”。在研发管理数字化模型中,如图 2.1.1 所示,每个方框代表研发管理中不同的工作模块和衡量要素;每个箭头表示模块之间的联系,可以使用预测、影响、驱动或者作用等词汇来进行说明。例如,研发管理实践可以预测研发效能,而研发效能有助于商业效率的提升。详细内容将在接下来的章节中展开阐述。模块一:组织与文化变革领导力组织架构企业文化模块二:研发管理实践业务规划目标管理产品管理版本管理需求管理工单/反馈管理价值流管理可视化管理流程自动化资源管理知识管理质量管理敏
25、捷精益协作变更管理开放 API 与集成模块三:工程技术实践企业架构领域驱动设计云原生架构代码管理策略代码评审自动化测试持续集成持续交付灰度发布监控/可观测性环境管理安全合规模块三:工程技术实践企业架构领域驱动设计云原生架构代码管理策略代码评审自动化测试持续集成持续交付灰度发布监控/可观测性环境管理安全合规模块四:研发基础设施研效垂直工具一站式 DevOps 平台研发效能度量平台容器云平台研发效能交付效率交付质量交付成本交付能力研发效能交付效率交付质量交付成本交付能力商业效率收入利润用户规模市场占有率用户满意度商业效率收入利润用户规模市场占有率用户满意度实现路径最终目标图 2.1.1-研发管理数
26、字化模型研发管理数字化模型09中国企业软件研发管理白皮书研发管理数字化以商业效率为核心目标。企业通过生产与销售的数字化来降低成本和提升收入:利用软件实现企业内部数字化协作和供应链管理,达到降本提效的目标;通过软件以数字化方式为客户直接提供服务,满足客户需求从而增加营收。企业同时应用生产和销售两方面的数字化以实现更好的商业效率。研发管理数字化以研发效能为实现路径。研发效能是研发管理的结果,是度量软件团队工作绩效的直接指标。研发管理数字化提升商业效率的核心驱动力是其有着明显的阶段性指标。通过合理、清晰的指标引导,使数字化成为改善研发效能的最佳实践。研发管理通过四大实践进行数字化转型组织架构和团队文
27、化需要与数字化研发管理实践相匹配与企业的管理及数字化一样,研发管理是由人组成的活动。B.J.福格在其著作福格行为模型1 中提出行为设计公式:“行为=动机 x 能力 x 提示”,公式指出“动机”是“行为”发生的重要影响因素,“动机”则需要由匹配的组织结构和文化产生。研发管理实践结合系统性生态是数字化转型的必要条件研发管理系统将实践信息汇总到检索、分析能力强的单一平台,集成多种工具适配多团队多场景的业务需求,加强研发角色间的关联性和可追溯性。通过团队成员之间的高效协作,让企业更好更快地发布产品。工程技术实践是研发管理数字化更为灵敏和流畅的支撑工程技术实践主要影响软件生产过程的自动化程度和效率、软件
28、质量及系统稳定性等方面,主要目标是减少研发过程中非增值环节的占比,提升增值环节的时间效率,同时加速软件问题的反馈速度,使研发管理各个活动进行得更为高效。研发基础设施为数字化研发管理提供底层弹性运行环境相比传统数据中心的资源管理方式,云原生基础设施能提供更灵活、成本更低、隔离性更强的运行环境,有利于便捷高效地实现上层工程技术相关实践,也利于实现度量观测相关的可视化分析能力。1 福格行为模型,以 BJ Fogg(斯坦福说服力科技实验室主任)命名。表明一个行为得以发生,行为者首先需要有进行此行为的动机和操作此行为的能力。接着,如果他们有充足的动机和能力来施行既定行为,他们就会在被诱导/触发时进行。研
29、发管理数字化模型10中国企业软件研发管理白皮书(二)研发管理数字化的一个核心目标软件研发管理作为企业数字化的关键组成部分,其核心目标就是提升商业效率,带来业务价值。企业的数字化转型会为管理运营模式带来根本性的变化,包括工作方法、组织文化、基础设施的改进等。而研发管理数字化不仅是对业务模式的颠覆,也包括管理理念、运作模式的创新,使企业由内而外发生了深远的改变,从而降低生产成本、交易成本并增加利润,实现商业运营效率的提升。对企业内部,利用数字化软件实现通力协作,驱动业务模式的升级和重构,推动供应链管理数字化从而达到降本提效的目标。一方面,基于详细的现状调研和分析评估,从研发数据治理出发,进行研发流
30、程梳理,发现研发行为与工作成果之间的关系以及存在的问题;然后根据分析结果来科学地制定改进管理方案,全面优化研发体系,降低研发成本,实现整体改进;另一方面,全新的研发管理模式,让技术带来的变化发生得更加迅速,在推广、沟通、交付等商业基础服务上带来改进,从而实现交易成本的降低、收入的增加。对企业外部,软件研发与互联网新业态一脉相承,实现了充分的商业模式创新,甚至颠覆了传统业务模式。例如跨境电商、生活服务、在线教育等领域,这些创新带来了生活方式、用户体验、品牌营销的变革。软件产品使得用户状态、运营数据可视化,通过增长数、转化率、留存量、活跃度、用户画像与产品粘性等指标,来论证现阶段产品对用户的价值,
31、再通过快速评估、迭代更新,来解决用户痛点,从而提升用户规模和市场占有率。软件的高效交付能提高为客户提供数字化服务的顺畅度,减少客户额外付出,打造以客户为中心的企业,提升客户的体验质量。(三)研发管理数字化的四个衡量维度研发管理数字化提升商业效率的核心驱动力是其有着明显的阶段性指标。通过合理、清晰的指标引导,使数字化成为改善研发效能的最佳实践。面向提升研发效能的目标,可采用“定义 度量 分析 改进”的流程与方法来定义衡量的指标,从而收集数据和统计分析。针对研发数字化的管理过程,可通过交付效率、交付质量、交付能力和交付成本四个衡量维度来持续跟踪,如图 2.3.1所示。研发管理数字化模型11中国企业
32、软件研发管理白皮书研发管理数字化结构性指标交付效率交付能力交付成本交付质量需求交付周期ROI(投资回报率)ROA(资产回报率)ROE(净资产回报率)收入/投资总额*100%净利润/总资产*100%净利润/净资产*100%发布频率发布前置时间开发交付周期交付吞吐量线上缺陷密度故障恢复时间上线成功率解读:从需求提完,到完成开发、测试、上线,最终验收通过的时间周期单位:天解读:单位时间内的有效发布次数单位:次解读:代码提交到功能上线的时长单位:分钟解读:统计周期内线上或单个版本严重级别 Bug 数量/需求个数单位:个/百分比解读:统计周期内交付的需求个数/统计周期单位:个/天解读:上线、位:百分比解读:从需求被研发团队确认到完成开发、测试,达到可上线状态的时间周期单位:天解读:线上系统和应用发生故障,多久可以进行恢复单位:分钟图 2.3.1-研发管理数字化的四个衡量维度数字化的核心思想之一是用更低的成本创造更高的价值。从以上指标的角度来看,通过研发管理数字化的加速,既可以降低 IT 成本,也可以促使团队养成效率驱动的习惯,更有利于提升业务的 IT 生产力。同时,产品高质高效的交付可以释放市场价值,募集资金收入去击败那些追逐相同客户的竞争对手。研发管理数字化模型12中国企业软件研发管理白皮书(四)研发管理数字化的四大实践模块组织与文化组织架构和团队文化需要与数字化研发管理实践相
34、匹配。研发效能的提升离不开企业组织中价值观、信念、态度、规范和行为所产生的文化氛围。当研发团队不再以职能而是以角色组织工作,以项目小组而不是以部门划分为单位,研发团队的身份和特点也随之发生变化。为实现数字化研发管理的目标,组织文化需考量以下三个方面:一是变革领导力,二是匹配团队的组织架构,三是尊重人、协作、持续改进的企业文化。(一)变革领导力变革领导力指领导者在组织经历变革时期,推动组织完成既定目标和应对挑战的过程中,激励追随者实现自我转变、引导组织变革以应对各种挑战和把握机遇的能力。DevOps 研究和评估组织(DORA)研究表明,有效领导对软件交付结果具有可衡量的重大影响。变革领导力包含审
35、时度势的先见力、打造团队的能力和建设学习型组织的能力。审时度势的先见力在引入敏捷、DevOps 转型或新实践的变革中,领导者需要领先团队和组织一步,站在更高的层面去系统地看整体,看全局,看远处,才能建立团队的共同愿景,让团队或组织朝着共同的目标前进。如果领导者走得太快,团队很有可能跟不上;而如果领导者与团队处于同一个阶段,那么他并不能充分挑战现状,团队也无法进步。打造团队的能力建立优秀团队的能力是变革领导者必须具备的素质。根据塔可曼(Tuckman)团队发展阶段的模型,团队在不同时期,领导者需要具备的能力也有所不同。塔可曼(Tuckman)阶梯理论如图 2.4.1所示。研发管理数字化模型13中
36、国企业软件研发管理白皮书组建阶段Forming指导式Directing震荡阶段Storming教练式Coaching规范阶段Norming参与式Participating成熟阶段Performing委任式Delegating调整阶段Adjourning高低团队状态工作绩效图 2.4.1-塔可曼(Tuckman)阶梯理论 组建阶段(Forming)特点:此时人们坐在一起,还不是真正的团队,他们独立工作、不太进行合作,不需要彼此;领导技能:需要领导者花费时间来引导、解释和分享经验。震荡阶段(Storming)特点:组建期过后,震荡期很快就到来了,此时团队成员开始确立彼此的位置,并出现争论和冲突;领
37、导技能:需要领导者具备解决冲突能力和构建团队成员信任的能力。规范阶段(Norming)特点:经过前两个阶段的磨合,团队发展比以前更好,可以顺畅平滑地协作;领导技能:需要领导者具备辅导团队不断改进,通往更好的状态,鼓励他们取得所有权、勇于承担责任、持续改进。成熟阶段(Performing)特点:这是真正的“团队”,充满自信,总是寻找更好的工作方式,敢于实验,无问责;领导技能:避免团队回到之前的任何阶段,及时帮助团队移除障碍,引导团队分享经验并辅导团队新技能。调整阶段(Adjourning)特点:当团队成员有调整(加入、离开、调换等),即使是小小的变动,也有可能使团队分崩离析,重回某个阶段;领导技
38、能:根据具体情况和团队所属阶段,引导团队,使他们尽快进入到成熟阶段。研发管理数字化模型14中国企业软件研发管理白皮书建设学习型组织研发管理在面对快速变化和充分竞争的市场环境时,仅依靠领导者或少数人的学习是远远不够的,整个团队、整个组织都要在持续学习的氛围中行进。学习型组织具有以下基本特征:组织成员拥有共同的愿景。愿景是保障团队朝着正确方向高速行进的灯塔。愿景来源于对组织目标上下文的理解,通过自己的思考和团队内部的协商,在目标上达成的共识。共同愿景为学习提供了目标和内驱力。鼓励个人与团队学习。组织要有意识地提供学习机会,营造具有挑战性的工作,促使成员持续地成长。例如工作方法改进、引入新技术、轮岗
39、等。此外,建立个人学习目标与组织目标的桥梁,让个人提升和组织发展相匹配,使组织和个人从学习中获益。建设有助于捕获和共享知识的管理平台。一套具有捕获、检索、分类、存储、访问、分享的知识管理系统是打造学习型组织的重要支撑,让准确、有效的知识在组织中流动,推动研发团队在学习中成长。(二)匹配团队的组织架构高绩效的研发团队要消除浪费、为客户创造真正的价值,就需要跨部门统筹管理、打通端到端的价值链,让团队内的目标一致。此时组织架构和绩效需要以团队目标为导向配套调整和改革。根据组织不同的发展时期和上下文环境,相应的架构有以下两种:职能型组织架构按人员的专业划分职能,如:测试部门、开发部门、运维部门、需求部
40、门等。职能型组织架构的优点是资源利用率高,有利于提升成员的专业技能;缺点是容易产生部门墙,各部门目标不一致,造成效率竖井。职能型组织架构如图 2.4.2 所示。总经理需求管理部门BA1BA2BA3BA4BA5.测试 1测试 2测试 3测试 4测试 5.运维 1运维 2运维 3运维 4运维 5.前端开发 1前端开发 2前端开发 3后端开发 1后端开发 2.开发部门测试部门运维部门.图 2.4.2-职能型组织架构研发管理数字化模型15中国企业软件研发管理白皮书业务型组织架构围绕业务建立团队的组织架构,每个业务线有自己的研发团队,相关的产品、开发、测试等同事在一个团队内,以客户为中心,持续快速地响应
41、前端市场与客户需求。另外有技术中后台,负责抽象、封装各业务线产品开发需要的公共技术内容,形成公共服务、中间件或平台(比如:保险的核心系统、交易、结算、用户等),为各业务线研发提供一致的、易用的应用技术、数据库技术及基础设施重用能力,支撑各业务线快速响应市场变化。业务型组织架构如图 2.4.3 所示。同时,业务型组织由于是面向价值交付的全功能团队,如需在专业性上更胜一筹,会建立专业性委员会,如架构委员会、前端委员会、质量保障委员会等来制定相关标准与推动专业性。部门BU1(200+)BU2(170+)BU3(100+)BU(90+).业务产品经理SM前端开发后端开发 测试人员业务产品经理SM前端开
42、发后端开发 测试人员业务产品经理项目经理前端开发后端开发 测试人员业务产品经理PMO前端开发后端开发 测试人员业务产品经理PMO前端开发后端开发 测试人员前端委员会架构委员会质量委员会运维人员安全工程师过程改进运维人员安全工程师HelpDesk运维人员安全工程师中间件工程师运维人员安全工程师.技术中后台部门图 2.4.3-业务型组织架构组织架构的选择如图 2.4.4 所示,组织架构的选择可根据技术挑战、业务挑战这两个维度来思考?当业务方向相对较确定、技术实现也较确定,可以选择传统的职能型组织架构,这样成本更低、技术专业性更强(第一象限)?当业务挑战较大,建议选择业务型组织架构(二、三象限)?当
43、业务方向相对较确定、技术挑战较大,建议选择传统的职能型组织架构(第四象限)。研发管理数字化模型16中国企业软件研发管理白皮书业务型(更好适应性)职能型(更低成本)业务型业务挑战技术挑战职能型图 2.4.4-组织架构选择模型此外,矩阵型组织架构综合了职能型和业务型的特点,把按职能划分的部门和按业务(或项目、产品、服务等)划分的部门结合起来组成一个矩阵,使同一个员工既同原职能部门保持组织与业务的联系,又能参加产品或项目小组的工作。实际操作中也可参考这种两者之间相较平衡的选择。(三)尊重人、协作、持续改进的企业文化尊重人精益思想的两大支柱包括“尊重人”和“持续改进”。在研发数字化管理中同样需要尊重员
44、工,为员工创造良好的工作氛围,使员工热爱工作,把工作当成自己的目标,具体包括:尊重来自不同背景、不同领域、不同生活方式的的员工;为员工提供有助于实现他们目标的资源;领导者倾听员工的诉求,尽量安排与个人目标相一致的工作;为员工提供无问责的工作环境。协作一个团队在与另一个有着不同观点的团队成功合作前,团队内首先要相互协作,通过支持多人输入与交互,致力于实现特定的成果。方法如下:?建立明确和令人向往的目标。团队成员需要的不仅仅是任务,如果需要人们内驱地工作,就需要他们了解工作目标并对其做出承诺。通过调动成员的内在动机,提升团队的整体协作水平。?让团队成员与客户或用户接触。与客户或用户交流,观察用户使
45、用软件,有助于团队成员加深对当前工作的目标的了解。例如,一个开发人员发现自己实现的功能为现实中的人们提供方便,他更愿意也更有动力配合其他角色完成相关工作。?让组织端到端的工作可视化。如果组织内端到端的工作通过看板可视化出来,有助于团队成员发现瓶颈、阻塞,从而有助于团队成员共同协作完成端到端的交付。研发管理数字化模型17中国企业软件研发管理白皮书持续改进好的研发数字化管理是动态演进而来的,不是一蹴而就的。原因主要有两方面:市场环境不断变化,研发数字化管理为实现商业目标而持续不断地改进;所有的管理都需要因地制宜,结合自身实际的上下文(如业务、团队、发展阶段等等)来不断调整。在持续改进的文化中,其管
46、理的基本标准是:如果实验和创新是出于改善过程和提升效能的目的,就要能够承受其可能的失败。在持续改进的文化中,员工不会再有对创新和失败的恐惧,而是可以获得极大的授权,能够自由地去做正确的事。员工会自发地聚在一起攻克难题,讨论解决方案,并进行修复和改善。团队进行局部改进的同时,也会专注于系统层面,致力于提高整体效能。研发管理实践研发数字化管理可以量化管理研发团队和个人的工作过程、工作成果;可以精准分析效率、质量、成本、收益等内容,发现研发行为与工作成果之间的关系以及其中存在的问题;进而根据分析结果,科学地制定改进管理方案,提高研发效能。研发管理实践包含以下内容。提效 Tips创建业务规划类的项目时
47、,根据业务的特点编辑个性化标签体系,根据规划流程和管控点落地业务规划过程,做到全程可跟踪,所有动作留痕可追溯。业务规划业务规划是针对企业特定的战略,根据市场环境和技术环境规划业务方向和确定业务目标的的过程。通常包含以下四个方面:调研策划,规划公司的产品经营战略发展方向时,要充分考虑市场情况、公司业务和团队技术能力;业务计划,业务计划分为中长期业务计划和短期业务计划两种;方案制定,在制定研发方案时,要使用战略工具进行分析,确定公司在整个行业中所处的水平,进行风险管理;验收标准,需要从专业技术含量和使用的战略工具两方面衡量业务计划及验收辨准制定得是否合理。提效 Tips目标管理作为业务规划的拆分,
48、重点在于合适的颗粒度,目标是对复杂业务规划的解耦,同时便于跟进重点里程碑。每一个目标要尽可能独立、完整,目标的结果要可量化、可度量。目标管理项目目标是实施项目所要达到的期望结果,即项目所能交付的成果或服务,是实现业务规划的重要考量。从项目实施角度,项目目标应该是被清楚定义并最终实现的,明确的目标可以号召团队成员积极主动地贡献力量。产品项目的实施过程是追求预定目标的过程,产品目标可以研发管理数字化模型18中国企业软件研发管理白皮书是长期目标与短期目标的结合。项目目标也是业务规划的细颗粒度的体现,是对业务规划的分解和可度量成果的体现。与此同时,企业在管理目标时也要结合 OKR 进行综合评估。提效
49、Tips产品管理是一个中长期的过程,也是一个承上启下的工作。向上要对接战略目标,充分考虑市场行情、客户需求、技术成熟度等合理规划产品功能及优先级,产品的规划也是与时俱进动态调整的。同时产品规划调整也要考虑研发进度和能力,充分配合才能打造更适合市场的优秀产品。产品管理产品管理,是在产品生命周期中的不同阶段中采取一系列的措施、手段和方法,让产品能够对应阶段内的业务规划和战略目标。即要不断地收集和综合信息、预测竞争和市场状况的变化、修订市场战略以及调整价格和沟通等决策以适应变化的市场状况。产品管理通过全方位的资源统筹,以最优的效率和效果满足客户需求。所以,产品管理应当包含以下几个方面的内容:对产品的
50、管理、对产品生产与研发资源的管理、对于产品研发与生产人员的管理、对产品研发与生产过程的管理、对产品环境的管理。产品管理的核心内容,是通过管理实现产品研发、生产与销售,并为企业取得效益。这是企业获得产品竞争优势的核心竞争力。提效 Tips版本作为产品规划的重要属性,需注重颗粒度。合理的颗粒度尽可能让每一个版本都有实质性的进步与更新,版本的如期交付、成功交付也是研发和产品团队鼓舞士气的最佳方式。同时版本的发版节奏和周期也是市场对产品的必要要求。版本管理版本管理是为满足不同需求,对同一产品或系统进行局部的改进和改型所产生的产品或系统系列的变更情况进行记录、跟踪、维护和控制的过程。它的主要功能有:产品
51、落地和市场匹配规划,产品的版本规划一方面要符合整体业务规划的大战略要求、要符合现阶段业务目标和产品的整体定位,同时版本规划也是产品团队对现阶段市场和产品的理解的体现。升级管理,每次登陆软件时,在服务器上都会生成新的版本,任何版本都可以随时检出编辑;加锁功能,在文件更新时保护文件,避免不同的用户更改同一文件时发生冲突;版本比较,提供不同版本产品的比较。研发管理数字化模型19中国企业软件研发管理白皮书需求管理需求管理是指以用户为中心,以用户的需求为出发点,集中精力来收集和管理用户需求,并试图利用该信息制定生产决策,以实现用户效用最大化的活动。需求管理包括需求收集、需求整理和需求评审。(参见第三章【
52、一】“端到端的需求生命周期管理”)需求收集,需求来自于用户端和业务方,包括市场、用户调研、运营、测试、开发、用户反馈、产品经理等等。明确收集需求周期可以提升协同效率,通常以半个月或者一个月进行一次汇总的需求收集。需求整理,收到业务方的建议需要进行梳理和辨别,并将有效需求记录到需求池当中。需求评审,对进入实际工作中的需求评估后进行优先级排期,比较实用的模型有 KANO 和 MoSCoW 1。提效 Tips需求是连接产品和研发的重要桥梁和验收标准。在需求梳理时可采用分级的方式来自上而下,或自下而上地进行明确。通过敏捷看板和树状图等方式展现和跟进需求的规划和设计过程。需求设计的分工和过程要做到留痕。
53、重点需求的评审也是比较必要的过程。提效 Tips工单作为团队了解市场和倾听外部声音的重要途径,提交工单的便捷性,工单响应的及时性、工单响应的流程和管控点及工单进度提醒互动都是重要的考察指标。还可对工单进行阶段性分析和必要的响应度量。工单/反馈管理工单用来创建、挂起、解决来自用户、客户、合作伙伴或企业内部职员的事务请求。广泛用于客户帮助支持服务、客户售后服务、企业 IT 支持服务、呼叫中心等。工单管理常见于客户服务管理,也是产品团队快速了解市场需求的直接方式。完整的工单系统还需配套帮助文档知识库(Knowledge base),里面包含常见问题及其处理方式、常见功能的操作教程等。工单系统就像问题
54、追踪器,能追溯、处理和归档内外部的事务请求,规范化、统一化和清晰化地处理和管理事务。提效 Tips通过对目标设置可量化的成效指标,有效地牵引产品和研发团队在规划、设计和交付过程中时刻关注“价值”。价值流管理价值流由向客户交付业务价值所需的所有活动、相关方、流程和工具组成。价值流框架的作用是帮助跟踪、管理和改进企业在自动化、敏捷和 DevOps 实践所能带来的业务结果,并提供改进这些实践所需要的度量指标。流框架关注的是端到端的度量,用于识别价值流中存在的瓶颈。流框架更倾向于对结果进行度量,避免对活动进行度量。1 KANO 模型将需求划分为兴奋性需求、期望性需求、基本需求。优先解决:基本需求期望性
55、需求兴奋性需求。MoSCoW 模型的名称是四个优先级类别的首字母缩写词组成,由高到低分别为:必须具备、应该有、可能拥有、不会有。研发管理数字化模型20中国企业软件研发管理白皮书采用流框架可以得到以下收益:实时看到业务价值的端到端流动;立即发现瓶颈,并利用它们对投资进行优先级排序;基于每个价值流的实时数据对假设进行验证;为了最大化价值流动而重新设计组织架构。提效 Tips迭代下的敏捷看板支持基于关联工作项和父子工作项划分泳道,方便直观地了解任务的从属关系以及任务的状态,帮助研发经理、项目经理等在具体迭代中更高效地查阅迭代进展。可视化管理企业级工具不仅需要有收集、处理、分析数据的硬实力,还需要具备
56、将项目所蕴含的信息准确传达出来的软实力。在日常生产与工作管理中,使用树状图、敏捷看板、状态看板、综合看板、列表详情混合视图等一系列简洁明了的标准化管理工具,通过符号、图形的设计输出,将抽象的信息具象化,直观地体现项目的实际情况;还可以利用组件化的方式,全面分层次呈现项目的每一级细节,让团队成员更加高效、低耗地利用信息。提效 Tips借助于工作流设置“后置动作”中的“状态联动”功能,在开发人员完成任务后,需求的状态会自动变更,减少团队成员手动更新需求状态的工作量。流程自动化将规模较大、流程规范的业务工作中出现的批量性、重复性的内容,配置为自动化流转的程序而取代人工操作,让企业发挥业务信息化的优势
57、。例如分配任务、发送通知以及记录更新等都是标准流程中的步骤。将这些重复性的步骤自动化配置,并提供规则运行历史记录,组织成员无需手动处理繁琐的重复性事务,得以专注在创造性的工作内容上,从而降低企业人力成本,避免人为失误的发生,实现更好更快的产品发布(参见第三章【三】“自动化提升企业组织效能”)提效 Tips通过灵活的项目配置,自定义不同种类需求的属性,将需求定义为不同的粒度,分别由不同的人处理,弥补部分需求处理人员能力不足的问题。资源管理在技术研发这类知识性工作中,最重要的资源就是人力资源。让每个成员各司其职,在自己的岗位上贡献出最大的价值,管理者需要根据业务发展的目标对团队进行合理的配置。项目
58、资源管理最细的粒度是管理每个任务中每个成员的时间消耗,粗的是按照项目管理总体消耗,管理成本和细致度成正比。项目资源管理要把握住管理粒中国企业软件研发管理白皮书研发管理数字化模型21度的平衡。太细管理成本过高,影响效率,过粗又起不到管理的效果。提效 Tips一套好的知识管理系统是敏捷协作乃至研发效能提升必不可少的部分,既能帮助员工通过知识提升个人能力,也能帮助组织沉淀经验。构建以业务为核心的知识管理体系,有效推进研发经验的快速拓展与复制。知识管理知识管理将存在于项目中的不同方面的知识、技术,乃至项目战略等协调统一起来,共同为项目的发展服务,通过知识的更有效利用来提高个人或组织创造价值的能力,创造
59、整体大于局部之和的效果。为使项目团队的个人和组织适应现代科技日益复杂多变的环境,知识管理应该起到辅助工具的作用。知识管理将知识视为组织最重要的战略资源,将最大限度地掌握和利用知识作为提高组织竞争力的关键。知识管理不仅是最新的管理方式,而且代表了理解和探索知识在管理和工作中的作用的新发展,这种探索的方式更加有机、全面。当项目面对日益增长的非连续性的环境变化时,知识管理是针对项目组织的适应性、组织的生存及组织的能力等重要方面的一种迎合性措施。本质上,它嵌涵了组织的发展进程,寻求将信息技术所提供的对数据和信息处理能力以及人的发明和创新能力这两者进行有机的结合。(参见第三章【四】“知识经验沉淀为过程资
60、产”)提效 Tips质量与效率密切相关。一方面,质量低下会导致研发团队忙于救火或因多次返工而降低效率;另一方面,质量提升也不能以降低效率为代价。因此,研发质量和效率需要统筹发展。质量管理项目质量通常指产品的质量,广义的还包括工作的质量。产品质量是指产品的使用价值及其属性;而工作质量则是产品质量的保证,它反映了与产品质量直接有关的工作对产品质量的保证程度。由于项目活动是一种特殊的物质生产过程,其生产组织特有的流动性、综合性、劳动密集性及协作关系的复杂性,均增加了项目质量保证的难度。项目的质量管理主要是为了确保项目按照设计者规定的要求满意地完成,它包括使整个项目的所有功能活动能够按照原有的质量及中
61、国企业软件研发管理白皮书研发管理数字化模型22目标要求得以实施,质量管理主要是依赖于质量计划、质量控制、质量保证及质量改进所形成的质量保证系统来实现的。提效 Tips根据项目特点定制化项目跟踪视图,如风险视图、问题看板、研发测试情况复合看板等构建项目的概览页。分层级、分角色更有针对地跟进每一个项目。敏捷精益协作敏捷项目协作是一种基于增量、迭代的开发项目管理方式。它将大型项目分解为更小的、可管理的开发周期,称为迭代。之后,项目团队再分成更小的独立团队来完成这些迭代。精益管理的流程可视化和在制品控制方面的优势,使得研发周期的整体度量更为方便,所以将精益思想应用到研发管理中。在精益研发管理中采用精益
62、看板控制在制品数量,实现快速交付和整个研发周期的度量。提效 Tips通过筛选器记录和筛选需求变更次数与需求投入的整体资源(如成员工时、人力成本等),对团队项目投入成本和资源进行评估,合理分配项目任务。变更管理变更管理是指项目组织为适应项目运行过程中与项目相关的各种因素的变化,保证项目目标的实现而对项目计划进行相应的部分变更或全部变更,并按变更后的要求组织项目实施的过程。变更管理是项目管理中的最重要过程之一,主要任务是分析变更的必要性,有变更的需求就要有变更的控制和管理。它的主要任务包括:分析变更的必要性和合理性,确定是否实施变更;记录变更信息,填写变更控制单;做出更改,并交上级审批;修改相应的
63、软件配置项(基线),确立新的版本;评审后发布新版本。提效 Tips提供 OpenAPI、Webhook 与其他上下游工具的集成,形成端到端的全生命周期研发管理。开放 API 与集成API 集成是通过应用程序编程接口来共享数据和改进应用程序的功能。API 集成工具可简化业务流程,为自动化创造更多机会,并加强 IT 生态系统的灵活性。企业在信息规划过程中,制定数字化的系统架构、确定信息系统各部分的逻辑关系,将不同系统的数据通过 API 同步,改善所有应用程序之间的通信,从而加速企业的数字化转型步伐。开放的 API 平台和系统集成能力也就成了一款合格的研发管理工具的刚需。中国企业软件研发管理白皮书研
64、发管理数字化模型23工程技术实践 工程技术实践模块需考虑的内容包括架构设计、代码管理、持续集成和部署、环境管理等,并要保证整体的监控/可观测性,将安全合规贯穿始终。工程和技术领域的核心是持续集成、持续交付和持续部署,其目的是让持续自动化和持续监控贯穿应用开发的整个生命周期,通常被称为“持续交付流水线”,由开发和运维团队以敏捷协作的方式工作。企业架构有效的企业架构对企业的生存和成功具有决定性的作用,是企业通过 IT 获得竞争优势的不可缺少的手段。企业架构是指对企业事业信息管理系统中体系化的、普遍性的问题而提供的通用解决方案,更确切地说,是基于业务导向和驱动的架构来理解、分析、设计、构建、集成、扩
65、展、运行和管理信息系统。复杂系统集成的关键,是基于架构(或体系)的集成,而不是基于部件(或组件)的集成。企业架构可以分为业务架构和 IT 架构,大部分企业架构方法都是从 IT 架构发展而来的。业务架构,是把企业的业务战略转化为日常运作的渠道,业务战略决定业务架构,它包括业务的运营模式、流程体系、组织结构、地域分布等内容;IT 架构,指导 IT 投资和设计决策的 IT 框架,是建立企业信息系统的综合蓝图,包括数据架构、应用架构和技术架构三部分。领域驱动设计作为一种主要的软件方法,领域驱动设计专注于根据领域专家的输入对软件进行建模以匹配业务领域。在领域驱动设计下,软件代码的结构和语言(类名、类方法
66、、类变量)应该与业务领域相匹配。例如,如果一个软件处理贷款申请,它可能有像 Loan Application 和 Customer 这样的类别,以及像 Accept Offer 和 Withdraw 这样的方法。领域驱动设计基于以下目标:将项目的主要重点放在核心领域和领域逻辑上;基于领域模型的复杂设计;发起技术专家和领域专家之间的创造性合作,以迭代改进解决特定领域问题。云原生架构云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生包含了一组应用的模式,用于帮助企业快速、持续、可靠、规模化地交付业务软件。云原生由微服务架构、DevOps 和以容器为代表的敏捷基础架构组成。云原生计
67、算基金会(CNCF)给出了云原生应用的三大特征?容器化封装,以容器为基础,提高整体开发水平,形成代码和组件重用,简化云原生应用程序的维护。在容器中运行应用程序和进程,并作为应用程序部署的独立单元,实现高水平资源隔离。中国企业软件研发管理白皮书研发管理数字化模型24?动态管理,通过集中式的编排调度系统来动态的管理和调度?面向微服务,明确服务间的依赖,互相解耦。代码管理策略代码分支管理策略是软件协作模式和代码发布模式的基础,常见的企业分支策略可归结为三种类型:主干开发,分支发布;分支开发,主干发布;主干开发,主干发布。业界使用比较广泛的分支工作流程有以下三种:Git Flow,GitHub Flo
68、w,Gitlab Flow。分支管理还可采用以下原则:对所有内容进行版本控制,开发人员不但要用它来管理和控制源代码,还需要把测试代码、数据库脚本、构建和部署脚本、文档和应用软件的配置文件等都纳入到版本控制当中。频繁提交代码到主干,尽早和频繁合并代码到主干,能够减少因重构引起的大规模合并导致冲突的可能性,确保集成问题能够被尽早发现,降低修复成本,从而提高软件开发质量。提交意义明确的注释,清晰的注释能够在构建失败时追溯到问题根源,可以节省大量的调试时间。好的注释应该是一段简短的总结性描述和细节描述,以及包括一个功能或缺陷的链接。代码评审代码审查(也称为同行审查)是一种软件质量保证活动,是由一个或多
69、个人通过查看和阅读部分源代码来检查程序的工作方式。代码审查通常发生在实施完成后或作为实施的终端进行检查,至少其中一人不得是代码的作者。除作者外,进行检查的人员称为“审稿人”。除了发现质量问题这一目标外,执行代码审查还能实现以下目标:更好的代码质量,提高内部代码质量和可维护性(可读性、统一性、可理解性等);发现缺陷,提高外部质量,发现性能问题、安全漏洞、注入的恶意软件等问题;学习/知识共享,无论是对审稿人还是代码作者,有助于共享有关代码库、解决方案方法、质量期望等方面的知识;增强相互责任感,增加集体代码所有权和团结感;寻找更好的解决方案,寻找比现有代码新的、更好的解决方案和想法;遵守 QA 指南
70、、ISO/IEC 标准,在某些情况下,代码审查是强制性的,比如空中交通软件、安全关键软件等。自动化测试自动化测试是把以人为驱动的测试行为转化为机器执行的过程。通常,在设计测试用例并通过评审之后,由测试人员根据用例中描述的规程一步步执行测试,得到实际结果与期望结果相比较。在此过程中,为了节省人力、时间和硬件资源,提高测试效率,便有了自动化测试的概念。自动化测试大大缩短了反馈循环,这与敏捷开发实践、持续交付和 DevOps 文化密切相关,拥有有效的软件测试方法可以让团队快速且充满信心地进行测试。中国企业软件研发管理白皮书研发管理数字化模型25常见的测试分层模型分为以下几种:自动化测试金字塔模型(T
71、est Automation Pyramid)、蛋筒冰激凌模型(Ice Cream Cone)、纸杯蛋糕模型(Software Testing Cupcake)和橄榄球模型。自动化测试金字塔提出之后,几乎被奉为圭臬。但由于其对人员的能力要求很高,实践的难度很大,且随着敏捷测试的不断演进,考虑团队能力和性价比的因素,橄榄球模型更容易被接受。在自动化测试的初级阶段,接口自动化测试的执行效率高,也通常是面向业务的测试,能够快速验证软件的基本功能,因而被认为是效用最大的。自动化测试金字塔模型及橄榄球模型如图 2.4.5 所示。手动界面测试手动界面测试自动化界面测试自动化界面测试自动化接口测试自动化接口
72、测试自动化单元测试自动化单元测试图 2.4.5-自动化测试模型:金字塔 vs 橄榄球持续集成持续集成是一种软件开发工程实践,倡导团队开发成员必须频密地集成他们的工作,甚至每天都可能发生多次集成。每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证,从而尽快地发现集成错误,让团队能够更快地开发出内聚的、可工作的软件。持续集成的关键原则包括:开发人员每天至少向版本控制库中提交一次代码;需要有专门的集成服务器来执行集成构建,每天要执行多次构建;自动构建,且构建时会触发自动测试;每次构建都要 100%通过;每次构建都可以生成可发布的产品;修复失败的构建是优先级最高的事情等。持续交付持续交付是
73、一系列的软件开发实践方法,用来确保让代码能够快速、安全地部署到产品环境中。它通过将每一次变更都提交到一个模拟的产品环境中,使用严格的自动化测试,确保业务应用和服务能符合预期。因为使用完全的自动化过程来把每个变更自动地提交到测试环境中,所以当业务开发完成时,你有信心只需要按一次按钮就能将应用安全地部署到产品环境中。它的目的在于让软件的构建、测试与发布变得更快以及更频繁,这种方式可以减少软件开发的成本与时间,减少风险。中国企业软件研发管理白皮书研发管理数字化模型26灰度发布灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B Testing,即让一部分用户继
74、续用产品特性 A,一部分用户开始用产品特性 B,如果用户对 B 没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到 B 上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。监控/可观测性监控和可观测性是相互依赖的不同概念:监控是为提高系统的可观测性而执行的一项操作。可观测性是衡量一个系统从其外部输出的信息中推断其内部状态的程度,如功能或可测试性。具体来说,监控是随着时间的推移观察系统性能的行为,监控工具收集和分析系统数据,并将其转化为可操作的见解。可观测性中使用的主要数据分为指标、追踪和日志三部分,这些数据观测允许系统管理员、IT 运营分析师和开发
75、人员能够了解整个架构,查找并连接复杂链中的影响,将其追溯到根本原因并提高系统的性能,使团队更有效地监控系统。环境管理环境是指应用程序运行所需的所有资源及其配置信息。以下属性用来描述环境:?组成运行环境的服务器的硬件配置信息-比如 CPU 的类型与数量、内存大小、硬盘和网络接口卡等,以及这些服务器互联所需的网络基础设施。?应用程序运行所需要的操作系统和中间件(如消息系统、应用服务器和 Web 服务器,以及数据库服务器等)的配置信息。云原生技术让环境管理变得更加便捷和高效。云原生的优势主要是:松散耦合的系统可以从故障中很好地恢复、易于管理与观测。当该系统结合当前可信赖的自动化技术,工程师们能够最大
76、限度地减少重复劳动,经常性地、可预见性地创造重大改变。安全合规信息安全合规管理是企业信息安全总体保障框架的重要组成部分之一,其核心职能是进行信息安全合规风险管理,避免安全合规风险给企业带来的损失与危害。信息安全合规风险是指企业因没有遵循信息安全方面的法律、规则和准则而可能遭受法律制裁、监管处罚、重大财务损失和声誉损失的风险。DevSecOps 从 DevOps 的概念延伸和演变而来,是糅合了开发、安全及运营理念以创建解决方案的全新方法,其核心理念是“每个人都对安全负责”,需要将安全贯穿从开发到运营整个业务生中国企业软件研发管理白皮书研发管理数字化模型27命周期每一个环节才能提供有效保障。要释放
77、 DevSecOps 的潜力,必须遵守设定的最佳实践,包括使用安全编码技术、整合正确的工具、使用自动化、采用安全即代码、安全左移等。通过加强内部安全测试,主动搜寻安全漏洞,及时修复漏洞、控制风险,以确保高水平的安全性、降低风险和提高运营效率,实现与业务流程的良好整合。研发基础设施研发基础设施是研发管理的运行基础和前提条件,通常包含以下内容:研效垂直工具产品的研究和开发是独特的创新性活动,开始时不确定性较高,因而要不断地进行试验,并逐步进入已知的、更加确定的活动;产品研发需要反复进行,并在良好实践的基础上实现自动化。因而研发效能工具可以垂直分为 4 大类。构想基于业务目标的敏捷规划,该大类所涉及
78、的几个主要工具平台有?目标规划平台:目标管理、计划管理、目标执行、目标回顾?需求管理平台:需求管理、工作流管理、需求统计分析等?敏捷协作平台:产品管理、迭代管理、看板可视化、流程配置和约束等?项目管理平台:项目信息管理、进度任务管理、里程碑管理、工时/成本管理等。研发以产品为导向的研发模式,该大类所涉及的几个主要工具平台有?代码托管平台:仓库管理、代码管理、代码评审、规则管理、Web IDE 等?代码扫描平台:静态扫描、安全扫描等?测试管理平台:测试用例、测试计划、缺陷管理等。发布工程卓越的交付和发布,该大类所涉及的几个主要工具平台有?自动化测试平台:接口/UI 测试、性能测试等?部署发布平台
79、:应用管理、部署策略、集群管理、配置中心、流程控制、制品管理等?流水线管理平台:作业编排、任务调度、模板配置?环境管理平台:环境搭建、数据准备、环境资源管理。中国企业软件研发管理白皮书研发管理数字化模型28运维以应用为中心的运维,该大类所涉及的几个主要工具平台有?运维管理平台:应用监控、应用拓扑、性能监控、日志检索、报警管理、故障自愈、堡垒机、运维工具等?云基础设施:基础架构平台、中间件、应用层监控。一站式 Devops 平台软件研发主流的趋势正在从多个单项工具逐渐转向为一站式 DevOps 平台。DevOps 是一种重视“软件开发人员(Dev)”和“运维技术人员(Ops)”之间沟通合作的文化
80、、运动或惯例,作为软件开发领域最近十年来兴起且当下普遍成熟运用的方法论,DevOps 是敏捷开发的延伸,通过流程自动化,使构建、测试、发布软件能够更快捷、频繁并且可靠。一站式 DevOps 平台发挥最大价值应该要满足以下三个最基本的条件?具备丰富完整的功能矩阵,能覆盖研发过程的主要部分?完善的研发数据链路和功能整合能力?系统间的高度自动化能力。一站式 DevOps 平台还具备可视化能力、可追溯能力、可度量能力等,让各孤立工具的团队实现数字化协同,让工程师减少消耗在多个系统中的手动操作、信息寻找、系统切换、大脑思考处理的时间,从而大幅提升效率。研发效能度量平台研发效能度量平台是随着产品研发的价值
81、流动,整合从“规划 需求 设计 开发 测试 上线 运维”的全流程效能数据,通过设立效能指标形成对应的仪表盘,从而进行智能分析和辅助决策的平台。研发度量平台可以采用“定义 度量 分析 改进”的流程。(参考第三章【五】“有度量才有针对性的改进”)?定义,即制定合适的标准来衡量业务与人:制定度量指标,制定度量维度,制定度量频次?度量,收集与加工数据,以最终以可视化的图表呈现衡量结果:收集数据,清洗数据,呈现数据?分析,对比衡量出的实际结果与预期的差距,并找到根因,提出解决根因的措施:表现差距,差距根本原因分析,解决措施?改进,尝试去落地解决问题的措施,之后观察数据的变化,以验证措施的有效性:验证落地
82、措施,验证效果,固定流程。中国企业软件研发管理白皮书研发管理数字化模型29容器云平台容器云平台是轻量 PaaS 平台的容器化实现,采用容器、容器调度编排、分布式等技术构建的云计算平台。容器云平台自下而上分别覆盖了云计算的 IaaS 层和 PaaS 层涉及的各类问题,包括资源调度、服务编排、应用部署、监控日志、配置管理、存储网络管理、安全等。重点实现应用开发、应用托管和应用运维的能力,使企业专注于业务逻辑开发,缩短业务迭代上线周期,优化资源利用率,提高服务响应效率。在数字化转型的过程中,大部分传统的企业已经实现了物理机虚拟化,虚拟化技术在某种程度上减少了运行的复杂度,提高了资源利用率。但是,这仅
83、仅是针对 IaaS 级别的基础架构。商业应用的研究和开发仍有许多挑战:?业务应用的稳定性低、响应速度慢、业务过程复杂等会给用户带来不良的用户体验?业务应用的规模庞大复杂,各组件之间的耦合程度较高;大规模的部署架构导致应用程序的开发、测试、发布和更新变得更加复杂,从而导致了商业升级的中断和部署费用的增长?面对互联网的竞争加剧,业务部门的需求不断改变,同时开发部门的软件交付周期也在不断缩短。但是,由于研发工作量大,研发周期长,很难快速响应市场变化?基础设施不完善,缺少支持网络快速更新的云计算环境,资源配置效率低下,生产环境缺少网络监测手段等。容器可以封装业务应用的整个运行环境,容器镜像可实现应用交
84、付的一致性和标准化,可以很好地解决业务应用中研发面临的挑战,所以传统企业的业务应用开始容器化。容器云平台的建设要与底层基础设施交互,支持顶层业务应用,涉及面和覆盖面比较广,因此需要企业根据自身需求分阶段进行。中国企业软件研发管理白皮书研发管理数字化模型30(一)端到端的需求生命周期管理(二)项目管理统筹研发全过程(三)自动化提升企业组织效能(四)知识经验沉淀为过程资产(五)有度量才有针对性的改进(六)多工具集成适配大型团队第三章研发管理数字化平台的核心能力导论“工欲善其事,必先利其器。“研发管理数字化模型提供了整体思路和框架,通过四大实践领域的改进、效能维度的衡量,建立实现商业目标的路径。在践
85、行研发管理的变革方案时,企业组织需要在完成精益、敏捷、DevOps 等先进理念的学习后,结合自身痛点以及内部业务模型、组织模型、应用模型的思考,完成自上而下的软件工程认知升级;然后通过一站式的系统协作,将最佳实践落入日常工作中。这就要求企业级研发管理平台需具备六大核心能力,分别是:“端到端的需求生命周期管理”“项目管理统筹研发全过程”“自动化提升企业组织效能”“知识经验沉淀为过程资产”“有度量才有针对性的改进”和“多工具集成适配大型团队”。这六大核心能力构成了数字化的研发管理平台,覆盖软件研发的全过程,使企业组织重构端到端的研发协同工作,不受限于单点工具的能力,打通研发数据链路,持续改进研发效
86、能,实现企业的数字化目标。(一)端到端的需求生命周期管理需求生命周期是需求从端到端的完整过程,贯穿需求提出、需求分析、需求池管理、需求规划、需求设计、需求实现、功能交付等关键环节。产品生命周期中,需求生命周期管理有至关重要的作用,影响着产品战略、产品质量、用户满意度等关键目标达成。需求是桥梁,将产研团队与企业目标对齐企业需要通过产品和服务来获取市场的认可。面对多变的市场环境与复杂的业务诉求,企业需要适应性地制定战略,以便抓住机会或者规避风险。但产品研发团队的工作如何跟随组织的目标变化而调整,以及怎样将资源和研发力量集中到新的目标上、保证目标达成,一直是产研领域的难题。这个问题在大规模企业中尤为
87、凸显,具体表现为公司战略目标与产研团队的实际工作计划脱节,导致目标进度落后,甚至错失市场机会。当企业将目标自上而下地拆解,并将产研需求与具体目标进行层级关联,进而管理好这些与目标对齐的需求工作流,如图 3.1.1 所示 在后续规划变更时就能保持产研工作和企业目标的专注度,以确保产品增量能助力企业目标达成。中国企业软件研发管理白皮书研发管理数字化平台的核心能力33需求创建需求审批需求确认需求设计需求规划研发交付需求上线业务需求工作流需求创建待规划分析及评审开发测试验收试点上线上线产研侧需求工作流评审不通过打回评审通过提测测试通过验收通过上线自动更新状态创建进行中完成研发子任务工作流自动更新状态自
88、动更新状态自动更新状态图 3.1.1-需求管理工作流对齐产研团队与企业目标结构化、高还原的需求,带来高质量的交付需求信息结构化,告别一句话的需求 需求信息至关重要。它影响着需求分析过程、产品设计过程,和研发过程的风险管理。在组织层面规范好需求的各类关键信息,有利于产品经理对需求池的统一维护。同时,一致的信息结构有利于团队中不同部门、不同角色的成员在沟通协作中快速达成共识,减少重新学习或者交接的理解成本,降低误读与歧义的发生概率。管理需求上下文,连接功能与用户诉求高质量产品的一个重要标志是功能的有效性,体现在产品功能能切实解决客户特定场景的需求。功能的有效性非常依赖在需求分析和产品设计环节中对用
89、户场景、使用背景、使用者角色等关键信息的追溯和分析。这些信息可以帮助产品经理快速还原用户遇到问题的现场,了解用户动机,从而设计出更有效的产品功能来解决用户的实际问题。需求信息规范示例如图 3.1.2 所示。需求信息规范示例关键信息原始反馈内容需求描述需求背景关键角色需求类型来源客户优先级预估规模需求价值反馈次数规范(来自用户/客户原始的反馈文本)以用户故事格式描述业务背景、行业背景反馈者角色、上游业务流程角色、下游业务流程角色性能问题、体验问题、新功能需求反馈者 ID/姓名、客户名称MoSCoW、WSJF 等优先级A、B、C、D结合业务目标阐述正整数图 3.1.2-需求信息规范示例中国企业软件
90、研发管理白皮书研发管理数字化平台的核心能力34量化需求的价值和规模,进行合理的研发规划需求价值为导向,合理规划客户对产品的诉求是无穷无尽的,需求背后有着不同的利益相关者,产品经理需要基于需求信息的定义和管理综合考虑,以可量化的方式衡量优先级,然后从需求池中选择需求规划到下一个研发周期中。被量化后,需求的综合价值才能得以体现,才能在多种需求来源、利益相关方复杂的情况下,实现以需求价值为导向的合理规划。提高按时交付率,规避风险研发团队无法按时交付的一个重要的原因,是对需要实现的需求规模没有客观的认知。矛盾的是,无法为了规避风险而提前对需求池中所有的需求都进行完整的产品设计。因而产品经理可以维护好需
91、求的实现思路、影响范围、风险等详细信息,作为判断依据提供给研发工程师。这种基于详细需求信息的规模预估,有利于进行更客观的工作量评估,从而合理规划规避风险。同时,建立合理统一的需求结构,可以更好地帮助量化需求规模,促进各角色协作分工,如图 3.1.3 所示。业务人员产品经理客户/用户交付团队业务需求池产品/项目需求池 1产品/项目需求池 2需求提出待规划未开始进行中已完成业务人员客户/用户产品经理工程师工程师工程师角色角色角色活动活动交付物交付物创建产品需求创建产品需求BRDPRD测试报告验收测试报告上线记录需求分析产品设计评审交互设计评审技术方案评审业务可行性分析技术可行性分析拆分研发任务研发
92、任务排期需求拆分需求排期编码单测/扫描代码评审冒烟测试功能测试性能测试安全测试UAT 测试更新需求状态更新需求状态需求设计分析及评审需求评审就绪需求规划开发需求实现测试需求验收完成需求上线业务需求产品需求产品需求业务需求产品需求业务子需求前端任务业务子需求后端任务业务人员产品经理业务负责人研发负责人研发团队研发负责人产品经理研发团队研发团队研发团队业务人员研发团队研发团队拆分业务需求产品需求缺陷修复用户反馈技术改进风险处理状态同步状态同步状态同步拆分关联拆分拆分1.各视角关注各自的价值流2.双向自动联动,减少人工操作,提升数据准确性(通过工具的自动化能力,保证状态的实时更新)3.拉通业务侧与产
93、研侧图 3.1.3-建立统一的需求结构,促进高效的分工协作中国企业软件研发管理白皮书研发管理数字化平台的核心能力35主动建立需求感知,提升用户满意度需求不但要被产研实现,还要被用户看见用户从需求提出到使用新功能解决问题,往往因存在周期过长而导致满意度下降。除了关注产研效率,另一个关键点是建立完整的需求生命周期管理流程,功能上线时即可触达原始需要这个功能的用户。此外,主动告知用户新功能与用户被动发现新功能,前者对用户满意度产生更为积极的影响。如图 3.1.4 所示,在需求生命周期管理中形成“用户 反馈 需求管理 功能发布 用户”的完整闭环,将有利于提高产品从端到端的用户满意度。企业目标战略收集反
94、馈,主动建立需求感知研发规划与需求实现需求管理生命周期管理已收集、需求分析、是否归档、设计中、是否已发布等状态的持续跟进需求信息规范记录需求来源,并且为不同角色提供必要的上下文信息产研团队与企业目标对齐功能交付通过用户反馈挖掘产品需求,建立用户满意度的正向循环图 3.1.4-端到端的需求生命周期管理(二)项目管理统筹研发全过程产品研发过程不仅指技术研发,还包括产品从概念产生到需求分析、产品设计、研发测试、发布部署、运营维护等整个产品生命周期。围绕产品上线和商业目标,产研团队不仅需要完成产品的定义和实现,还需要解决产品前期规划、研发过程监控、研发资源成本等一系列生产周期中的问题,采用项目管理的方
95、式,可以帮助研发团队更有效地管理产品研发过程。相比于一般项目管理,研发型项目管理面临更多的问题和挑战,具体表现为:(一)需求的不确定性。由于某些市场(尤其在 ToC 赛道)需求的不确定性和日益激烈的竞争环境,导致产品方向和商业化策略存在变数,因此产研团队需要在新产品研发的启动和规划阶段进行充分的市场预测和可行性分。