华为敏捷项目管理实践分享

当前,企业面对的商业环境瞬息万变,移动、社交、物联网、云计算、大数据、AI等蓬勃发展。新技术突飞猛进的同时,新业务形态越来越复杂、需求变化越来越快、软件规模越来越大、交付周期越来越短...
当前,企业面对的商业环境瞬息万变,移动、社交、物联网、云计算、大数据、AI等蓬勃发展。新技术突飞猛进的同时,新业务形态越来越复杂、需求变化越来越快、软件规模越来越大、交付周期越来越短、开发和维护成本越来越高,产品交付的风险急剧增加,传统研发模式无法适应快速变化的市场需求。

为了应对这些挑战,业界软件开发模式经历了持续的改进和变迁,从20世纪60年代作坊式开发,到80年代过程控制模型,到2001年敏捷、DevOps模式探索。

image.png

近30年来,华为的研发模式也在不断变迁、优化,从90年代初游击队式开发,到2000年引入IPD-CMMI,转变为集团军作战模式,到2008年经过敏捷思潮的洗礼,开启了“班长的战争”这一全新模式,形成了 “敏捷+ DevOps”相融合的、独特的华为敏捷研发模式。

通过这种独特的敏捷模式,拥有8万华为研发人员的研发体系,像大象一样翩然起舞,行走在时代的前沿,在电信运营商、企业、终端和云计算等领域构筑了行业领先的解决方案优势。研发的产品,被销售、部署到全球170多个国家和地区,服务于全世界1/3以上的人口,支撑了2016年同比增长30+%、达5000多亿元的销售额。

一、敏捷、 DevOps方法论介绍

敏捷开发模式,遵循万物生长的客观规律,通过不断迭代的增量式开发,确保可运行的软件逐步生长壮大,并尽早获得客户的反馈,及时开展优化。

DevOps理念是在开发流程和组织结构上,打破部门墙。通过端到端全自动化的持续交付流水线工具链,将市场、开发、运维等环节高度协同起来,并不断提升Ops环节的自动化能力,解放人力,聚焦于业务开发实现上。

附带说明下微服务理念是将庞大的、紧密的系统,解构为松散的、可独立开发、构建、部署、运行的众多微服务,各个微服务之间充分解耦,各个微服务也可自行选择技术栈。这将更有利于促成敏捷实践的落地和成功。

二、华为敏捷项目管理实践

华为敏捷项目管理,融合了敏捷、DevOps思想,不仅仅是开发阶段的敏捷,而是打通市场、交付、运维、运营的端到端敏捷。在实践中通过运维自动化,将Scrum敏捷团队开发的产品快速上线,并通过及时的运营,反馈给敏捷团队进行方向调整。

华为敏捷项目管理流程如下:敏捷开发流程可划分为准备、计划、开发、反馈四个阶段。

1、准备阶段

➤按照模块/服务组建全功能团队,团队包括PD(产品经理)、Scrum Master、UE(UCD工程师、美工/视觉)、SE(系统工程师)、开发、测试、运维、运营。每一个团队人数控制在6-12人。这需要配合系统解耦,模块足够小,或者采用微服务架构。

➤选择合适的敏捷项目管理工具。软件开发云团队采用DevCloud on DevCloud的开发自用模式,可创建Scrum流程项目或精简流程项目(精简流程项目是比敏捷模式更简洁的模式,适合小、微团队和个体开发者)。

2、计划阶段

PD是本阶段的核心角色。需求从线上反馈、线下访谈、友商分析、头脑风暴等渠道进入产品Backlog后,需求优先级由PD实时刷新、定期评审,确保“做正确的事”:
 ➤ PD对产品Backlog中Epic和Feature进行优先级分层排序,选择优先级高的特性确定发布计划。

➤ 在每个Spring启动前,按照优先级排序的Story制定迭代计划。 

3、开发阶段

