天极大咖秀

登录 | 申请注册

软件开发工具上云,华为云有备而来

郭涛 2022-12-16 阅读: 3,821 次

长期以来,软件研发管理与团队协作工具市场发展并不完善。在跨地域、跨组织、跨团队大规模协作研发越来越紧密的云开发时代,需求的识别和高效管理成为一个产品能否取得商业成功的“胜负手”之一。2022年12月7日正式发布的华为云CodeArts Req需求管理工具,能否成为搅动这一市场的“鲶鱼”?

1

这个“根”要扎得更深

近日,华为公布的一项与光刻机相关的专利技术成了业界焦点。长期以来,中国信息产业一直被“缺芯少魂”的焦虑症所困扰。“芯”指芯片,引申为与硬件相关的底层核心技术;“魂”指操作系统,泛指包括操作系统、数据库、中间件等基础软件。今天,国际市场风云变幻,除了我们惯常认为的弥补“缺芯少魂”的“根技术”以外,一些关键的应用软件,乃至软件开发工具也应该归属于“根技术”的范畴,必须实现自主创新。

作为一家“非典型”的“典型”软件公司,华为在软件领域的一举一动也颇引人瞩目。为什么说是“非典型”?因为在华为公司众多的标签中,大众的认知可能是ICT设备提供商、云服务商、手机制造商,而其软件公司的身份似乎只局限于“圈内”。说它“典型”,因为华为是名副其实的中国软件百强企业,并且已连续20年雄居榜首。近十年来,华为研发费用累计达8450亿元,其中相当大的一部分是在软件的研发上。

其实,华为内部对于软件开发工具是不是属于根技术范畴,也曾有过争论。华为“向下扎到根,向上捅破天”的战略定位给出了答案:如果想在软件领域实现跨越式发展,支撑更多的上层应用创新,软件开发工具这个根就一定要扎得深、扎得牢。

这个“时机”抓得好

中国传统文化对做事讲究“天时、地利、人和”,软件开发亦是如此。软件开发是根技术,但技术本身的难度、需要长期积累的行业经验,以及国际厂商建起的商业壁垒,意味在这个方向上“破圈”并不容易。云计算时代的到来,为国产软件创新提供了不可错失的良机。未来,一切的研发活动都将发生在云上,软件开发更不例外。开发者只要有一个浏览器,就能随时随地进行研发。华为云的崛起,像是给华为软件工具的开发装上了加速引擎,无疑给了华为在云上软件开发这个赛道上“弯道超车”的机会。

毫无疑问,云计算对于软件产业的发展是一次颠覆。在软件定义一切的时代,华为云不仅增强了底层基础架构、提升了算力,更重要的是在云上改变了很多软件的形态。与传统做硬件盒子不同,云上软件的开发需要一个更加开放的生态,这使得华为云与同行之间不是排他竞争,而是携手伙伴以及开发者共享共创共赢。在云计算时代到来之前,软件开发的工具大多都是单体的,开发者在自己的PC上,使用一个独立的开发工具。今天,随着开发工具的云化,云上提供的强大算力、分布式架构等,足以支撑大规模、高效率的协同开发。比如在华为云上,代码编译的速度相比传统软件提升了10~50倍,十几万的测试用例能够快速分发下去,开发者即使坐在家中,也能随时随地操作,不受地域限制,也不会出现业务中断。软件开发的整体效率、可靠性、可用性、安全性有了巨大飞跃。

包括需求管理平台、代码管理平台、用例管理平台等在内的华为研发工具全面上云后,华为云强大的算力平台能够与研发工具更好地结合,对研发的整体效能进行精准评估,并显著提升研发效率和质量。截至目前,华为云平台上已经汇聚了超过370万的开发者。

要想提升研发效率,软件必须坚定地拥抱云计算和SaaS化。华为内部使用的“云龙”平台,就是在这一背景下诞生的。云上研发,让华为尝到了甜头,推己及人,千行百业的客户是不是也希望拥有像华为这样的云研发能力和效率呢?于是,华为做出了一个重大决定,将用于内部开发实践的“云龙”能力全面对外开放,以云服务的方式为更多企业和开发者服务,这就是我们今天看到的华为云CodeArts软件开发生产线。华为将30多年来在研发上积累的经验、流程、方法,沉淀在华为云上,转化为标准化的服务对行业客户进行赋能,帮助他们在自主创新的路线上,不断提升软件开发的效率和质量,并且保证供应的连续性。

从最初只有二三十万开发者,到短短几年间增加至数百万,华为云为开发者带来了全新的生态体验。对于广大的开发者来说,CodeArts就是他们与华为云沟通的入口,同样也是一片“黑土地”,为开发者提供所需的软件开发环境和工具。

