第4章 研发能力及其管理
通过业务分层进行复杂业务层级间解耦,通过架构设计的进一步解耦形成产品级可复用的公共平台以及一系列的组件。尽量标准化、通用化形成CBB与器件优选库,以期最大限度地在全公司研发范围内被推广复用,并以此成为基于结构化流程的异步开发的基础:可复用的产品平台和标准化的软硬件组件部件与构件CBB。异步开发可以大大减少开发工作量,缩短开发时间,降低开发成本和难度,同时提升开发质量和效率,并且以上各指标的改善是全业务流程的(IPD、LTC、ITR)和产品全生命周期的。基于架构设计之下的各交付件(平台、组件、构件CBB)形式的封装,不仅有极大的商业价值,而且实现了信息安全的诉求,同时还极大地方便了各研发团队的协同和项目管理。通过在研发内推行CMM,用过程的规范性保障软件开发的质量,同时构建敏捷工程能力,实现价值快速闭环。同时,通过内外部开源,减少软件重复开发,提升研发效率,以及快速开发有竞争力的算法,提升产品的竞争力。
本章描述支撑IPD的研发业务架构与策略以及产品开发模式和研发各主要能力要素,包括业务分层策略、异步开发模式、架构与设计、平台化战略及其价值、CBB与优选器件库、开源、软件工程和研发能力管理体系等。
4.1 业务分层与异步开发
业务分层是按业务类型和价值链关系划分的层次分类,是管理业务的基础,不同层次交付的开发将按照独立的、有竞争力的、面向客户的业务来组织、管理和考核。异步开发是用来支持各业务分层独立规划和开发的重要方法,是支持各业务分层的产品和技术进行独立的规划与开发的原则和方法。
通过业务分层把公司业务分类,每个层次有统一的管理模式,每个业务层次具有独立的开发流程,各业务层次相对独立运作并互相支撑,各个层次之间的交付责任、依赖关系明确并清晰。每个业务层次有执行者、管理者和决策者,分层管理决策,各层级异步开发,从而使公司管理更加有序、高效。通过异步开发的研发模式,在产品与技术规划过程中识别产品开发所基于的平台和能够共享的基础模块来达成提高技术共享,减少开发浪费、缩短产品开发周期以及提升产品质量的目的。
4.1.1 业务分层是管理业务及结构化流程的基础
业务分层是按业务类别和价值链划分的层次分类。直接面向外部客户销售的,且承担盈亏责任的业务层次,叫外部业务分层;面向内部应用的业务层次用于支撑更高的内部或外部层次,叫内部业务分层。在业务分层之中,不同层次交付的开发将按照独立的、有竞争力的、面向客户的业务来组织、管理和考核;同时每个层次都可以直接面向市场和客户进行销售。每个内部业务分层的运作支撑着上一个更高的内部或外部层次的运作,直至支撑上面某个外部业务分层在市场上销售获得收益。
华为标准的业务分层模型如图4-1所示,从上到下依次划分为集成服务、解决方案、产品、平台、子系统和技术六个层次。基于华为公司战略,产品以上层次为外部层次,面向市场和客户进行销售。
图4-1 业务分层模型
业务分层使得各层次业务独立运作,拥有清晰的管理模式,可以充分寻求各个业务层次的商业和市场机会,充分发挥智力资产的获利能力,谋求公司利润最大化。对于功能复杂而且集中的大型系统及其管理体系来说,业务分层可以降低系统和组织的复杂度,使得各个要素分散化、专门化并且有清晰的界限,从而有效提升公司业务管理能力。所有业务层次都要根据其业务模型对竞争能力和获利能力进行评估,逐渐培养出在领先的地方投资、在不见优势的地方进行采购的观念。因此,业务分层是管理业务的基础。
每个业务层次都有独特的业务特点,具有各自的业务模式、流程、组织及管理方式,使得各业务层次模块可以独立规划和开发,从而及时地、具有竞争力地交付给相邻的上层。因此,业务分层是结构化流程和异步开发的基础。
在华为,每个外部业务分层都完全采用MM流程和IPD流程,同时还可以支持与华为之外的产品与解决方案进行集成,使得公司能向客户提供最优的解决方案和服务。内部业务层次采用技术管理体系进行管理。
业务分层是缩短产品开发周期、快速响应客户需求的重要业务管理机制。如果市场管理没做好、需求管理没做好、业务分层没做好,要想产品开发快速响应客户需求,完全满足客户的需求,是很难想象的。
4.1.2 异步开发是提升研发效率的关键
异步开发的目的就是使各业务层次能够异步规划和开发,因此要求平台和产品在需要时能够及时获得下层的子系统和技术。异步开发的好坏可以用平台和产品受下层子系统与技术的制约程度来衡量。制约程度有如下三种级别:上层不受制于下层;上层驱动下层;上层受制于下层。
异步开发能够大大缩短产品开发周期和上市时间,促进开发共享,提高生产率。实施异步开发前后对比如表4-1所示。
表4-1 异步开发实施前后的对照表
| 分 类 | 实 施 前 | 实 施 后 |
| 需求/路标 | 需求没有按优先级排序,市场参与较少 | 统一的版本规划方法,通过市场的参与对需求进行排序,制定出各层次的路标及支撑关系 |
| 依赖关系 | 技术、ASIC、预研、平台、产品等因素之间的关系混乱,对产品的支撑不足 | 清晰的分层和路标,规划出相互支撑关系,通过依赖关系管理,提供对产品的良好支持 |
| 管理效率 | 产品之间的共享不足,尤其是跨产品线的共享 | 基于架构的分层和组件划分,对组件在产品线和公司两个层面进行整合,通过合适的共享来降低公司的开发成本 |
| 难于实现异地开发和管理 | 良好的分层和组件式开发管理,使得异地开发非常容易 | |
| 业务结果 | 产品交付周期长,进度和质量无法保证 | 通过技术的异步开发和“版本火车”的规划方法,能够大大缩短产品交付周期,减少变更,从而使进度和质量得到保证 |
推行异步开发,要确保每个业务分层在自身业务模型的驱动下,规划和开发本层次产品的同时考虑其他分层。这种考虑是通过技术创新速度和及时向市场交付有竞争力产品的需求来加以均衡的。
异步开发模式包括很多关键要素,只有这些要素很好地落实和实施并相互积极地作用,异步开发模式才能起到缩短开发周期,提高共享,减少浪费的目的。为了有效地实施异步开发模式,除对产品开发业务进行有效的业务分层以外,还需要对很多关键的产品开发要素进行变革。这些要素包括系统参考模型、平台参考模型、技术路标、版本火车、共用基础模块、技术管理体系、核心能力中心等。只有很好地管理好这些要素,并取得成效,整个异步开发才能取得效果。
异步开发的相关要素及相互关系参见图4-2。
图4-2 异步开发框架
系统参考模型和平台参考模型在产品和技术开发前提供对系统的整体视图和设计约束,为模块的划分提供了标准,从而保证产品和技术开发的独立性,并为技术共享打下基础。
系统参考模型是针对系统的一个逻辑上的描述,是一个逻辑模型,它描述了系统所必需的功能组成及功能之间的逻辑关系。系统参考模型一般从概念、逻辑及功能角度来考虑问题,不涉及具体的技术和物理实体。系统参考模型通常是业界达成一致的认识,在一定程度上起到参考标准的作用,它能够指导对系统的功能设计,系统参考模型对平台参考模型的设计具有指导意义。
对系统的逻辑组成有了一个清晰的认识以后,就需要解决如何将复杂的产品开发分解成易于管理、相互配合又保持一定独立性的模块或技术的问题。易于管理就要求接口要尽可能简单,相互配合又保持一定的独立性就要求接口要标准化。架构是系统最高层次的设计,指导和约束系统下层的设计。平台是指基于领域内统一架构下的一组公共组件,可由多个子系统有机集成,具有自我完善、深度满足产品业务动态需求的能力。这些公共组件再加上产品特性,能快速形成产品。
技术规划识别CBB和平台,基于模型和架构进行模块划分,通过遵循高内聚、低耦合的原则来保证各模块开发的独立性,划分出来的各业务层次模块都可以独立地进行规划,确定每个模块和技术的路标。要保持产品的竞争力,必须保证产品所使用的技术具有一定的先进性,这需要针对每项技术(包括外购件)制定发展规划,以保持该技术在规格、性能、成本等方面跟得上技术发展的趋势。
虽然各产品的特性不同,有为特殊功能服务的专门设计,但是重用和共享的机会还是很多的。基础模块就是某一架构中的器件或器件组,与其他基础模块装配在一起组成一个完整的、适于销售的产品。供多个产品或模块使用的基础模块叫共用基础模块,即CBB。基础模块只有遵守平台参考模型,才可能在受该平台参考模型约束的不同的平台和产品间进行重用。
版本火车(Release Train)为产品路标及相应的依赖关系管理、产品和技术开发过程中的版本管理提供了手段和方法,它描述了各个模块/技术与产品之间的集成、依赖关系,使得各层的版本规划相互配合;“版本火车”意味着按计划发布,没有延迟。
异步开发的最终落实需要有相应的管理体系和组织来支撑。异步开发的基本理念就在于将产品的开发分解成不同层次的模块/技术,产品的三层由IRB/IPMT/PDT三层团队进行支撑。由于技术开发适当的提前于产品的需要,所以,技术管理体系中的相关团队就是负责完成这些工作或对这些工作的结果进行评审/决策的责任团队。核心能力中心就是解决CBB的开发和管理的独立资源,包括技术管理组(TMG(1))、采购专家团(CEG(2))和软硬件CBB开发团队(一般由TDT来执行)。
在华为微波产品中,ODU(Out Door Unit,室外单元)和中射频芯片不是传送网产品线自己做的,ODU的开发团队是无线产品线的开发团队,中射频芯片的开发团队也是无线产品线的开发团队。华为已经打破了要做一种产品就必须在这个产品线做成一套解决方案的开发模式,充分利用公司的核心能力中心来提供相应的部件和能力,这就是华为公司的产品开发新模式。
业务分层促进技术共享,为异步/异地开发建立基础。产品开发将按照独立的、有竞争力的、有利于信息安全的和面向客户的业务(关键平台、关键技术、CBB、关键芯片/器件)进行组织、管理和衡量,技术上构筑信息安全,保障业务连续性。
徐直军指出,基于IPD最核心的观点,是我们把很多基础技术、基础平台、基础组件、基础构件都开发好了。我们一旦发现了某一市场需求,就会通过这个需求确定产品形态,就可以利用公司的平台组件、构件,把这种产品百分之六七十的工作量快速做完,剩下的就只有百分之三四十的工作量,产品自然而然就可以快速推向市场,开发周期很短。如果华为公司长期不在平台、构件、组件和总体技术体系建设上下功夫,不明确相关的资源投入比例,公司会丧失竞争力,会拉大与竞争对手的差距,是不可能实现同竞争对手同步推出产品的目标的。
4.1.3 云化和云服务化是业务分层与异步开发的发展
人类社会的进步势不可挡,如今,人类正在迈入以“万物感知、万物互联、万物智能”为特征的智能社会。网络这一智能社会的基石,如同水和空气,已成为人们生活的必需品,人们对网络体验的要求日益提升,对网络覆盖的深度和广度的需求超越想象。网络对丰富人们的生活、帮助人类探索未知领域,将发挥亘古未有的巨大作用。
全球运营商的网络部署长期以技术驱动为主导,标准化的技术演进路线可以有效支撑确定性业务的价值实现。然而,随着未来业务发展方向的极大不确定性,过去的网络部署逻辑已被彻底打破。只有以“商业价值实现”为核心规划未来网络,才能在不确定的未来占据先机。云化网络将是运营商商业成功、应对不确定性未来的关键,其本质是以商业价值为驱动,通过云的理念和技术重构电信网络,让面向未来的网络具备敏捷、智能、高效、开放的特征。与此同时,云化网络将变革传统烟囱式的建网和维护模式,网络规划、部署、优化及运维,实现端到端打通及全自动化,最大化提升网络运营效率,降低运营成本。
全面云化战略的核心是从设备、网络、业务、运营四个方面全面升级基础网络,带来硬件资源池化、软件架构全分布化、全自动化的系统优势。在该战略下,整体网络将彻底转型为“以数据中心为中心”的架构,所有的网络功能和业务应用都运行在云数据中心上。为了达成这四个方面的全面升级,华为构筑了从传统架构向原生云的逐步演化过程,重新定义和扩展业务分层的含义。
网络云化的目标就是要在确定的网络连接层与不确定的业务应用层之间构筑一个云化的智能适配层,让基础网络能够在商业价值的牵引下与应用相互协同配合,支撑传统运营商转型并最终获得成功。标准连接层,即大带宽、低时延的泛连接网络。智能的适配层,提供开放的网络能力,建立标准连接层以屏蔽各种技术标准的不稳定性,从而使能敏捷创新。灵活的应用层、数字化业务与应用生态系统,支持敏捷创新。
借鉴互联网的XaaS商业模式,以Cloud Native(原生云)为指导思想构筑各层业务的实现。Cloud Native是在云环境下构建、运行、管理软件的新的系统实践范式,充分利用云基础设施与平台服务(IaaS/PaaS),适应云环境,具备(微)服务化、弹性伸缩、分布式、高可用、多租户、自动化等关键特征的实践。
图4-3 云计算服务模型
华为SoftCOM新一代网络架构是真正用Cloud Native的技术架构和理念来重构电信网络,实现电信网络的硬件资源池化、软件全分布化、运行自动化,提升业务创新、业务部署、业务发放等效率,实现用户的ROADS(3)体验。
4.2 架构与设计
架构是一个系统的总体设计,它描述了系统是由哪些元素组成的,这些元素之间的关系,这些元素的外部可见特征,以及这些元素为何如此划分和关联的设计思想(如高内聚、低耦合的划分原则,接口的标准化)。这些划分出来的元素通常叫模块,架构最重要的作用就是将这些模块之间的接口标准化,明确这些模块的规格。架构是各个模块独立的规划和开发的基础,好的架构使得这些模块可以灵活配置实现系统可裁剪。更重要的是,好的架构使得各个模块可以独自自我完善、独立升级换代,使系统易于扩展演进,不断迭代进化。
架构也是提高复用度的最核心的基础。架构决定了平台和CBB,产品或平台好与不好,全生命周期质量成本规格的优势,与架构关系非常大。架构及其平台,对同一类系列产品(如无线产品)的开发有很大价值,它决定了这一系列产品整个生命周期内的整体竞争力。
架构是系统最高层次的设计,它指导和约束系统下层的设计。高层设计不好,基础不牢,基因不好,后续的一切补救将会无济于事。
4.2.1 架构与设计是构建产品竞争力的源头
在架构与设计中构建技术、质量、成本、运维等优势,是华为产品与解决方案竞争力的基础。华为在架构与设计过程中,以欧洲市场的高要求作为产品发展路标,构筑安全可靠、绿色环保、用户极致体验、生态开放等方面的竞争优势;以印度市场低价格作为成本牵引,构筑研发、供应(制造)、销售、交付、运维等端到端成本优势。
华为要求高端产品一定要通过架构与设计,保障安全可靠稳定运行,这是华为公司最主要的责任。这里讲的“安全”与“网络安全”不一样,需要能保证通信网络稳定运行。因为往往一瞬间的失误,就可能引爆一颗“原子弹”,然后就“粉身碎骨”了。华为不会为了领先谁而加班加点,因为即使真领先了,一旦出了可靠性问题垮下来,后退就是三年。
“绿色环保、节能减排”是华为公司作为一个企业履行社会责任的核心要素之一,也是产品与解决方案核心竞争力的要素之一。在架构与设计中,节能减排不仅要比较单设备能耗,还要从解决方案层面考虑,促进解决方案节能减排能力的提升。规划节能减排战略目标要综合考虑三方面因素:承接客户未来的降耗目标,相对竞争对手的指标领先幅度,基于自身能力的指标改进幅度。
产品的可供应性关键在于产品架构与设计。在产品架构与设计过程中需要与供应链体系紧密协作,在客户个性化、多样化需求和供应链标准化、规模效益之间取得平衡,有效开展产品可供应性设计和供应方案设计,实现ITO(4)最优。
技术的发展和器件的更新换代越来越频繁。例如,存储颗粒变化非常快,华为的产品只要使用一颗存储颗粒,就必须一直使用这个存储颗粒,但是一段时间后存储厂商不再生产,就会带来供货风险和成本增加。因此,在架构与设计时必须不断考虑加强板级模块化。板级模块化,就是把一些基本上不用变动的器件设计在主板上,把变化比较频繁的东西做成小模块,把这个小模块做成可贴的,改动就只需针对小模块。例如华为早期的产品CDMA450,设计专家就充分考虑了器件的生命周期,把高通芯片做成一个小模块,再把小模块贴到主板上。这样虽然高通芯片年年变,但只需改变这个小模块。
如果产品还达不到绝对的稳定,则一定要通过架构与设计提升产品的可服务性(或可维护性),使产品的安装和维护简单、便捷。让产品具备客户、维护人员或合作方人员能“自安装、自维护”的能力,是华为对架构与设计的战略要求。
架构与设计要能保证通过远程交付、远程维护、远程故障处理来提升效率、降低成本。市场一线只需要保留少量与客户沟通方案和计划的专家,工程实施更多通过GTAC(5)/TAC远程指导现场工程师完成。要保证按资料能实现安装、远程数据配置和网络调整、软件调测、软件升级、软件打补丁、日常维护和问题处理。尽可能把现场安装要做的工作在生产线做完,使得现场安装简单、简单、再简单。
对中低端产品,需要通过架构与设计做到像德国和日本家用电器那样,在使用寿命周期内永不维修。松下用较低端的零部件组装了全世界最好的电视机,在设计上有很多优秀理念。做到硬件不怎么维修,降低维护成本,就是很大的成功。软件升级则要向互联网学习,在网上能自助升级,这样就使公司内部管理得到很大程度的简化。
很多运营商客户特别关注OPEX(6),OPEX实质就是可服务性。如果产品的可服务性做不好,运营商的OPEX就下不来。可服务性已经成为市场准入的一个基本要求。
华为正是通过可靠性、节能减排、可供应性、可服务性等方面的架构与设计,构筑起可靠、环保,以及低供应(制造)成本、低服务成本、低运行成本的产品综合竞争优势。
4.2.2 架构与设计是提升研发效率的关键
产品不仅要比拼功能、性能等是否完善、是否领先,还要看能以多快的速度推向市场,内部浪费能否降到最低。因此,研发效率也是产品成功必须考虑的一个重要因素。
华为历史上有不少产品曾经陷入了通过不断加班来响应客户需求的恶性循环。很多团队一直认为是由于客户需求太多、变化太快,所以加班多。但是也有很多产品加班不多,也能从容应对。深入分析才发现,这些产品的架构通常都更加合理:内部各小团队开发范围和职责明确,相互依赖比较少、联动情况少,系统容易扩展,适应客户新增需求的能力就强,应对客户需求变化的能力也会很强。而加班多的产品,往往忙于尽快着手开发需求,架构考虑不足,修改一个地方都需要多个团队讨论确认,逐渐形成一种恶性循环。要从恶性加班问题中真正走出来,必须从架构与设计开始,提升架构与设计的能力。
产品系统是活的、生长的,不是一次性交付,架构也是在持续演进的。不断增加新特性、新功能,不断更换开发维护人员,很容易导致系统架构逐渐“腐化”,耦合越来越严重。要保证产品有持续的生命力,必须不断开展架构解耦。
在2007年之前,华为无线网络产品线有GSM、UMTS(7)、CDMA(8)、LTE(9)多个制式的产品并行演进,相互之间缺少共享,开发效率低。后来组织专家进行多模共主控架构设计:一块主控板支撑GSM、UMTS、CDMA、LTE 4种制式,消除不同制式间的耦合,支持各制式独立演进、共基带、小基站多形态。该设计大大提高了开发效率和产品稳定性,推出产品版本的周期缩短了4个月。并且通过实现基站中设备管理、传输、运维子系统的架构归一,为客户提供了各制式基站运维的一致体验,典型场景下运维效率提升30%以上。此外还减少了66%的单板种类,显著降低了生产、发货、备件、安装、维护等端到端成本。最终多模共主控架构设计帮助无线SingleRAN产品领先竞争对手两年推向市场。
接入网家庭终端产品为了精简内部研发人力,对原来4个产品的软件进行了收编归一,同时采用组件化架构工程方法,对系统内各部分进行合理解耦,最终不仅减少了开发人力,而且交付市场的时间缩短了三分之一。
由此可见,要持续提升研发效率,关键要在架构与设计上下功夫,要通过架构的不断优化来提升效率、提升产品快速响应客户的能力。华为通过多年摸索、不断总结,把产品系统架构持续优化的经验概括为:产品与网管解耦、产品与平台解耦、软硬件解耦、模块与模块解耦,以及标准化、归一化、通用化、简单化。
4.2.3 架构与设计是平台战略的基础
华为能够后来者居上,走上业界一流的道路,靠的就是平台战略,平台战略的基础是架构与设计。华为采用领域工程模型和应用工程模型构建和应用平台。在领域工程活动中,通过架构与设计,持续构建可重用基础平台(包括基础组件、基础构件等)。在应用工程活动中,利用已有的平台,快速完成产品大部分开发工作,极大地缩短开发周期,快速推向市场。
平台的构建并不是一件容易的事,需要大量系统、深入的架构与设计工作。首先,要在对领域中若干典型产品的需求进行分析的基础上,考虑预期的需求变化、技术演化、限制条件等因素,确定恰当的领域范围,识别领域的共性特征和变化特征,获取一组具有足够可复用性的领域需求,并对其抽象形成领域分析模型。然后以领域分析模型为基础,考虑产品可能具有的质量属性要求和外部环境约束,建立符合领域需求、适应领域变化性的领域架构。再以领域分析模型和领域架构为基础,进行平台的识别、构建和管理。在应用平台的产品开发过程中,还需要将不能满足的产品需求返回给领域工程,通过进一步的架构与设计不断完善平台。
华为建立了一个强大的总体技术体系对架构与设计进行把关,确保构建出的平台符合战略布局,满足产品应用要求。通过公司、产品线等层面持续的架构与设计,华为所有的产品和解决方案,越来越向几个平台集中。这些平台包括关键技术、基础软件、关键芯片、关键器件等。
总之,没有踏踏实实的架构与设计,平台战略只是浮云,也无法真正带来产品的商业成功。
4.2.4 架构与设计必须以客户需求为导向,持续创新
主宰世界的是客户需求。这个世界需要的不一定是多么先进的技术,而是真正能满足客户需求的产品和解决方案,并且客户需要的大多是最简单的功能。
研发体系大多数人都是工程师,都渴望把技术做得很好,认为把技术做好才能体现自身的价值。客户不怎么用但技术很尖端的需求,却耗费很大的精力和成本做到最好,研发工程师容易出现这种倾向,必须改变思维方式,做工程商人,多一些商人味道。
架构与设计是研发的源头环节,在产品架构与设计上,需要坚持客户需求导向优先于技术导向,从一开始就从客户视角审视设计出的系统是否简单易用、稳定可靠。
为了更好地满足客户需求,必须在深刻理解客户需求的前提下,对架构与设计进行持续创新。积极吸收别人的先进经验,并充分应用公司内部和外部的先进成果,才会有持续竞争力。
在架构与设计过程中,有较大比例的创新活动。创新就有风险,就有可能犯错误。鼓励创新就要允许犯错。宽容失败、宽容失败的人,才有明天和光辉的未来。
华为强调以客户为中心,并不意味着从一个极端走向另一个极端,会忽略以技术为中心的超前战略。以客户为中心和以技术为中心,两者是“拧麻花”,一个以客户需求为中心,做产品;一个以技术为中心,做未来架构性的平台。
4.2.5 架构与设计中构筑DFX竞争力
产品要有竞争力,不仅要满足客户的功能性需求,还需要满足客户感知的、内部效率所需的质量属性需求。产品满足质量属性需求的能力在华为公司被称为DFX(Design For X)能力。DFX包括:可靠性、节能减排、归一化、可服务性、可安装性、可制造性、可维修性、可采购性、可供应性、可测试性、可修改性/可扩展性、成本、性能、安全性。
产品是否能够呈现期望的或被要求的质量属性,本质上是由架构来决定的。华为制定了十大核心原则来指导架构与设计:
(1)全面解耦原则:对业务进行抽象建模,业务数据与业务逻辑解耦,软件和硬件解耦,平台和产品解耦,系统各部件间解耦。
(2)服务化、组件化原则:以服务、数据为中心,构建服务化、组件化架构,具备灵活、按需组合的能力。
(3)接口隔离及服务自治原则:通过接口隐藏服务、组件的实现细节,服务、组件间只能通过接口进行交互,接口契约化、标准化,跨版本兼容;服务、组件可独立发展、独立发布、独立升级;服务自治,可视、可管、可控、可测、可维、故障自愈。
(4)弹性伸缩原则:构建全分布式云化架构,或借鉴云化架构思想,每种服务具备横向扩展能力,支持按需使用、自动弹性伸缩,可动态替换、灵活部署,支撑高性能、高吞吐量、高并发、高可用业务场景。
(5)安全可靠环保原则:构建最小权限、纵深防御、最小公共化、权限分离、不轻信、开放设计、完全仲裁、失效安全、保护薄弱环节、安全机制经济性、用户接受度以及加强隐私保护的安全体系,确保系统、网络和数据的机密性、完整性、可用性、可追溯;以业务系统零故障为导向,按需构筑分层分级的可靠性,通过故障的预测、预防、快速恢复,避免故障的发生;系统资源使用效率最大化,实现节能、节地、节材、环保。
(6)用户体验和自动化运维原则:面向业务获取和使用场景,构建实时、按需、在线、自助、社区化、方便易用的用户体验;支持远程、自动、智能、安全、高效地完成网规/网设、安装、部署、调测、验收、扩缩容、软件升级、打补丁、日常维护、问题处理。
(7)开放生态原则:面向生态场景,按需开放平台设施、中间件、数据、业务逻辑、UI等能力,构建开放生态,支持分层、远程、自动、自助、简单高效地完成定制、集成、第三方应用开发。
(8)高效开发原则:创建支持迭代、增量、持续交付的架构,支持部件独立开发、自动化编译构建、测试、集成验证,并易于高效修改和持续优化;支持开发组织小型化、扁平化,支持小团队独立高效并行开发。
(9)柔性供应制造原则:模块化设计,模块、物料归一化、标准化,支持自动化、数字化、智能化、随需应变的柔性制造。
(10)持续演进原则:架构并非一蹴而就,需要有效地管理架构需求,持续构建和发展架构,适应业务需求变化,适时引入业界最佳实践,及时重构,确保架构生命力和竞争力。
为体现对DFX负责的导向,华为将DFX结果作为架构与设计人员年度绩效考评的直接依据,根据DFX结果可以对架构与设计人员考评行使一票否决权。此外,华为还建立了设计实名制,强化架构与设计人员对产品设计的全生命周期责任。
华为通过制定架构与设计原则、绩效考评、设计实名制等手段,有效地保障了在架构与设计中就构筑起产品的DFX竞争力。
4.2.6 架构和设计要引入“蓝军”机制
“蓝军”是基于现有标准、现有的协议,用新的、颠覆性的实现方式,实现架构和实现理念解决“红军”没有解决的问题。“蓝军”的方案,和“红军”的方案相比只有5%~10%的差异是没有价值的,至少要30%~50%以上。不是细枝末节的改进,必须是颠覆性的。“蓝军”的成功体现在:输出打败了“红军”的方案,使得最终“蓝军”的方案变成了“红军”的方案。
选择大的产品方案、大的架构和平台时,也需要引入这种“蓝军”机制:两个团队同时做一件事,各自从自己的视角出发,最后来一起PK,PK的结果就能够找到最能满足客户需求、最有竞争力的解决方案。当然也不否定个别天才一个人就能构建一个好的架构,但引入PK机制能让这些天才们发挥出更大价值、在更大的范围内做贡献。
华为公司的硬件平台之所以进步很快,是因为其中一个关键因素是在架构设计中执行了蓝军机制,每一个硬件平台架构都是经过多方碰撞、多方争吵、多方PK最终形成的。海思、中央硬件、产品、整机等都会参与进来,使得每一个硬件平台架构都吸收了大量人的思想和精华,最终形成了硬件平台的竞争力,进而支撑了产品在硬件上的竞争力。
朋友圈每日书籍免费分享微信shufoufou
任何技术争论的评价标准都应坚持客户需求导向,而不能以个人输赢、部门利益为导向。鼓励架构与设计专家在方案和技术选择上进行争论,而且要创造争论的环境。但争论最终基于两点,一要满足客户需求、实现客户价值;二要实现公司的商业价值。在组织内部需要创造一种保护机制,让“蓝军”有地位。“蓝军”可能胡说八道,敢想敢说敢干,博弈之后要给他们一些宽容,没人知道他们能不能走出一条路。三峡大坝的成功要肯定反对者的作用,虽然没有承认反对者,但设计上都按反对意见做了修改。成功的组织会肯定反对者的价值和作用,允许反对者的存在。
4.2.7 架构与设计,打造一支强大的队伍
架构与设计是产品开发全流程的源头,它通过十倍法则影响着下游各环节的效率、质量。一个成功的组织需要通过加强架构与设计体系队伍建设,保障设计投入,持续改进全流程质量和效率。
架构与设计管理部是本领域架构交付以及人员管理的责任主体,是系统设计、模块设计业务管理的责任主体,是系统工程师、设计师、模块设计师等技术人员通道管理的责任主体。架构与设计管理部承担架构与设计体系能力提升、质量效率提升等行业管理的责任。
架构与设计人员是产品研发团队中的核心人员,是确保产品竞争力的关键角色。通过建立明确的架构与设计人员的成长路径(通常是:普通开发人员→模块设计师或开发项目负责人→架构与设计人员),一方面指导和牵引研发人员成长为合格的架构与设计人员;另一方面指导和牵引架构与设计人员在实践中自我学习、自我提升、自我发展,提高面向客户和产品全流程的设计质量和水平,最终从设计源头提升产品竞争力。
华为明确了架构师、系统工程师、设计师、模块设计师角色并正式任命,架构师对产品领域和产品的架构及其全生命周期负责;系统工程师和设计师共同对产品全系统设计及其全生命周期负责;模块设计师对模块设计负责。通过建立架构设计、系统设计、模块设计三个层面的设计体系,在组织、运作上相互衔接,全面覆盖产品各层级设计业务。
架构与设计体系实施实名制,让设计得好的、使产品有竞争力的架构和设计师们事后真正得到认可。实名制最大的好处,是当产品在全球开疆拓土时,当产品体现出强竞争力时,能知道是哪个架构师做的架构、是哪个系统工程师带领团队做的设计。让大家知道成功的产品架构与设计是他们的功劳,从而给予他们肯定和回报。
未来的价值向软件和服务转型。需要分析ICT行业软件的特点,实事求是地构建基于ICT行业特点的软件架构与设计能力,加强对相关人才的培养。谷歌、苹果是凭什么成功的?凭的就是软件。华为也需要构筑一支强大的软件架构与设计队伍,加大软件技术和创新上的投入。
4.2.8 架构与设计的最终衡量标准是商业成功
任何先进的技术、产品和解决方案,只有转化为客户的商业成功才能产生价值。
——任正非
唯有帮助产品取得商业成功的架构与设计,才是有价值的。
从1998年开始,华为第一代HLR产品因为可靠性的问题,质量事故连续不断。当时HLR的整体架构是基于IBM和SUN的小型机,Windows和Solaris操作系统,SQL Server和Oracle的数据库……从硬件到软件,没有一样核心技术掌握在华为手里。由于没有统一平台和架构,产品版本又多又乱,所有的人都在忙:一半人在搞需求,一半人在处理事故。
为了扭转被动局面,HLR V9版本从2005年年底启动新架构预研,2008年年初规模销售,至2013年累计商用局点1100套以上,覆盖118个国家,278个运营商,服务用户达26亿人以上。该新架构版本自推出后,无业务中断大事故,稳定性、可靠性远超友商同类产品,业界竞争力排名第一,获得了客户和市场一线的高度认可。
HLR V9新架构通过商业成功,证明了架构与设计的成功。
因此,各级架构与设计组织需要从商业目标出发,梳理关键架构需求、明确架构目标,保证架构与设计能够最终支撑商业成功。
4.3 平台
平台是指基于领域内统一架构下的一组公共组件,可由多个子系统有机集成,具有自我完善、深度满足产品业务动态需求的能力。平台是架构的实现,可以提供基本的运行功能,在平台的公共组件上增加客户化的特性就能快速形成产品,满足外部客户化的需求。
从长远来看,产品间竞争的核心是平台的竞争。因此,企业需坚持平台战略,加大平台的投入,以开放合作心态和全球化视野进行技术布局,做好平台的架构,构筑平台的竞争力,支持产品生命周期的长期发展。
好的平台可以给产品带来质量好、成本低、效率高、交付周期短等优势。要实现这个目标,平台需具备良好的架构,支持产品业务持续演进。同时,平台需要标准化、通用化、简单化,以方便支持产品快速高效的集成与装配,使得平台在企业内部得到更好的共享与重用。
4.3.1 从长远来看,产品间的竞争归根结底在于基础平台的竞争
技术日益趋同,客户需求日益多样化,只有靠基础平台的支撑,才能更快速地满足新形势下的客户需求。从长远来看,产品间的竞争归根结底在于基础平台的竞争。
华为的研发策略是各产品线全面实施业务分层,形成公司级平台、领域内平台、产品集成开发的三层开发体系。这就使得所有的产品和解决方案,越来越向几个基础平台集中,只有基础平台在业界具有竞争力,才能够持续支撑产品长期发展和持续取得商业成功。
任正非指出:“我们要加大对平台的投入,构建明天的胜利,未来的竞争是平台竞争。运营商、企业和消费者解决方案都需要大的平台,我们有充足的利润,为什么不加大平台投入,超前竞争对手更多、更多……”
华为能够后来者居上,走上业界一流的道路,靠的就是平台战略。经过十多年的默默耕耘和艰辛努力,已经初步建成了有竞争力的软硬件平台、工程工艺能力、技术管理体系,打造了“百年教堂”的平台基础。
4.3.2 平台是成本、效率、质量以及快速响应客户需求的基础
企业实施平台战略可带来产品成本的大幅降低。随着公司产品销售规模的不断扩大及“厚平台、薄产品”的战略实施,公共平台和部件将得到越来越广泛地应用,其产生的价值越来越大,内部再持续地进行归一化管理,自然大幅降低了产品成本。
企业实施平台战略可带来研发效率高和交付周期短的红利。当市场一线发现了一个需求,研发通过这个需求确定产品形态,充分利用公司的平台组件和构件,很快就可以把这个产品百分之六七十的工作量做完,剩下的就只有百分之三四十的工作量,产品可以快速推向市场,满足客户的需求。
企业实施平台战略可提升产品质量。随着高质量的公共平台和部件的大量应用,自然提升了产品质量。平台战略的实施对平台、公共部件的质量也提出了更高的要求,如果是一件产品没有做好,其影响是局部的;如果负责平台建设的各业务领域有一处没有做好或所承担的行业管理没有做好,影响将是全局且深远的。平台部门肩负质量的责任十分重大,需特别重视过程质量控制以及上市上量的质量管理。
通过平台化、构件化的交付,降低研发成本,提高研发效率和产品质量,构筑信息安全,缩短产品上市周期,使得华为能以更低的运作成本更快地响应客户需求。
4.3.3 坚持平台战略,有前瞻性和持久地大规模投入
一件产品不能完全从零开始做起,要有丰富的平台支持,要有强大的工程工艺能力和技术管理体系支撑,使得产品的成本、质量能在一个很好的平台体系上得到实施。华为公司长期坚持平台战略,持久地大规模投入,研究适应客户的各种需求,把握住客户的可靠性、节能环保、网络安全、可服务性等各种关键要素,构筑了华为公司在新时期的竞争优势。
如果企业长期不在平台、构件、组件和总体技术体系建设上下功夫,不明确相关的资源投入比例,就会真正丧失竞争力,会拉大与竞争对手的差距,是不可能实现同竞争对手同步推出产品的目标的。所以要敢于投入,不敢用钱其实就是缺少对未来的战略,要抓住机会,就一定要加大对平台的投入,在平台建设上有更多的前瞻性,确保竞争优势,以构筑长期的胜利。同时要把平台交付件和芯片作为竞争的有效手段,摆脱低层次同质化竞争,真正在产品上拉开与竞争对手的差距,构建技术上的断裂点。如果与竞争对手功能上是一样的,设计上是一样的,产品拉不开差距,市场竞争白热化,成果和成绩一定会大打折扣。
企业要加大对平台的投入,适应未来的平台竞争,平台的技术规划体系要有前瞻性,要不断地往前走,提前规划和准备好产品和解决方案所需要的一切技术,这个技术是广义的,包括工程技术。然后把技术能力和工程能力构筑到平台上,使之成为产品和解决方案的真正竞争力。
早在2010年,任正非就指出:“未来五年数据流量可能会扩大75倍,那么原来的管道也会相应地扩大,未来数据管道直径不是长江而是太平洋,面对直径像太平洋一样粗的数据管道,如何建起一个平台来支撑这个模型?大家都想想看,这不就是我们的市场空间和机会吗?我们要抓住这个机会,就一定要加大对平台的投入,确保竞争优势。我们一定要在平台建设上有更多的前瞻性,以构筑长期的胜利。”
4.3.4 构建有竞争力的平台需要开放合作,全球布局,抢占制高点
为更好地满足客户需求,建设“百年教堂”,平台必须坚持开放与创新。一种不开放的文化,就不会努力地吸取别人的优点,是没有出路的。一个不开放的组织,会成为一潭僵水,也是没有出路的。一个封闭系统,能量会耗尽,一定要死亡的。在产品开发上,一定要建立一个开放的体系,尤其是硬件体系,要开放地吸收别人的好东西,要充分重用公司内部和外部的先进成果。
——任正非
2000年年初,华为用400万美元收购了一家美国濒于崩溃的小公司,从而在长距离光传输技术和商业竞争力上成为世界第一。从这个例子看到,要努力去吸收已经成功的人类文明,多吸收别人的一些先进成果,不要过分狭隘地进行自主创新,否则会减缓前进的速度。因此,一定要转变观念,用先进的测试仪器,用先进的工具,用科学的方法来开发、服务和制造最先进的产品和平台,要敢于投入,要用现代化的方法做现代化的东西,敢于抢占制高点。
构建有竞争力的平台需有坚持开放合作、全球布局的心态。一是以全球视野布局海外研究所引进明白人,保持开放的心态,与引进的明白人合作好;二是技术体系的专家能够真正走出去,充分利用公司海外的研发基地,以及公司和大T(Tier 1 operator)客户建立的创新中心,能够接触到业界最前沿的技术,了解到客户真正的需求;三是充分利用产业链中的战略盟友,将有价值的供应商请进来,以开放的心态与请进来的专家合作,把业界的资源利用好。
构建有竞争力的平台需识别关键技术,提前布局,抢占制高点,支撑公司战略实施。当Marketing发现和识别出客户需求,企业通过决策要去满足这个客户需求的时候,支持该需求的所有的技术和工业体系就要提前准备好,也就是利用已经具备的技术和工业体系的基础能力,能够开发出有竞争力的平台、产品和解决方案来满足客户需求,这就需要提前布局。同时,平台的技术规划体系要不断地、时刻地做好Benchmark的分析和客户需求分析,随时发现布局的缺失,调整布局,持续地支撑平台、产品和解决方案的发展。
4.3.5 平台的成功,核心也是架构
随着企业“厚平台,薄产品”的战略实施,平台自然承担了产品大量的竞争力特性以及DFX能力的重担,平台与产品一样,离不开架构与设计。
一个好的平台架构,会使平台具备良好的可扩展性,支持产品特性的代码最小集合剪裁,一个好的平台架构,同样会很好地支持产品业务的持续演进和竞争力的持续提升。
无线中射频基站平台,经过团队多年的持续努力,具备了良好的组件架构,有效地支撑了无线2G、3G、4G多种制式的演进,同时支撑了产品线Single RAN的战略落地,为客户节约了大量投资,提升了产品的竞争力。
只有产品商业成功了,平台才算成功了。平台要支撑好企业多个产品的商业成功,就需要良好的服务化架构和组件化架构为产品提供服务,实现产品的商业价值。平台的成功,核心也是架构。
4.3.6 平台需要标准化、通用化、简单化
平台的核心价值就是重用,为了在更多的产品中最大化的重用,平台并不是做得越多越好,而是简单化,并可以模块化,可拆卸,可组装,有效降低成本。平台在产品重用过程中,需要被不同的产品快速集成与装配,因此平台需标准化、通用化,构建类似建筑行业的研发工业体系,构建质量大厦的模数标准件。什么叫模数的标准件?简单说,就是建筑行业为了实现设计标准化所制定的一套基本规则,使不同的建筑物,各部分之间尺寸统一、协调,具有通用性和互换性,以加快设计的速度,提高施工效率,降低工程造价。平台也很类似,平台不仅能够提高效率,也能提高质量。产品未来开发的模式,要像建筑行业的集成,平台内大多数部件都是标准的、通用的,其质量是经过千锤百炼、早就验证过的,少部分是新开发的,这样才能做到又快又好,效率高。
2004年以前,华为无线控制器领域产品处于“七国八制”状态,经常将已有的系统进行拼凑与改造,这样无形中导致了系统架构臃肿,处理环节多,流程复杂,产品之间无法共享,导致大量资源重复投入,迫切需要一个新的平台来支撑未来的发展。2004年,相关人员分析了公司平台和业界平台的优缺点及技术的发展,明确了新平台标准化、通用化、简单化等方面的目标,经过持续几年的打造,最终新平台成功支撑了无线控制器领域多个产品,满足了产品8~10年的发展需要,同时降低开发成本60%以上。
2012年年初任正非在市场工作大会上指出:“我们在管道的硬件设计上,将推行标准化、通用化、简单化,使之与业界通用。像IT一样,实现软、硬件解耦,软、硬件各自升级。这样,一旦公司出现危机时,客户不用搬迁我们的硬件设备,就可以直接使用爱立信、阿朗、诺西的设备扩容,以减少客户的损失与风险,这反而促进了客户对我们的信任。”
4.3.7 平台建设要耐得住寂寞,板凳要坐十年冷
从事基础平台研发的人,就像一百多年前建教堂的人一样,默默无闻地无私奉献,人们很难记起哪一条砖缝是何人所修。基础平台,要经历几代人的智慧不断累积、优化,这些平台累积,不是一个新公司短时间能完成的,因为企业已把过去的平台成本不断地摊完了,新公司即使有能力,也要投入相等的钱,才能做出来。拥有这样巨大的优质资源,是任何新公司不具备的,这是大公司的一个制胜法宝。试想:大公司创新不如小公司,干劲不如小公司,为什么胜的还是大公司?
十年之前,国产手机做得都很差,自研芯片更是不值一提。十年之后,国产手机集体崛起,但在自研芯片这条充满崎岖的道路上坚持前行并且干出点模样的奋斗者却屈指可数。放眼国内乃至全球手机市场,拥有自研芯片的终端厂商寥寥无几,华为是其中的典型代表。华为于2004年专门组建手机芯片研发队伍,希望摆脱对美国芯片的依赖。华为从2008年推出手机芯片,2017年推出首个人工智能移动计算平台麒麟970,到2018年发布全球首款7纳米芯片麒麟980,华为一直在手机芯片这条“不归路”上坚持着。麒麟芯片通过十余年的坚持,逐渐从青涩走向成熟,实现了多项创新和突破,在手机芯片市场实现“逆袭”。转眼间十余年过去了,凭借多年来的持续投入和不懈努力,华为麒麟芯片获得了越来越多消费者的支持,成为华为手机目前稳坐全球智能手机市场第三把交椅及拥有差异化竞争优势的核心力量。
平台建设一定要耐得住寂寞,板凳要坐十年冷,特别是基础研究。
4.3.8 平台要从封闭走向开放,通过内部开源释放生产力和创造力
为了满足企业内部信息安全保护的要求,平台往往会以闭源方式向产品交付,即以目标码的形式交付产品,产品看不到平台任何源代码。
在这种模式下,一方面,当产品在面对“疑似”平台问题时,都会依赖平台来协助定位,而平台支撑往往是一对多,很容易成为瓶颈,甚至因内部耦合原因会出现平台需跨地域协同作战,容易导致问题解决周期长,产品与平台间的协同效率低;另一方面,源代码会成为平台部门的私有财产,严加看护,产品方在获取源代码不顺畅的情况下,就会出现重复做相同的“轮子”而产生重复浪费。甚至出现平台内部垄断和不够开放导致竞争力不够的情况。
要解决以上协同效率低、重复开发、不够开放等问题,平台要从封闭走向开放,在保证核心资产信息安全的前提下,进一步推进软件架构和代码更多地在内部进行开源。如平台向产品交付时,适当地把与产品密切相关的模块源代码开放。当产品发现“疑似”平台的问题时,可以直接找源码,不需要再协调平台来配合支撑,大大缩短了问题定位时间;当产品出现一个快速交付的需求需要平台配套修改,而此时平台暂时无资源来支撑时,产品方的开发人员可在平台版本上提交修改,满足快速交付的要求,从而促进产品与平台协同效率提升和减少重复开发。
平台要进一步对平台架构进行解耦,方便工程师快速独立构建和独立验证,为内源模式打下良好基础。另外,通过内部管理优化支持内源模式落地,如通过优化企业任职和干部选拔机制以及采用专项激励基金等方式,鼓励和吸引全公司的开发高手来帮助平台改进和做贡献,构建起一个开放的环境和氛围,解放被束缚住的生产力和创造力。
4.3.9 平台要进一步向生态开放,关键连接是开放的API
一个不开放的组织,会慢慢成为一潭僵水,一个封闭系统,能量最终会耗尽,在产品开发上,同样需要开放,需紧紧围绕业务架构,在业务层面走向开放,并不是什么都去做,而是能激活别人来做。在行业数字化转型中,不少领头羊的企业在构筑联接、云、大数据、人工智能等方面的竞争力的同时,也在利用技术、数据、资本等各种手段吸引和获取垂直行业的优质生态资源,通过能力开放,吸引更多的开发者参与生态建设。
平台在企业内部走向开放的同时,也需要进一步向生态开放,支持企业的生态布局。即产品和平台通过开放的应用编程接口(Application Programming Interface,API)的方式对外开放能力,生态中的开发者利用该API,将其上层应用与开放的能力融合,构建差异化的创新解决方案,助力企业客户数字化转型和商业成功。
为了向开发者提供良好、一致、稳定的华为API的体验,华为通过明确“API管理六项原则”,来支持开发者生态建设。
(1)价值原则:制定明确的可衡量的API价值指标,牵引价值提升。
(2)稳定性原则:通过API版本化管理,避免和减少对开发者的影响,保证API稳定性。
(3)易用性原则:API设计要面向开发者,提供从学习、开发到应用发布全过程的良好体验。
(4)安全性原则:制定API相关的风险控制措施以保护数据和监控访问。
(5)一致性原则:API应按统一的格式规范、发布渠道对外呈现,以保持一致的开发者体验。
(6)服务支持原则:遵循统一的流程规范,为开发者提供良好的服务支持。
华为通过在产品和平台落地“API管理六项原则”,为生态中的开发者应用API时提供良好的体验,有效支持了开发者生态建设、企业客户数字化转型和公司云化战略落地。
4.4 CBB与优选器件库
共用基础模块(CBB)是指那些可以在不同产品、系统之间共用的零部件、模块、技术及其相关设计成果。在产品开发中鼓励共享和重用CBB,可以带来诸多好处:对研发能减少重复开发,节约开发资源,缩短开发周期和上市时间,减少模块种类,提高产品质量;对制造降低库存,减少废料,降低制造成本,改进供应连续性;对采购可以降低采购成本,提高采购效率,降低采购风险;对服务可以降低维护成本。
优选器件库(简称优选库)是为指导研发设计选用物料时提供必要的物料信息的处所。优选库提供针对某物料编码以及该物料编码下厂家型号给出的推荐选用的等级评价、器件维护等信息。
CBB和优选器件库是由架构与平台设计决定的,是内部业务分层最基础的层次,这两个层次的管理对象如同基础积木块一样,在支撑产品快速开发和交付,保证产品质量和与周边协同上起到非常关键的作用。
4.4.1 开发和重用基础模块,简化产品设计复杂度,保证质量
基础模块(Building Block)是系统中一组实现特定功能、性能及规格的实体单元,对外以接口的方式呈现,接口包含了该模块所提供的功能和调用它时所需的要素。基础模块是构成系统的单元,是基于系统架构逐步抽象出来、定义并开发的。它一般是自上而下分解获得,因此基础模块是可能被分开开发的管理单元,支撑团队重用模块,利于团队间协作开发及研究。
在系统设计中,为提高整体设计效率和设计质量,缩短开发周期,鼓励基础模块设计成可重复使用的CBB,CBB是系统构建的核心资产,可以跨产品、产品族、产品线共用。CBB具备如下特征:共用性,即可以支持不同的应用系统或产品;具备灵活方便的二次开发能力;与产品或应用系统间界面清晰,可实现上层应用的技术无关性;可以异步开发;具有明确功能规格、性能指标;具有可靠性、可用性、可服务性;有完善的可维护、可测试特性;有完善的资料手册。
产品开发过程中,只有从成本和效率的角度关注高价值CBB,才能为公司带来高价值或产生重大影响。
自研的高价值CBB必须满足下列条件之一:占公司或产品线硬件发货额80%,软件发货代码总量80%的产品所应用的CBB;按生产物料成本高低排序,在产品中占生产物料成本排序前30%的CBB;按开发CBB投入资源(费用)高低排序,投入资源排序前30%的CBB;对公司或产品线产品发展影响较大/有战略意义的软硬件平台或子系统/技术模块;系统核心部件典型应用模块或典型应用方案,如关键器件典型电路;技术体系规划和推荐的重点CBB。
对于外购件,高价值CBB包括以下内容:价值下跌很快且采购成本很高的外购件,如CPU、主板;对产品制约很大、有较大采购风险的外购件;供应商独家供货的外购件;对采购成本影响较大的外购件;对总体方案有较大影响的关键器件。
CBB是实现平台战略过程的结果,CBB作为技术开发货架技术的重要内容要超前于产品开发,识别并开发能够重用的部件并将其封装成CBB是技术体系的主要职责。CBB管理过程不是一个独立的流程,而是提供一个对分布在所有流程中的CBB所有活动进行管理的框架。CBB管理主要分为5个阶段:规划、开发、使用、维护和监控阶段,分布于技术规划、技术开发、产品开发、解决方案开发、新器件采购等各个流程中。在这些过程中产生基于架构开发的CBB、遵循技术趋势和技术标准开发的CBB、基于已开发系统后向整理的CBB以及结合供应商的技术发展趋势所提供外购件CBB。
4.4.2 构筑优选器件库,降低风险,降低成本,保证质量
在零部件层面的共享和重用就是标准化、归一化的建设,建立优选器件库,确保产品设计选择优选的零部件,建立产品全生命周期竞争力。
华为一直在抓零部件归一化建设的问题,比如电池、音频器件等要归一化,在不同款终端上能通用。归一化能提升竞争力、提升效率、降低成本,最主要的是归一化之后,能解决供应风险、库存风险。一种产品滞销了,另一种产品可以重用。海量复制,不仅能保证质量的稳定性,也能降低成本。
为保证归一化管理的落实,必须从物料的选用到生命周期过程予以管理和控制。把握物料的生命周期节奏,控制物料新需求及编码的无序增长,推行标准化、归一化设计,建设优选器件库,减少产品零部件种类,提升产品可采购性,享受工艺技术进步带来的产业链价值,增强产品成本、质量优势,保障产品的市场竞争力和供应能力。
不同阶段,需要定义不同的原则。引进物料时加强产品线的需求收集和规划,匹配行业发展趋势,合理有效制定物料的路标,严控非标物料引入,实现物料的汇聚归一,引导产品未来的物料选用。应用物料时做好优选库建设,识别行业主流物料,在满足产品业务有序发展的同时,保障物料质量,提升汇聚,支撑采购议价能力,使产品享受成本优势;产品设计选型优先从符合器件路标的器件和优选库中选择,并遵循各领域技术标准及规范;产品设计中严格控制非标物料新申请和选用,禁止使用禁选器件,向主流靠拢,开发环境中屏蔽禁选器件,使开发人员在设计过程中无法调用禁选器件。退出时,器件主动匹配单板演进规划,识别低效/长尾物料,并跟随单板改板/退出计划,有版本、有节奏地实现主动退出。对海量单板定期演进再生,淘汰衰落期、退出期器件。
对于优选器件库的管理,主要体现在如下几个方面:
建立C-TMG(公司级技术管理组)组织并充分发挥C-TMG(包括CEG/TQC/器件可靠性/各产品线代表等角色)成员作用,了解各产品(线)需求、器件发展趋势、成本,C-TMG内部充分评审,采购维护优选库,对准确性、及时性负责,批量维护由行业管理与TQC(技术认证中心)共同发起。
C-TMG根据领域技术发展趋势、公司应用需求、牵引汇聚方向,联合各产品线、采购等部门共同收集产品需求、物料规划,从综合成本、技术、质量、供应等各方面选取最符合华为产品需要的物料集,建立优选库,使产品向推荐的主流、量大物料汇聚,实现产品的成本优势,建立路标库,引导产品未来的选用规划,实现与业界主流的匹配。
各产品线在产品开发过程中,需在路标库和优选库中选择已有编码。若需选用或申请路标库和优选库外的物料(包括拆分编码),必须通过评审。
4.5 软件工程,从CMM到敏捷
软件工程是指用工程化的方法定义、开发和维护软件的工程技术和学科。应用该方法能在预算和进度范围内,交付满足客户诉求的软件产品。在华为,软件工程包含从需求到设计、编码、验证和维护的全生命周期工程活动,是软件开发的能力基础。
为了有效组织和管理这些工程活动,华为引入了CMM(软件能力成熟度模型),对软件开发的过程进行清晰地定义、实施、度量、控制和改进。高成熟度的过程,保证了软件交付的可预测性和高质量。随着时代的发展,为了更快地响应业务变化和客户诉求,华为又引入了敏捷开发实践,通过组建全功能团队,基于一个主干实施迭代开发,构建持续交付流水线,达成快速交付客户价值的能力和成果。
4.5.1 软件工程是实现大规模软件开发的基础能力
20世纪90年代中期,华为一般二三十人开发一种产品,约定俗成的开发过程非常简洁,开发速度很快,但因为只关注编码和测试,而缺乏一些关键的活动,例如计划管理、配置管理,导致了一些严重的问题。20世纪90年代末期,已经需要上百人开发一种产品,沟通与交流的复杂性大大提升。在这种情况下,如果对研发过程分为哪些活动、每个活动要达成的输入与输出要求没有一个统一明确的标准,就会带来各种问题。
只有将软件研发过程中的工程活动进行清晰地划分,明确每个工程活动的目标、要求,以及工程活动之间的相互关系,再辅之以配套的管理活动,才可能协同上百人团队成员高效工作。华为将研发过程分为如图4-4所示的14个相互关联的活动,其中线段表示执行的活动,节点表示活动的输入输出文档。这张图表达的不是各活动之间的时间顺序关系,而是活动之间的输入输出关系。
图4-4 研发过程中的工程活动
下面是每个活动的简短描述:
(1)原始需求分析:真实记录来自客户不同场景下,原汁原味的用户诉求。
(2)需求分析:将产品在不同使用环境下的需求综合整理成对产品的系统需求,并在需求细节上反映客户的期望。
(3)架构设计:给出产品的基本组成结构,使得当前、甚至某些未来的需求能够基于这个结构实现。
(4)系统设计:基于架构设计给出系统结构分解,并使得模块的设计能够独立进行。
(5)模块需求规格分析:给出分配需求的功能分解、分配需求实现的可行性、分配需求之间的功能和数据关联。
(6)模块概要设计:相当于模块的架构设计,内容包括子模块分解、状态机设计、模块全局数据设计等。
(7)模块详细设计:高层设计到函数,并以函数为单位,给出函数的黑盒要求,复杂函数给出设计思路。
(8)编码:准确实现模块详细设计的内容,并保证代码清晰、简洁,使代码具有可测试性、可扩展性。
(9)单元测试:验证模块函数级别的输入输出行为,确保编码活动准确实现模块详细设计。
(10)模块集成测试:从函数开始逐层向上,拼装为一个统一模块,并保证关键分配需求是按概要设计实现。
(11)模块黑盒测试:验证模块的黑盒输入输出行为,确保模块准确实现模块分配需求。
(12)构建块集成测试:从模块开始逐层向上,拼装成一个统一的系统,并确保不同部件之间的接口、状态机能够相互配合。
(13)系统设计验证:验证系统的功能是否实现,并同时开展安装类、调试配置类、告警类、升级指导书、版本说明书等资料的测试,以保证系统功能符合设计要求。
(14)系统集成测试:验证系统非功能特性(如DFX)是否正确实现,确保系统准确实现所有设计需求(含功能和非功能需求)。
(15)系统验收测试:确认产品满足产品包需求中给出的不同应用环境下的需求。
定义了每个工程活动的输入输出要求还不够,还需要说明如何将输入转换成输出,这正是工程方法存在的目的。将工程活动的输入转换为输出的方法、技巧,子活动的分解,支撑每个工程活动的具体实施操作。工程方法和工程活动是松耦合关系,同一类工程活动,可以有多种实现方式,比如需求分析,可以写标准的软件需求规格(SRS)文档,也可以用Use Case描述,还可以用实例化需求方法。这种方法与活动解耦的设定,增强了软件开发的灵活性和适应性。
光有活动定义、工程方法还不够,还需要通过计划管理来协调各活动之间的关系,针对不同产品的交付场景,挑选和组合最适合的工程与管理活动,以达成产品高质和高效的交付目标。在华为,这个过程被称为“质量策划”。通过质量策划活动,明确研发产品交付的关键目标,识别风险,将工程活动和管理活动有机串联起来,确保产品目标最终达成。
定义并实施软件工程活动、工程方法和管理活动,大规模软件开发就能有序、高质、高效。
4.5.2 CMM的核心是用过程的规范性保障软件开发的质量
一、CMM是从“土八路”到“正规军”的必由之路
为了使软件能够更快速地响应客户需求,并提供规模化、高质量的产品给客户,使产品在市场上更具有竞争力,华为从1998年就开始关注并考虑将CMM模型引入软件开发过程。按照CMM模型的要求,在IPD基础上,华为建立了一整套软件开发质量保证体系IPD-CMM。
2000年,华为建立起符合CMM2级的软件流程体系IPD-CMM V1.0,CMM开始在公司部分试点项目启动探索;2001年,华为公司印度研究所的试点项目率先通过CMM4级认证;2002年,结合印度研究所实践发布了符合CMM4级的IPD-CMM V2.0流程体系,随后在公司范围内全面深入地开展CMM4级实践推广和5级探索;2003年,在充分实践的基础上,发布了符合CMM5级的IPD-CMM V3.0流程体系,并在全公司推行。同年,华为公司北京研究所、南京研究所通过CMM4级认证,印度研究所通过CMM5级认证。2004年10月16日,位于深圳本部的华为公司中央软件部一举通过CMM5级认证。2005年,华为开始推行IPD-CMMI。到2006年,100%覆盖所有研发领域。
二、Mini Project是华为IPD-CMM的“播种机”和“使能器”
CMM的实施,使得华为软件研发从“土八路”走向了“正规军”。但如何将单个试点项目的成功克隆到公司所有项目中,是CMM能否落地生根的最大挑战。Mini Project作为华为在CMM实施方面的重要创新,为推广实施CMM立下重大贡献。
CMM Mini Project培训是华为经过多年实践和摸索,总结出来的一套有华为特色,行之有效的培训课程,面向所有研发中高层管理人员和软件开发人员。通过7天时间,进行一个虚拟的软件开发项目,让所有的学员以演练的方式,严格遵守流程、工程方法及模板等要求,进行端到端的实战开发,完成一个真实可运行的程序(比如电梯程序,代码行统计分析程序等)。所有员工在Mini Project培训中所用到的流程步骤、工程方法、工具和模板等都将与实际工作中完全相同,可以使新员工在实战中学习和领会开发过程和方法,在实际开发时可以尽快上手。
这种以实战演练贯穿始末的Mini培训模式,已经成为华为培训的宝贵财富。从软件开发领域拓展到硬件、资料等各个领域,获得广泛应用。尤其是面向高级管理者的“总监Mini”培训更是让管理者学会了什么是CMM,让“野战军”出身的管理者进入“军校”深造,逐渐步入“正规军”的行列。各级管理者理解什么是质量管理、明确在CMM中他们应该承担的责任和作用,是实现整个组织质量文化转变至关重要的一环。
华为Mini Project的成功绝非偶然。首先,它凝结了印度质量专家多年CMM实施和质量工作经验,最初的课程设计都是在模拟印度研究所真实交付项目基础上提炼而成;其次,“狗食理论”(公司/团队使用自己生产的产品以发现问题,驱动改进)在Mini Project培训开发中得到充分应用,“己所不欲,勿施于人”,所有课程都是负责课程开发的责任人首先在自己的项目中进行了真实应用,只有课程开发者自己充分认可并体验的流程和方法才会真正落地生根。
三、持续改进是CMM生命力的源泉
试点项目证明了CMM方法论价值的存在,Mini Project培训加QA的引导和审计保证了方法论的落地和成长,但是所有CMM项目的执行是否不依赖于QA、PM的责任心和能力而一样获得成果,则必须进行独立的验证,这就是内部质量审计制度。
结合CMM内部审计,华为形成了一套系统、成熟的软件管理思想和方法,使得软件项目开发过程可视、可控、可预测,孕育了“质量是我们的自尊心”的质量文化,建立了丰富的华为过程资产,包含组织软件过程、项目数据、能力基线、工具库、风险库、经验案例库和缺陷预防库等。华为内部数据表明,实施IPD-CMM与未实施前相比,软件开发周期缩短了30%,生产率提高了2.2倍,同时也提高了软件交付质量,软件遗留缺陷密度降低了90%。
印度专家告诫我们:“基于CMM的持续改进只要停止一个月,就会前功尽弃。”但是到底应该如何改进?经过深入的思考后,华为认为,需要综合应用内部审计、度量分析、根因分析等方法,建设并实施以“持续改进”为目标的研发管理体系。只有这样,才能确保CMM的推行和改进不依赖于个人与外界的影响而自发地主动进行,从而赋予CMM持久的生命力。
4.5.3 构建敏捷工程能力,实现价值快速闭环
华为敏捷经历了项目级、版本级、产品级、商业级敏捷几个阶段实施与探索,实施过程中,我们深刻体会了“与CMM Process Based不同的是,敏捷是Skill Based”这句话背后的含义。我们充分认识到敏捷转型的关键是团队意识的转变和核心工程能力的积累。下面是各阶段敏捷实施的关键能力。
一、项目级敏捷的核心是“迭代开发”
项目级敏捷主要聚焦单个项目组的开发与测试阶段能力改进,其核心就是固定时间箱的迭代开发。每轮迭代包括计划、开发、测试、回顾四项活动,以启动迭代计划作为一轮迭代的起点,以完成迭代回顾作为一轮迭代的终点。开发中最重要的是保持迭代的固定节奏,如果出现本轮迭代结束时间到,但User Story还没开发完成(设计、编码或者测试中),也要停止本轮迭代,将未完成的任务移动到下一轮迭代,参与下一轮迭代的需求挑选(未完成任务,往往作为下一轮迭代高优先级任务),以保证每轮迭代的交付是一个稳定的、通过测试验证的可用版本,防止团队“带病迭代”。
这里“带病迭代”是华为专有术语,特指对迭代中发现的问题没有及时解决,不断遗留到下一轮迭代,缺乏有效的原因分析和计划调整,导致版本问题不断累积,质量风险不断增加的开发模式。“带病迭代”导致开发不能构筑在一个稳定的质量基础上,进而增加了问题发现和解决的难度,往往导致版本延期,人力不能平滑使用,最终降低产品的竞争力。要解决“带病迭代”首先就要明确迭代目标,清晰定义迭代出口标准,转变管理者意识,从单纯重视功能交付到关注可用的软件才是真正的进度衡量标准。其次要正确评估团队交付能力,根据团队真实“管道”,匹配最高价值的需求,制订合理的迭代计划,而不是一味地向团队压需求,长期过载必然导致质量下降。最后要对团队成员赋能,加强持续集成和自动化测试能力建设,持之以恒构建基础工程能力。
二、版本级敏捷要做到“One Track”
版本级敏捷关注从版本的立项到实验局发布环节整体效率的提升。随着业务发展,产品出现大量定制和分支版本,导致版本间同步工作量巨大,重复浪费严重,因此版本级敏捷的重心就放到共主干(One Track)开发能力构建上。所谓One Track,就是整个产品软件在多版本开发过程中都采用一个主干版本给全球客户应用,而且保持版本前向兼容的开发模式。
要做到One Track,需要从IPD流程和工程两方面同时入手。流程方面,要提早规划版本“火车节奏”,制定产品生命周期管理以及版本优化收编策略;制定版本并行开发/维护分支统计规则并持续可视化管理;同时优化组织阵型,设置主干Owner,简化版本运作模式。工程能力方面,首先,要明确绿色主干要求,定义主干健康度指标,持续交付流水线;其次,要开展服务化架构改造,产品服务间通过API调用,松耦合,支撑主干小批量快速交付;再次,设计方面要持续管理好接口,落地兼容性设计,保证升级不中断业务,确保客户体验。总之,做到One Track,要求目标明确,主管当责,持续运营。
三、产品级敏捷重点是“流水线”(Stream line)
产品级敏捷关注从立项到版本规模发布的整个E2E TTM缩短,它是基于One Track基础上,将整个产品包按照业务诉求和价值,通过持续规划方式,渐进明细为多个小批量需求包,应用流水线持续开发方法,持续交付多个商用Release的产品开发模式。
产品级敏捷的核心是价值流水线持续流动:持续规划,持续开发,持续发布。持续规划要求商业决策与需求决策分离,投资决策团队关注投资收益、资源约束、长期经营指标等;产品需求决策授权RMT,RAT持续进行需求分析与按价值优先级排序,进而支撑需求小批量持续落入持续开发流水线。持续开发注重构建服务化架构和自动化测试能力,松耦合架构支撑多服务并行开发,自动化持续交付流水线实时验证版本质量,保证开发具备稳定的交付节奏和可预期的质量水平,支撑开发与发布解耦,做到按固定节奏开发,按市场需要发布。持续发布需协同各功能领域制定年度功能领域策略和版本计划,按上市诉求和Release计划开展对应的导入活动,配置器、资料等匹配Release快速发布;功能领域代表参与到持续开发流水线中,导入DFX要求,开展DFX验收,实现功能领域敏捷。再匹配全功能团队,兼顾生态与合作伙伴,最终构造一条不间断的研发价值流。
四、商业级敏捷探索JAX和DevOps价值闭环
为了应对智能时代大数据、云计算和物联网等新产业带来的挑战,华为启动了全面云化、数字化转型。匹配转型战略,研发模式也在敏捷开发的基础上,进一步探索联合客户共同敏捷JAX以及运营驱动开发的DevOps模式,以达成业务价值交付的敏捷性。
JAX的核心是协同客户及合作伙伴一起创新与交付,提升整个产业链的竞争力并促进商业成功,主要包括三个联合:联合敏捷规划(JAP),联合敏捷交付(JAD)以及联合敏捷运维(JAO)。联合规划,共同识别行业“痛点”,联合创新,应对挑战;联合交付,通过远程开放实验室,在迭代过程中就对方案进行早期验证和灰度发布,提升特性价值,缩短上市周期;联合运维,第一时间定位并恢复问题,提升最终用户体验和满意度。
DevOps是针对公有云等自运营服务产品的开发模式,和以往最大的不同是软件开发拓展到运维运营端,团队通过服务自运维,最大程度加快了价值的流动、反馈和持续改进。为了达成DevOps,除了组织、文化和流程的调整,工程能力方面更要在架构、部署流水线、自动化测试以及运维监控方面做好准备。在华为,我们组建了为E2E经营和交付负责的服务化组织,构建满足Cloud Native要求的微服务架构,定义并持续建设满足SHARP(Single-Holistic-Alive-Reliable-Productive)要求的持续集成、持续交付(CICD)流水线以及自动化为基础的测试金字塔体系。并在进一步探索强化服务反馈和持续改进的自动化、高效、智能的运维、运营系统,以应对云时代的机遇与挑战。
4.6 开源
简单地说,开源就是源代码对公众开放。不同的开源软件(OpenSource Software)均可以在其相应的开源社区中供人自由下载,并欢迎大众自由地参与到社区的开发中,也允许商业机构进行再次开发并按照相应的开源协议进行发布。
从纯粹的技术视角来看,企业可以通过使用开源的策略,如免费使用开源软件或者共同参与开源软件建设,从而减少在软件开发上的投入,提升研发效率,以及快速获取有竞争力的技术算法,提升产品的竞争力。
从商业的视角来看,在ICT行业,开源正在成为掌控事实标准、构建产业生态圈、开放式创新的有效手段。企业可以充分利用开源社区的发展规律,结合本身的业务战略,在合适的时期,实施对外开源的策略,构建生态圈,整合行业力量,共同实现商业成功。
4.6.1 开源是打造产业生态、实现公司战略目标的重要手段
从客户来看,未来更多企业会采用ICT外包和云服务,这将有利于促进公有云机会,运营商更趋向用互联网的模式采用开源软件自己建设公有云。事实上,越来越多的运营商已在标书中明确开源的要求。
从行业来看,随着硬件的通用化和可编程能力的发展,软件化成为大势所趋,如软件定义网络(SDN)、软件定义存储、软件定义数据中心等。开源也开始向网络领域渗透,行业中不断有新的开源组织产生,比如:ODL(Open Day Light)、OpenStack(云计算)等,它们都会对我们的未来产生深远的甚至颠覆性的影响。
回顾一下Android的开源发展历程,Android最早是由一个创业公司的Andy Rubin主导开发的智能手机操作系统,其商业模式是卖操作系统,没有其他赚钱的模式。Google收购Android操作系统的原因是Google发现在移动互联网快速发展的趋势下,一定要占领移动互联网的入口,所以2005年Google收购了Android,然后直接把它开源了。Android平台通过开源获得了快速发展,Google也通过Android开源快速占领了智能手机的搜索入口,从而提升Google广告的商业价值,给Google带来了丰厚的收入。
再看看Linux开源的案例,站在IBM的角度,如果微软把桌面及服务器操作系统全部统治了,那么整个服务器的服务与集成市场就和IBM没有太大的关系了。所以,IBM于1999年投入10亿美元大力支持Linux开源社区,以及大力推进Linux在企业领域的应用和快速发展。Linux开源打破了Windows的垄断,推动了IT产业的价值向集成与服务的领域转移,为IBM带来超过100亿美元的集成与服务商业机会。
所以,开源对于一个商业组织来说,需围绕其商业战略构建开源生态、参与各种开源组织及活动,并不断优化企业内部的开源管理架构以适应行业发展。
4.6.2 开源的发展规律及企业参与策略
任何事物都是有发展规律的,开源社区也是如此。通过洞察大量的开源社区的发展历史,开源社区通常可划分为萌芽期、升温期、收编期、商业应用期和成熟期五个阶段。
萌芽期:是开源新技术产生和产业生态圈的初期。该阶段通常由技术创新能力强的高校、研究机构或企业发起,需要深入跟踪了解技术特点和判断产业生态圈技术演进方向。
升温期:多个开源项目涌现,处于百花齐放阶段。在该阶段,除了需要关注技术外,同时需要关注其未来应用场景和客户互动,跟踪影响社区方向和参与生态圈发展。
收编期:经过不断地发展,开源项目持续被收编和融合,形成事实标准和主流社区,此时开源社区通常以基金会形式运作。在该阶段,企业需积极加入联盟和参与社区贡献,参与和影响社区软件架构、方向与节奏的定义。
商业应用期:开源的商业环境已形成,合作伙伴一起做大生态圈这个“蛋糕”,并慢慢推动新技术走向成熟和商用。在该阶段,企业一方面需加强社区贡献力度,提升社区贡献度排名;另一方面积极了解客户需求,构筑基于开源社区的客户化商业解决方案。
成熟期:开源已形成稳定的商业环境,生态圈内良性竞争,开源技术已成熟服务于社会。在该阶段,社区的格局已经形成,企业重点在于面向客户的商业版本与客户化方案的构筑和商用。
企业需适应开源社区发展规律,积极参与,实现企业的战略目标和商业价值。
4.6.3 开源带来研发效率和产品竞争力的大幅提升
企业一方面可以直接利用开源社区已有的成熟技术成果构建产品与解决方案,另一方面也可以采用与开源社区合作开发的方式,来开发产品非核心业务或非竞争力特性,从而减少研发人力投入,提升研发效率。华为各领域结合业务特点,利用开源构建产品与解决方案,在过去的传统CT时代,积极参与Linux Kernel(嵌入式操作系统)等开源项目,CT领域应用的开源代码占比超过30%;进入ICT时代,更进一步地参与OpenStack(云计算)、Spark(大数据)、Hadoop(大数据)、OpenDayLight(SDN)、Andriod(手机操作系统)等开源社区或项目,其中,IT领域应用的开源代码占比达70%,手机终端领域应用的开源代码占比达90%,大大减少了研发投入,提升了研发效率。
开源也为企业提供了全球优秀人才为我所用,以及获取业界创新信息的另一扇窗口,企业可利用开源社区的优秀成果来提升产品竞争力。华为网络产品线Fenix平台引入开源社区最新的无损压缩算法代码,整体性能提升31%,在客户POC(Proof of Concept,概念验证)比拼测试中超越友商25%,助力某大T与华为联合发布云化BRAS CU分离(宽带远程接入服务云化产品—控制面与转发面分离)架构,拿下多个价值省份的实验局。
在开源大趋势下,企业需学会充分利用开源社区的优秀人才和成果,来大幅提升研发效率和产品竞争力。
4.6.4 开源的使用需加强质量管理
企业在开发过程中可充分利用开源社区的已有成果,减少软件开发人员的投入,从而带来研发效率的大幅提升。在使用开源的过程中,企业需要通过以下几点,做好开源的质量管理:
使用“严进宽用”策略,优生优育。“严进”即开源管理团队对开源软件进行充分评估,选择那些能满足业务需求、代码质量高且安全风险小、社区活跃度高的开源软件/项目,并将这些社区的软件纳入企业的软件库来管理;“宽用”则是软件库中的开源软件可以在企业内所有产品中共享共用,产品团队在技术选型阶段,从软件库中挑选满足要求的开源软件,不需再评估,可以放心使用。
对开源软件需要进行生命周期管理,牵引和推动产品使用“优选”软件,禁止使用“禁选”的软件,实现归一化管理,降低成本和风险。
避免“侵入式修改”,解耦开发。为了使开源软件功能更强,满足商用要求,直接在开源软件的原生代码中修改,这种方式称作“侵入式修改”,它势必会增加产品中开源软件版本切换的成本。
用好开源,合法合规,企业需要重视开源的质量管理。
4.6.5 开源要与标准联动
传统的CT行业,通过标准来构建产业生态。IT行业,开源是构筑事实标准、建设产业生态圈、领先战略竞争对手的有效手段。ICT融合将使开源与标准之间关系更密切,目前已经看到标准与开源的联动趋势,两种同时存在,以支持生态系统,因此需在商业决策的指导下实现开源和标准的联动。
例如,Apache CarbonData是一个关于大数据查询的开源项目,由华为开发并贡献至Apache基金会(大数据领域最权威的开源组织)。在开源项目运作中,开源项目团队与企业标准团队通力协作,最终将其成果导入ISO/IEC WG9 20547-3(大数据参考架构)草案和IIC(工业互联网联盟),为国家标准和行业标准做出贡献。同时华为也是容器格式标准社区(Open Container Initiative,OCI)的初创成员,在容器运行、镜像格式、镜像工具等多个规范中都有显著贡献。目前,OCI的规范已为主要云计算厂商所采用,华为也是唯一一家在该组织中拥有关键席位的中国公司。
标准团队也要持续参与相关开源社区,在开源社区的贡献可以不仅是代码,文档、邮件列表等都是讨论需求、架构及规范边界的有效平台。标准团队要和开源团队一起及时发现业界的产业变化,或预判产业即将发生的重大变化,识别标准和开源联动机会点并及时上报企业高层决策,以便制定最佳的开源策略和开源社区的有序管理,逐步提升企业的产业影响力。
4.6.6 开源要和商业利益相结合
ICT融合背景下,构造开放生态系统已经成为未来商业竞争的关键。开放是战略,开源是重要手段。
在面向千亿链接的物联网时代,华为利用轻量化架构和智能化应用等优势,开源LiteOS,为社区提供完整的、标准化的物联网操作系统。通过开源社区运作建设NB-IoT生态联盟,加速了终端领域智能化进程,在商业上已为德国DHL(物流运输)等企业提供服务。
纯粹的开源贡献不是商业组织的做法,对于一个商业组织来说,开源须和商业利益相结合,不能为了开源而开源。
4.7 研发能力管理体系
在华为公司的早期阶段,研发组织成熟度较低,能力也较弱。为了快速提升,在研发组织内部设有行业管理,这是华为公司的研发组织跟西方公司的研发组织的一个不同点。现在各研发组织逐渐成熟,在已经成熟的领域里,已经不需要过强的行业管理了,于是把行业管理逐步转变为能力中心。
研发能力中心的目的是保障华为的研发队伍在面向未来的挑战中具备强大的竞争力,通过建立组织机构,获取并聚集相关的人才资源,通过专职队伍的全方位跟踪与跟进,将业界最新研究成果,转化为华为可落地的研发能力组件,快速补齐或提升公司关键业务的能力。研发能力中心承载了华为公司20多年来研发管理方面的经验、能力、历史和教训,担负着提高全公司的研发能力、研发效率的使命。在公司层面,华为的研发能力统一由2012实验室来支撑,它担负着提高全公司的研发能力、研发效率的使命,汇聚大量公司级专家开展各类研发能力的规划与研究。
华为的研发能力分为技术能力与非技术能力。其中,技术能力是指产品本身涉及的各类专业技术,如软件操作系统技术、数据库系统技术、硬件工程技术、DFX技术、材料技术、芯片技术、信息处理技术等,它们是通过技术管理体系(TMS(10))来进行管理。非技术能力是指研发理念、流程、方法论、工具、基层团队的组织运作模式等。它们是通过研发能力提升委员会进行管理,包括定方向、形成共识、做出决策等,同时依托2012实验室开展建设和应用。相关成果由2012实验室组织部署实施到各研究所的一线研发团队,各研究所承担了研发能力落地的职责,各研究所的质量与运营部、人力资源部履行的也是能力中心(COE)的角色,推动整个研究所业务团队的研发能力提升。
华为研发技术能力中心的设置和建设是分布式的。除了2012实验室的硬件工程院、软件院、海思半导体与器件业务部之外,各产品线、各研究所也承载着不同领域能力中心的职能。比如无线网络产品线是射频技术能力中心,固定网络产品线是IP和光技术能力中心,网络能源产品线是电源技术能力中心,俄罗斯研究所是算法能力中心,法国研究所是美学能力中心等。
华为研发技术能力的管理是通过技术管理体系来保障技术管理工作有效运作的。技术管理体系是以ITMT为核心,包含ITMT、C-TMT、C-TPMT(11)、PL-TMT、Sub-TMT、专业领域MC、专业领域TMT、C-TMG、PL-TMG、TDT等团队。技术管理体系团队结构如图4-5所示。
ITMT主要负责在公司战略指引下,洞察和把握业界技术发展趋势,负责公司技术投资决策,建设公司技术体系,构建公司现在和未来的工程与技术能力,支撑公司研发能力提升,确保产品发展需要的工程和技术能力提前Ready。通过主动产业链经营构筑技术断裂点,实现产品市场竞争力和客户需求响应速度业界领先。
C-TMT是ITMT的支撑组织,在ITMT授权下,在技术管理、决策、仲裁及评审活动中为ITMT提供专业支撑和推动。
图4-5 技术管理体系团队结构图
注:图中实线表示直接业务领导关系,虚线表示业务指导关系。
PL-TMT是产品线技术与工程专家委员会,是产品线创新、技术开发投资、关键技术断裂点构筑责任主体,负责产品线现在和未来的工程与技术能力的构建及与业界同步,确保产品线发展需要的工程和技术能力得到保障,避免因技术能力不足或复用水平弱而影响产品市场竞争力和客户需求响应速度。
TMG(技术管理组)是各层级专项技术专家团队(C-TMG是公司级、PL-TMG是产品线级),是专项技术领域的最高技术权威。
各类技术能力以技术研究项目的形式开展组合管理,由ITMT/TMG进行里程碑的决策与管理。具体操作方式如下:
(1)对面向满足客户需求的下一代新产品和解决方案、新商业机会进行探索与研究,利用项目方式联合各能力中心共同参与,实现关键技术准备、原型验证和标准/专利布局,并推动公司做产业化立项。
(2)打破产品线界限,识别出公共的、基础的以及公司发展需要的关键技术,建立相应的实验室,构建技术研究的能力中心。
(3)引进业界专家,借鉴业界成熟模式建设基层研究团队,不断提升研究能力,让有能力且有意愿的员工从事研究工作。
(4)针对面向未来的一些重要创新研究项目,如5G、下一代的IT等,华为与业界资源充分合作,利用全球各个主要国家和区域的高校和研究机构多年的积累,共同面向未来,开展研究和创新工作。
华为研发能力管理体系经过多年的运作,持续地提升了产品的竞争力,仍在持续不断建设和完善中。
(9) LTE,Long Term Evolution,长期演进,是由3GPP组织制定的UMTS技术标准的演进,是3G技术的升级版本,严格地讲,LTE只是3.9G。
(10) TMS,Technical Management System,技术管理体系。
(11) TPMT,Technology Portfolio Management Team,技术组合管理团队。