Scrum Master是本阶段的核心角色,需保证整个团队高质高效“正确的做事”:

➤基于迭代故事墙(看板),各个全功能团队开展每日站立会议,将进展和求助录入Story讨论区,早会讨论内容通过站内消息和邮件等实时通知责任人。

➤开发人员提交代码时,发起同行评审。之后由Scrum Master进行代码审核,确认没有问题后合入版本主干。

➤ 每天定时执行自动化静态代码检查任务,检查编码安全(如未授信访问)、编码问题(如空指针引用)、圈复杂度、重复率、编程风格,问题清零才允许构建出包。

➤通过云端自动化的持续交付流水线,实现持续构建、持续部署(包括脚本自动下发、比对)、持续测试(功能、接口、性能、可靠性等实现100%自动化)、持续发布、持续监控,可将Ops端手工操作的时间缩短到20%内,全功能团队可以聚焦于业务交付上,显著提升效率和产品质量。

代码提交时按照规范备注Story ID,即可将代码关联到对应需求上。创建测试用例和缺陷时,也需关联需求,这样就实现了“需求-代码-用例-缺陷”的双向追溯。

4、反馈阶段

反馈阶段主要开展验收和回顾活动。

➤召开ShowCase会议,由PD进行验收,确保产品功能与需求一致。

➤转测试回归不通过问题,需由Scrum Master辅导问题责任人进行回溯,并召开整个团队的质量回溯会议。会议重点在于分析问题根因,并识别出管理、流程、技术、工具上可落地的改进点。这些改进点每一个都必须符合Smart原则,是可落地、可执行的,不能出现大话空话套话。而且这些问题都要求最晚在下一个迭代中,执行落地,以避免问题再次出现。

➤通过迭代需求统计报表和燃尽图,查看需求交付进展。

➤迭代遗留缺陷报告呈现每个模块/服务质量情况,并设置质量门禁。单服务遗留严重及以上级别问题,或者总遗留DI值(遗留缺陷密度)>x分,则服务质量不达标,不允许发布。

重点提一下质量回溯会议,对应于敏捷迭代回顾会议,是华为持续改进的实践瑰宝。其要义是塑造整个团队对事不对人、勇于直面问题、只要有方法有措施下次改进不再重犯错的“从泥坑里爬起来就是圣人”的文化氛围。

总结:

华为一贯坚持以客户为中心,交付“刚刚好”的系统。

刚刚好的系统,不是“满足于及格标准”,而是根据需求优先级,开展资源分配、组织变革和需求交付,去交付当前阶段用户最紧急的需求,而绝不浪费一枪一弹去做用户实际不需要的多余特性,这样可以确保所有资源都用在满足客户真实的需求上,最大程度保障产品质量和效率。

敏捷是一种文化,华为的敏捷实践,融入了华为独特的文化基因。每一个团队都有自己的特质,可以根据实际情况选择适合自己的敏捷流程和实践,就能够达到高质高效开发的光明彼岸。

华为软件开发云(DevCloud)是集华为研发实践、前沿研发理念、先进研发工具为一体的研发云平台,为开发者提供研发工具云服务,让软件开发简单高效。(来源:华为云城市产业云解决方案)

合理并且有效地运用项目管理工具,不仅可以让我们工作井然有序地进行,还能最大程度保证项目目标的达成。CORNERSTONE提供了包括任务/需求/测试管理、迭代规划、缺陷追踪、报表统计、团队协作、WIKI、共享文件和日历等功能模块,现在申请20人以下团队即可免费使用。

aeef399ffa8046109e455da2e8c34dc4.png
  • 发表于 2020-04-26 14:42
  • 阅读 ( 1553 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
CORNERSTONE
CORNERSTONE

72 篇文章

作家榜 »

  1. omicsgene 702 文章
  2. 安生水 351 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 82 文章
  6. rzx 78 文章
  7. 红橙子 78 文章
  8. CORNERSTONE 72 文章