首页 > 其他分享 >充电桩项目敏捷开发实践分享

充电桩项目敏捷开发实践分享

时间:2024-04-11 16:34:37浏览次数:18  
标签:需求 团队 迭代 敏捷 交付 充电 分享

推荐语

充电桩项目采用敏捷模式,可以直观地感受到交付效率的提升。作为一个从0到1的、且涉及到硬件厂商、物联网的项目,在短时间内成功地完成了业务迫切需要的功能,并做到了大规模的稳定运营。在此过程中,产品和技术同学通过日常、早会和周会等形式沟通协作,研发工程师也积极参与到业务需求沟通、方案设计与研发计划制定等活动中,确保能够迅速应对一线需求的变化,并倾听一线终端用户的声音,以提升用户体验。
——空间数字化部-产品总监 李岳

有幸全程参与了充电桩项目敏捷团队的成长,见证了小伙伴们从敏捷项目初期的跌跌撞撞,到后期每个人都有能力担任团队敏捷教练的角色。在敏捷项目迭代和交付的过程中,所有成员都对敏捷理念有了更深入的理解,整个团队的敏捷实践能力得到显著提高。
——企业架构与安全部-架构专家 刘刚

有幸在2024年1月跟着充电桩项目体验了敏捷交付模式,不仅感受到团队的和谐团队氛围,也体验到了敏捷研发带来的显著交付效益。
敏捷“五大会”是研发过程的灵魂节点:每日站会让团队成员清晰交付进度和当前问题,对站会时间的把控可以间接地体现项目负责人的管控能力;回顾会通过匿名的形式提交“做的不好”的事项,可以更有效地帮助团队进步;项目架构师和技术负责人在版本管理、架构设计和部署发布这几个方面的规范性是充电桩项目优秀性能的坚石;合理的提测和部署流程让项目组在快节奏敏捷模式下保障交付质量。
希望敏捷研发模式能尽快的在科研项目中推广,也希望有能力的敏捷教练能将敏捷能力辐射至中心每一位研发同事。
——平台数字化部-体系流程高级主任 何佩红

产品与开发之间清晰的工作分工边界,开发内部高效的团队协同与交付,始终坚持“敏捷宣言12条原则”,是充电桩敏捷团队给我的主要印象,非常值得点赞,也值得各个项目参考学习。
充电桩敏捷实施高效地执行了敏捷开发流程框架中的五大会议:产品需求梳理会、迭代计划会议、每日站会、迭代评审会及迭代回顾会,每个会议都有专属的会议目标,不同的角色成员在会前都准备充分,保障了会议的高效沟通与决策,这也是敏捷团队高效协同的基础。
充电桩敏捷团队最成功的是不停机无感交付,“ScrumMaster”亲自负责代码分支管理,完美地实现版本火车管理,快速交付的同时确保了系统可用性。超赞!
——平台数字化部-体系流程高级主任 韦冬梅

充电桩项目在敏捷模式下,团队中的每个人不管是不是处于领导者的职位,都会从团队拥有者的角度去考虑问题,关注各项活动质量并及时反馈。目前,充电桩敏捷项目已实现组织管理,团队内有完善的规则,大家按照规则办事,不为职责范围争吵。产品产研团队高协作,在时间紧、目标重的情况下,快速迭代交付,积极响应一线反馈问题及业务需求。通过交付更高的内建质量,促使开发效率和质量得到提升,减少传统模式验收交付环节,大大提升效率的同时,平台稳定性也达99.99%。
——空间数字化部-产品专家 张雪晴

前言

敏捷开发是应对快速变化需求的一种软件开发能力。以用户的需求进化为核心,采用迭代、循序渐进的方式,适用于需求不明确或者很容易变化且可以逐步交付功能产品。敏捷开发对需求的变化具备极大的灵活性,能够更快交付价值,主动拥抱变化。

目前,充电桩项目敏捷实践已落地,支持敏捷发布火车模式的同时,帮助产品研发团队完成业绩和效率的双向提升。

敏捷开发概述

1、敏捷宣言

敏捷宣言提出的12条原则:

1、最高优先级:通过尽早和持续交付有高价值的软件,满足客户。

2、拥抱需求变化:即使是在开发阶段的后期,敏捷流程就是用变化来为企业获得竞争优势。

3、频繁交付可工作的软件:从数周到数月,交付周期越短越好。

4、在项目过程中,业务人员、开发人员必须每天在一起工作。