这次“转型”很及时

以前,华为也曾采购过一些传统的软件开发商业套件,给内部的小型开发团队使用。但是,随着企业规模和业务不断扩大,不仅开发团队的人员有了数量级的增长,而且在“后疫情时代”,异地办公、居家办公的开发方式也成了常态。对于跨地域的大型企业研发团队而言,如果没有云平台和服务化的能力,不仅软件开发的效率难以提升,而且协同的效果也会非常差。

将研发的能力和工具以云服务的方式提供,成了必然之选。从2015年开始,华为的开发基础服务就开始逐步汇聚到云上——即DevCloud开发云,即使是本地桌面的IDE也能通过插件与云服务实现无缝对接,在远程支持的许多场景下,IDE也在逐步云化。

2

华为的一贯策略都是全球开放,一个更通俗的说法是“用欧美的砖来搭中国的长城”,即应用全球最先进的技术、流程、工具,锻造提升自己的开发水平,持续领先业界。近几年,随着国际局势的变化,先进技术和产品的可获得性打了折扣,实现自主创新成了当务之急。所谓工欲善其事,必先利其器,中国软件产业的发展,最可靠的依赖是自己的根技术。这就像是盖高楼,如果地基不稳,遇到风吹草动,大楼就会有坍塌的危险。为了软件供应链的安全、为了软件开发工具的安全,我们的“根”必须扎得深一些,再深一些。

华为在软件开发工具方面的投入已有20多年,分成多个阶段。在最初阶段,华为采用商用工具推动公司内部的研发实践落地,并在此基础之上做大量的定制开发,将工具之间的数据打通,对工具之间体验性的东西进行改良,形成了华为第一代软件开发工具,也实现了基础研发的数字化,即研发协同与内部的数据流转。随着云计算的兴起,再加上“断供”的挑战,华为加快了对传统软件云化和SaaS化的改造,并利用开源技术“补漏”,同时还采用制度创新的方式,保证在云原生的分布式架构的基础之上,更多更好地开发云化的工具。面向未来,华为正在做新的思考和布局,包括利用创新的安全技术,提升研发工具的可靠性和可信能力,更好地实现软件生产过程可追溯并融入更多的智能化。

作为DevCloud开发云的重要承载,CodeArts软件开发生产线与DataArts数据治理生产线、ModelArts AI开发生产线、MetaStudio数字内容生产线一起,成为了云上创新平台的核心引擎。CodeArts的诞生,得益于华为在软件开发方面长期的积累与实践,是其软件开发能力的外化与厚积薄发,同时也是顺应华为加强自主创新软件开发的长远战略之需。

CodeArts顾名思义,Code就是编码,而Arts代表艺术,华为希望原本枯燥、流程化的开发工程能够变成焕发开发者激情与创造能力的过程,重塑程序员对开发的热情、梦想与追求,而不再是“码农”。CodeArts的艺术性体现在,由于人工智能技术被注入到软件开发的过程中,可以更好地推荐代码,甚至找到一些未来的知识图谱,再加上强大的云能力,能够为开发者提供超乎想象的创新服务,从而更好地激发开发者的创造性。

CodeArts是华为云着力打造的一个全新产品品牌。华为云期待Code与Arts的结合,再加上华为一系列的研发工具、工程方法和能力经验的外溢,能让开发工程师、程序员像艺术家一样创作创造,不负初心。

CodeArts Req的发布打响了华为云软件开发工具能力外溢的第一枪。据悉,在接下来的1至2年内,CodeArts的其他各种工具也会陆续推出上线。

这项“需求”拿捏得准

华为云为什么将CodeArts Req作为推动云上开发的桥头堡?CodeArts Req是一款由华为自主研发的软件研发管理与团队协作工具,凝结了华为30多年软件研发的先进理念与丰富实践,具有强大的组织协作能力和灵活的研发流程定义能力。Req内置了华为IPD需求管理模板,支持IPD研发、DevOps敏捷交付、精益研发多种研发模式,并且支持特性管理、需求管理、缺陷管理、计划管理、基线与变更及任务跟踪,同时提供了强大的跨项目协同、多项目组合管理能力,能够更好地助力企业大规模研发转型成功。

为什么需求管理如此重要?1997年,某国国税局耗资40亿美元实施现代化项目,计划将税收法规转换成软件代码。由于税法本身十分复杂,且不断变化,这对IT开发人员来说无异于需求噩梦,天方夜谭。最终,由于缺乏科学的需求管理,加上内外程序员的缺乏有效协同,严重低估涉及的工作量,导致项目以失败收场。

