前一篇文章我们讲到,DevOps 是一种重视 “软件开发人员(Dev)” 和 “运维技术人员(Ops)” 之间沟通合作的文化,是软件开发领域最近十年来兴起且当下普遍成熟运用的方法论。它和传统的瀑布模型、螺旋模型等理念不同,其核心是 “敏捷”,结果是自动化。
越来越多的企业期望通过引入DevOps 模式,实现更高效的交付效率,从而提升客户满意度、创造更多商业价值。但具体到实施层面,如何成功实践 DevOps 依然是一个难题。长亮科技自主研发的研发协同管理平台(MOne),打通了从需求、设计、开发、构建、测试、发布到部署的全流程,通过平台沉淀标准流程、敏捷实践的方法论,形成企业内部的研发工艺,在DevOps的各个阶段形成有效赋能。
本篇文章将重点分享,长亮科技研发协同管理平台在DevOps的“敏捷迭代”阶段,如何助力研发团队数字化协同水平上一个大台阶。
敏捷迭代全流程
敏捷迭代的实施流程,包含:产品团队对目标进行规划→ 开发进行需求拆解、排期开发→ 测试、测试人员进行迭代排期、开发、测试→ 敏捷教练对迭代进行跟踪和反馈,在这个过程中不同团队的科学分工和优秀协同,是能否真正实现“敏捷”的关键。
产品团队
作为用户需求的分析和研发需求的导入桥梁,需要根据用户场景分析来定义产品的关键特性,使得做出的产品更加贴近用户;
开发团队
作为产品的开发来说,需要根据产品特性来分析、拆解开发团队的研发需求,聚焦于做解决用户痛点问题的需求;
测试团队
测试团队主要作为产品研发过程中质量的保证,通过用例管理、自动化测试等手段,保证交付给用户的产品是经得住考验的;
敏捷教练
敏捷教练主要在研发以Scrum敏捷迭代过程中,监控迭代的进度,识别迭代中可能的风险以及问题,并能够帮助研发团队持续的改善研发效能。
不同场景下敏捷迭代实践
场景一
从用户场景出发识别用户需求
用户场景分析,主要是提供给产品团队,面向用户的使用场景进行的推演分析过程,在分析过程中,主要有两个关键信息。
用户活动: 按照用户操作、使用流程,一步步推演出用户的操作过程,我们称这个流程为用户活动的分析,此过程主要是为了识别用户侧关键的场景行为;
产品能力:用户活动需要产品(组件)的特性来进行支撑,比如用户活动中的“点击流水线发布”活动,就需要MOne Pipeline组件的“动态编排流水线”、“流水线调度执行”等2个产品能力支撑。
通过用户场景分析设计器来承载用户的场景分析过程,最终识别出我们的产品(组件)需要具备什么样的能力。
场景二
聚焦产品的关键特性
“能力地图”是面向用户视角,对产品(组件)对外提供的关键特性的一种表现形式,产品的能力输入来源可由以下两部分组成:
通过“用户场景”推演用户活动后,进而识别产品组件的能力
事先规划系统具备哪些产品组件,以及对应组件的关键能力
当所有产品能力聚合在一起,就可以形成产品的“能力地图”。
通过“能力地图”,我们可以更好的管理和跟踪产品能力。
产品能力到研发需求的管理:产品的能力代表的是产品的特性输出,能力是需要通过研发任务进行分解完成后才能释放的。我们通过分解能力,向下形成研发关注的“待办事项列表”,实现产品能力与研发需求的打通。研发的待办事项就可以通过敏捷迭代的方式,纳入到一轮一轮的冲刺进行完成。在冲刺过程中,研发需求的季度将自动反馈到产品能力的进度上,实现能力进度的同步更新,最终当能力下所有的研发需求关闭后,就代表上层的能力开发完成;
产品能力进度的跟踪:可以通过产品的进度跟踪趋势图,来了解各个产品组件能力的进度。产品能力的进度汇报会以每周进行汇总,方便管理层了解产品的开发情况。
场景三
面向多人开发的协作模式
场景一的“用户场景”主要通过用户活动识别产品能力,场景二的“产品能力地图”是为了更好的管理和跟踪产品能力,以上2个场景都主要是面向产品人员。通过能力向下分解成研发任务时,就会形成研发关注的“待办事项”。
待办事项池:通过规划每2~3周为一周期的迭代,把待办事项纳入到迭代中进行开发;
可视化的迭代看板:通过可视化看板,方便团队对于迭代任务进度对齐和风险预知。
迭代看板可以根据流程划分不同的“泳道”,开发人员在对任务进行处理时,将会挪动看板上的任务卡片,实现状态流转过程。当所有的卡片都在“关闭”泳道时,就代表本轮迭代任务都完成即可关闭迭代。
此外,在看板卡片上,通过“标签方式”可对重要、关键的任务进行标注识别,同时增加“延期的标识”以提醒成员及时处理,避免延期。
场景四
特性分支的驱动开发模式
特性分支的驱动开发模式,主要是为了加快软件的代码开发到测试可交付的流程的一种模式,我们通过检出研发需求对应的代码分支,进行线下的代码Coding工作,当代码开发完成后想快速进行功能验证,可以发起合并申请流程,将自动触发分支的发布流程:
CI构建流水线,进行源代码的构建、打包、质量扫描等流程,上传制品到对应的制品库;
CD发布流水线,将自动触发从制品库中拉取部署的制品包,实现在不同环境中的部署。
在不同环境中部署时,可以通过开发自测、测试人员测试,再到产品的预发布环境进行审查。整个环境研发完成后,将分支代码自动合并到代码主干中。
特性分支开发的模式,串联了开发、测试、产品等多种角色,可以更加快速的打通部门协作壁垒,加快了软件的快速交付过程。
结 语
通过以上4个场景,我们描绘了长亮科技在DevOps的“敏捷迭代”阶段的理念与方法的实践。
在接下来的文章中,我们将聚焦“持续测试”阶段的实践,请您继续关注。