5、以受到激励的个体为核心构造项目,为他们提供所需的环境和支持,信任他们可以把工作做好。

6、最有效的、最高效的沟通方法是面对面的交谈。

7、可工作的软件是衡量进度的首要标准。

8、敏捷流程倡导可持续开发。客户、开发人员与用户要能够共同、长期维持步调(节奏)、稳定向前。

9、持续地追求技术卓越和良好的设计,以此增强敏捷的能力。

10、简单--最大可能减少不必要的工作,简单是敏捷流程的根本。

11、最佳架构、需求和设计,来自组织型的团队。

12、团队定期反思如何提升效率,并调节和调整自己的工作方式。

2、敏捷开发流程框架

3、敏捷团队角色

敏捷开发实践

充电桩项目于2023年5月在上海成立敏捷团队,该团队在最初阶段面临着团队协作与跨地域沟通等挑战,经过半年多的磨合,团队逐步适应了敏捷流程和工具,经历了从敏捷开发和流程工具试用到团队成长、成熟的转变。这一过程促进了敏捷团队成员间的合作默契,敏捷开发模式也逐渐显现出其成效。

下面,将通过五个重要的会议(产品需求梳理会、迭代计划会议、每日站会、迭代评审会以及迭代回顾会)来介绍充电桩项目敏捷开发的日常运作流程。

1、产品需求会

在迭代开始前2-3天, 敏捷教练、产品与架构师/技术专家参与产品需求梳理会(会议时长1小时),完成如下事项:

  • 制定需求和任务优先级;
  • 评估所有任务的准备工作是否完成,如UI设计图与架构设计图等;
  • 迭代目标;
  • 版本发布计划和范围。

产品负责人:根据价值交付原则制定产品类需求的优先级。
架构师/技术专家:负责制定技术类需求的优先级,并评估需求对系统造成的影响,提前分析可行性,安排技术演进线路图,规划和粗略评估迭代的技术架构任务。

2、迭代计划会

在迭代开始时,敏捷教练组织产品负责人、架构师、研发团队参与迭代计划会(会议时长2小时左右),完成如下事项:

  • 规划迭代目标;
  • 认领迭代需求和任务;
  • 分解用户故事;
  • 估算工作量。

产品负责人:给研发团队讲解需求。
架构师:讲解技术类需求,认领架构设计任务,协调研发团队架构改造与功能开发的交付节奏。
研发团队:分解用户故事、估算工作量并认领任务 。

3、每日站会

每天上午9:00-9:15,敏捷教练组织产品、架构师与研发团队参与每日站会(站会时长不超过15分钟),完成如下事项:

  • 敏捷团队成员更新自己任务进度,相互了解依赖任务的风险和计划;
  • 敏捷教练和产品负责人了解项目风险,动态调整任务优先级和范围;
  • 解决任务开发中遇到的阻塞。

站会规则:

  • 必须站立,不要坐着,因为站着更容易集中注意力,同时要把控时间,高效完成站会;
  • 拥抱变化,每天动态调整任务优先级,如“线上问题”和“紧急需求”需要最高优先级处理;
  • 每天早上固定时间、地点进行;
  • 不能快速讨论出结果的问题,由敏捷教练整理问题并召开跟进会议。

每个成员在会议前做好准备,会议上快速阐述3点内容——昨天完成了什么?今天计划做什么?当前的工作有没有被阻塞?



4、迭代评审会

迭代结束或版本发布前,敏捷教练组织产品、架构师、研发团队与UI设计师参与迭代评审会(会议时长1-2小时),完成如下事项:

  • 需求负责人演示产品功能;
  • 产品负责人验收产品类需求;
  • 架构师/技术专家验收技术类需求;
  • UI设计师验收前端页面。

5、迭代回顾会

迭代最后1天,敏捷教练组织团队所有人参与迭代回顾会(会议时长1小时),完成如下事项:

  • 团队成员匿名反馈“做得好的”和“做得不好的”事项/人;
  • 团队一起针对“做得不好的”事项/人,商讨出改进措施,并制定落地计划;
  • 团队一起针对“做得好的”事项/人,提出表扬并鼓励大家继续保持。


DveOps流程

充电桩敏捷开发过程,注重开发与运维之间的交流和合作,以⼩步快跑的形式,快速迭代、构建、测试并发布版本。在日常工作中,按照以下步骤,以提升效能:

1、架构设计

架构师与研发团队在迭代早期,针对本迭代需要引入架构设计的需求,讨论方案,对业务流程、代码架构与数据架构进行设计或重构。

2、Git工作流

充电桩项目开发遵守Git工程流:按照分支管理规范创建版本主分支(dev/)、主要功能分支(feature/)及研发各自的开发分支,云效上设置保护分支,制定代码提交规范与分支合并规范,尽可能关联云效任务。



根据功能的难易程度和影响范围,可选择2-3人同时开发同一个任务,以加快交付进度。

3、版本发布

敏捷教练和产品负责人制定版本发布计划,团队按照迭代计划开发。

如果遇到线上紧急问题,敏捷教练和产品负责人动态调整迭代发布内容及计划,团队快速修复问题后及时发布。

4、代码和架构评审

在研发的过程中和交付测试之前,架构师需要对功能模块的实现进行技术评审,以确保遵循架构设计的规范,同时评估架构设计的合理性,以及是否达到架构设计的目标。

5、知识分享

在开发过程中,研发团队的阶段性研究成果或踩过的坑,在团队内进行分享,并记录到研发wiki。

6、持续集成/持续部署(CI/CD)

充电桩项目在云效流水线上,建立了完整的编译、测试及发布流程,包含代码下载与编译、构建、上传镜像,以及静态代码扫描、单元测试、接口自动化测试、应用部署。

7、运维监控

快速响应:整个研发团队7*24小时保障系统平稳运行,所有人都需要对监控告警进行响应,快速拉起在线会议解决服务问题,以避免系统出现不可用情况。

资源按需申请:对关键服务和中间件的性能指标进行监控,根据业务增长情况预估资源使用量,并在恰当时间进行升配,以应对不断增长的业务流量。


质量保证

为配合敏捷项目的快速发版,并确保上线的版本质量,充电桩项目遵循“端到端的质量策略,快速的质量反馈”的基本原则。

1、功能测试

通过需求层层确认对齐,保证需求的分析质量和传递质量,结合高效测试来快速地反馈质量。

  • 尽早介入了解需求,减少对需求理解偏差,让团队成员对需求的理解保持一致;

  • 紧跟迭代任务进度,缺陷状态,快速反馈质量结果,推动研发提升效能;

  • 高效测试:结构化测试(基于需求设计测试用例,关联衍生场景用例等) + 探索性测试(基于埋点数据/用户反馈进行故障推测,异常条件测试等)。

2、自动化测试

引入自动化测试是确保质量的重要手段,尤其在少量人工投入的情况下可达到高覆盖率。目前充电桩项目单元测试和接口自动化测试已集成云效流水线,提前发现代码逻辑缺陷,提高开发质量和软件交付率。

  • 单元测试(Junit框架,新功能80%覆盖率)的实现,确保软件的各个模块能够按照预期运行,排除潜在的缺陷和错误;

  • 接口自动化(Pytest,接口数95%覆盖率)的实现,节省回归测试人力,缩短测试周期;

  • UI自动化(Selenium WebDriver框架)在规划中,将会为产品上线后快速验证,提供可靠的依据。

3、性能测试

利用性能测试工具(JMeter)模拟真实场景进行压测,通过监控平台识别系统瓶颈,协助开发性能调优,目前主要进行接口和数据库MongoDB慢查询优化。

总结

充电桩项目在经历半年多的敏捷开发模式的运作下,共经历了22个迭代,无重大生产事故:

充电桩项目敏捷开发经验可概括为以下几点:

1、为满足随时发版,采用敏捷发布火车发版模式,解耦迭代与版本之间的关系;

2、为解决“紧急任务插入迭代”与“已排期任务” 之间的冲突,根据价值交付原则,动态调整迭代任务优先级;

3、为解决代码冲突,减少发布故障,通过设置代码仓库分支策略来应对灵活的发布要求;

4、为保证快速的质量反馈,利用敏捷可视化工具(如用例分类管理、用例需求关联、需求缺陷关联以及缺陷定制化流程处理),提高研发效能,避免不必要的时间浪费;

5、为解决团队异地办公问题,通过敏捷可视化工具监控项目进度,利用好钉钉高质量的会议沟通,让团队协作顺利进行。

标签:需求,团队,迭代,敏捷,交付,充电,分享
From: https://www.cnblogs.com/bkyfw/p/18129483