“从客户的需求出发”,似乎人人都在这样说,但是将定性描述的需求转化为定量的指标却难上加难,因为很多客户并不清楚自己需要的是什么。所以,作为软件开发服务的提供者,必须帮助客户深入挖掘需求背后真实的想法和背景,了解应用的痛点,并且让客户深度参与需求的整个生命周期,包括流动、分析、接纳、讨论、验收等。需求要从客户中来,到客户中去,形成完整的闭环,真正解决客户的问题并带来价值。

当前市面上的需求管理工具可谓百花齐放。但是,大多数的需求管理工具仍然聚焦在单项目的协作和小团队开发上。而当开发团队的规模呈线性增长之后,需求管理的难度将呈指数级增长。以华为公司车BU为例,如果将设计一辆车的需求设计进行拆解,就会发现它需要网络、无线、芯片、终端等多条产品线的协同,所以整个需求的卷积过程和协作模块是海量的,需求管理的复杂度相当高,其中某一个环节出现偏差,都有可能导致整个解决方案或产品胎死腹中。华为也曾使用过业界知名的国外厂商的需求管理工具,但是要想打通其数据底座,实现二次开发的成本非常高,而且还会有这样那样的问题,无法满足华为车BU的需求。所以,华为加大了自研力度,并注入IPD(集成产品开发)等先进理念,以满足大规模团队协同开发的需要。

当然,研发的创新也并非一蹴而就。华为内部的研发转型也曾经历过需求管理混乱、低效、协作困难的阶段。曾经,因为各产品线各自为战,有的团队采用商用工具,有的团队自己开发了一些开源工具,而没有实现统一的需求管理,应付一些小需求的开发尚可,而一旦出现了大的产品级的需求或解决方案级的需求,就会出现需求传递失真、验收时间不齐等问题。因此,在2014年,华为打造了一个公司级的需求管理系统——CloudALM,从对单一场景的支持扩展到能够支持云、管、端、芯、车等众多场景,改手工为自动化,通过一个系统实现E2E的双向传递和可信、智能、实时的追溯,做到全流程的质量预警,不仅保证生命周期的全流程管控,而且实现了整个底座和工具的自主创新。

在通过CloudALM优化公司内部需求管理的同时,华为也看到了外部的市场需要。很多与华为关系密切的企业,对华为如何实现大规模协同场景下的需求管理十分好奇,并产生了学习华为成功经验的迫切需求。于是,华为考虑将CloudALM,加上与之配套的一系列专业工程服务,以云服务开放给外部其他企业。华为云CodeArts Req应运而生。

在华为研发团队看来,需求管理就是要管住源头,必须像管理投资一样管理开发。因此,在华为内部研发流程的每一个关键决策决点,都有一个严格的需求决策过程,以确定“投资”是否正确,项目能否继续走下去。这是华为研发在大规模协作开发场景下经过千锤百炼的成功经验。因此,华为云CodeArts Req特别适合用于大规模复杂场景研发,尤其是跨项目、跨团队、多地域的协同开发。

所谓“无需求不产品”。需求是产品的基石,也是产品的源头,而需求管理将贯穿于产品的全生命周期始终。

这个“工具”很好用

对于企业来说,合适的研发模式和方法论是软件开发的灵魂。不同规模、不同研发模式的企业,选择也是千差万别的。一个适合企业的需求管理工具,应该具有可持续发展的能力,能够满足未来所需的大规模协同需求,同时还要提供优质的体验,并且具有灵活的自定义能力。

几年前,华为云就能支持敏捷的Scrum以及看板协作等研发流程。此次新发布的华为云CodeArts Req的最大创新之处在于,内置了华为IPD需求管理模板,通过规划与特性管理来组织战略规划,以脑图、甘特图形式对战略进行逐层分解,确保组织战略落地。另外还进一步增强了全方面的追溯以及自定义能力。

华为云CodeArts Req提供的3个IPD的需求管理模板非常典型,分别是IPD系统设备类、IPD独立软件类,以及IPD自运营软件和云服务类,基本涵盖了华为的全业务场景,当然也能够充分满足各类企业基本的开发需求。

IPD系统设备类面向的是软硬件的配套开发场景,产品需求相对固定,也有相关的行业标准。其特点是开发周期较长,而且基本都是阵地战和大规模作战,对产品的质量和稳定性要求较高,决策点也多。而云服务的开发速度要求更快,其主要的研发特点是商业决策和需求决策是分离的,多采用DevOps的敏捷模式。针对研发模式的差异,华为云CodeArts Req提供了丰富的项目模板,支持IPD、DevOps、精益等多种场景化研发模型,用户可根据企业规模、业务需求、使用场景,选择不同的项目模板,让创意更快地变成产品。