相关文章

  • 合合信息分享数据资产管理经验,释放数据要素价值,发展新质生产力
    为加快推动产业数据行业创新中心建设、搭建高效的供需对接平台,4月9日,上海数据交易所、上海合合信息科技股份有限公司(下称“合合信息”)和上海市数商协会联合举办DSM系列——产业数据行业创新中心专题研讨会,以“数据资产管理与创新应用”为主题,探讨产业数据产品化、资产化,共促产业......
  • 腾讯云2核4G5M轻量服务器测评报告:在线并发人数实测及优惠购买地址分享
    在当今这个数据驱动的时代,云服务器的选择对于企业和个人而言都至关重要。其中,腾讯云2核4G5M轻量应用服务器因其高性价比而备受瞩目。那么,这款服务器到底能支持多少人同时在线呢?它的并发性能又如何呢?首先,我们要明白并发数是指同一时刻内,服务器能够处理的用户请求数量。对于腾讯......
  • 顺通ERP:精细敏捷的设计理念,得到了消费者的喜爱
     顺通ERP是近年来备受关注的一款ERP品牌,其设计精细,操作便捷,备受消费者喜爱。那么,顺通ERP到底怎么样呢?属于什么档次呢? 首先,从品质上来看,顺通ERP具备高度的稳定性,能够确保企业的日常运营不受影响,软件经过严格的测试和验证,确保在各个环境下都能稳定运行。同时,软件还提供完善的......
  • 链接泄露隐私,通过分享链接反查账号
    你分享的链接泄露隐私了吗,一款可以通过分享链接反查账号的在线工具,用户输入分享的链接找到Ta的账号。平常在互联网上分享的帖子、笔记、视频、音乐等链接,会无意间泄露自己的个人账号,大多数应用在分享链接中使用身份追踪技术,包含你的账号信息,任何人都可以通过你分享的链接查询到......
  • 微信团队分享:来看看微信十年前的IM消息收发架构,你做到了吗
    本文由微信技术团队分享,原题“十年前的微信消息收发架构长啥样?”,下文进行了排版和内容优化等。1、引言2023年,微信及WeChat的DAU(月活用户)达到13.4亿,微信已经是很多人工作、生活中不可或缺的一个环节。从2011年1月21日上线至今,微信已经走过了13个年头,其背后的技术......
  • 10个编程好习惯:优秀程序员的经验分享
    大家好,我是知微!作为一个程序员,写代码就跟厨师做菜一样,如果没有一些好的方法和习惯,做出来的菜肯定又慢又难吃。下面分享一些优秀的编程习惯,用了都说好!1、规范的命名命名是代码清晰度的关键。变量、函数和类的命名需简洁明了,并遵循项目中约定的命名规则,如驼峰命名法或下划线分......
  • spring基本框架搭建(思路分享)
    安装IntelliJIDEA: 如果您还没有安装IntelliJIDEA,请从官方网站(https://www.jetbrains.com/idea/)下载并安装适用于您操作系统的版本。创建新项目: 打开IntelliJIDEA,选择“CreateNewProject”或者通过菜单栏中的“File”->“New”->“Project”来创建一个新项目。......
  • 互联网面经分享:一文教你读懂四种网络拓扑结构
    1.什么是星型拓扑?星型拓扑有哪些优缺点?a.星型拓扑,也称为星状拓扑,以中央节点(通常称为交换机或集线器)为核心,连接了所有其他节点。在星型拓扑中,所有其他节点都直接连接到中央节点,而不直接连接到彼此。b.星型拓扑优势:中央节点集中管理:中央节点在星型拓扑中起着重要的作用......
  • 游戏分享网站的设计与实现|SpringBoot+ Mysql+Java+ B/S结构(可运行源码+数据库+LW)手
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。推荐阅读300套最新项目持续更新中.....最新ssm+java项目文档+视频演示+可运行源码分享最新jsp+java项目文档+视频演示+可运行源码分享最新SpringBoot项目文档+视频演示+可运行源码分享2024年56套包含java,ssm......
  • 【专题】2024年中国游戏营销趋势报告合集PDF分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35745原文出处:拓端数据部落公众号2023年,全球游戏行业表现卓越,不仅用户规模扩大至33.81亿,行业营收也攀升至1.35万亿人民币,呈现出强劲的增长态势。然而,与此同时,全球游戏创业公司在风险投资上的大幅缩减也揭示了行业面临的某些挑战。阅读原文,获取专题......