众所周知,产品从规划到上市需要经过复杂的研发过程,如何确保产品就是客户想要的、如何保障客户需求被正确理解和完整传递非常重要。华为云CodeArts Req内置的IPD需求管理提供了基线评审和变更管理能力,实现了版本基线-受控变更-变更评审-变更管理过程,确保产品研发就像履行合同一样严谨。

通过打通需求过程数据孤岛,华为云CodeArts Req将需求开发过程中产生的设计文档、代码、用例、缺陷等有机串联,形成追溯关系网,提前预警拦截风险,问题实时可视,保障研发过程高质量。

此外,华为云CodeArts Req还提供了产品全量特性管理,通过特性树可以更好地管理产品特性,实现关键资产不丢失,让跨代产品的特性快速继承和发展。

大型产品开发往往涉及数千人的协作,协作关系与项目运作沟通成本呈指数级上升。在快鱼吃慢鱼的时代,提升效率是企业的生命线。基于华为IPD跨部门团队理念与实践,华为云CodeArts Req联结项目、人、工作项,提供无限组织层级、无限功能领域的网状跨项目协作管理能力,实现立体高效协同,加速信息流转,助力产品规划到上市周期缩短20%。

“以客户为中心”,华为云CodeArts Req打破了传统需求管理工具仅在研发阶段发挥作用的限制,将客户与市场需求也同步覆盖,提供了完整的客户需求采集、价值需求决策、交付与验收流程,让需求进展和动态客户实时透明,市场需求流动提速70%。

归纳起来,华为云CodeArts Req最大的差异化体现在:承载了华为公司的IPD作业理念,其中包含的一些独特的需求管理模型划分方式、协同方式,以及基线和特性树概念等,在每一次做需求变更时,能够让需求管理的传递过程更加可靠且可管理;能够很好地支撑大规模团队协作,不管纵向的组织结构和横向的多项目群管理多么复杂,都可以做到无限层级的连接与扩展,形成高效的需求管理协同;脱胎于敏捷云服务,既能兼顾小团队作业,支持敏捷的Scrum开发模式、看板开发模式,也能更好地支持大规模协作,在不同模式之间切换,灵活匹配不同团队、不同开发模式下的需求管理过程,并具有自定义能力。

大约从2019年开始,华为所有的研发管理过程就都运行在内部的需求管理平台之上。如今,华为云CodeArts Req已经高效支撑华为13万研发人员的需求协作,月API调用量超过15亿次,累计管理5000多万需求,覆盖华为终端、网络、云计算、芯片、汽车等全业务场景。

这个“头”开得好

从12月7日开始,华为云CodeArts Req将在华为云中国站实现全域开放使用,明年还将发布基于混合云的版本,支持企业的私有部署。2023年下半年,更多IPD需求管理能力和行业需求模型也将陆续推出。

现在,很多客户的需求传递还是靠“手拉肩扛”,华为云CodeArts Req的推出将彻底改变这一现状,在众多国外品牌的工具当中,为客户提供一个新的满足自主创新需求的选择,尤其是有数千甚至上万人协作开发需求的客户。

CodeArts Req只是华为云软件开发生产线中的一个套件,它还要与代码、测试用例等关联,并且深度地与周边系统进行集成和对接。这其实也是华为云端到端软件开发服务的一个优势。在接下来的两年时间里,华为会将其研发工具能力与研发工程能力,与DevCloud深度融合,不断完善和提升CodeArts。这将是一个持续演进的过程。最终,华为云会呈现出一个与研发数字化密切关联的底座,以及庞大而完整的产品家族体系。

进入云计算时代,市场竞争、产品竞争日趋势激烈,留给每个新产品的研发窗口期越来越小,因此必须持续提升研发的效率,小步快跑,加速迭代。未来,整个软件都要生在云上,长在云上,软件开发的整个过程当然也要在云上。华为云CodeArts Req与将代码托管、流水线、构建、部署发布等工具协同起来,构成一条完整的软件生产线,推动软件开发上云。

需要特别指出的一点是,虽然上云是大势所趋,但是由于研发场景、研发模式多种多样,企业应该根据产品和项目所需,选择最适合自己的开发方式,而不能“一刀切”,只有“合适”的开发模式才能更好地激发团队创造力。华为云CodeArts具备了这种灵活性和广泛适配能力,真正从客户的需求出发,推动软件开发转型升级。

郭涛
以“云”为基,以“数”为魂,以“智”为道,新IT,新经济。

特别声明:文章版权归原作者所有,文章内容为作者个人观点,不代表大咖秀专栏的立场,转载请联系原作者获取授权。(有任何疑问都请联系wemedia@yesky.com)