紫龙游戏解锁Jira与Perforce的游戏开发行业实践

news2024/11/20 19:34:04

近日,在龙智携手Atlassian与JFrog共同举办的“大规模开发创新:如何提升企业级开发效率与质量”的线下研讨会中,紫龙游戏上海研发中心高级项目管理主管叶凯威为大家带来了精彩演讲, 分享紫龙游戏的项目管理工具与流程,以及他们使用Jira与Perforce的实践心得。

图片

叶凯威

紫龙游戏上海研发中心高级项目管理主管

演讲视频:

Perforce芯片设计管理

演讲文字回顾(有删减):

大家好,我叫叶凯威,来自紫龙游戏公司,很高兴能在这里与大家进行分享。今天分享的主题是Jira赋能游戏开发工业化,主要是Jira在我们紫龙游戏的规划中承担的角色及具体实践。

今天的分享主要分为两部分,第一部分项目管理的工具与流程,第二部分会结合第一部分,分享Jira与Perforce的使用实践。

项目管理的工具与流程

首先分享项目管理工具的核心思想。首先,最重要的是流程先于工具。Jira作为一个工具,应当服务于项目管理流程,保证流程的100%执行和高效执行。

其次是工具保证信息传递与处理效率。第一,工具保证信息传递给目标对象;第二,保证信息传递的准确性和完整性;第三,保证信息处理高效及时(尽量自动化代替手动)。

最后是数据的结构化。数据需要有结构化的表达和存储,才能根据项目管理流程的需要进行定向数据统计、处理和分析。例如,我们会在Jira工单中添加功能范畴标签和职能标签。功能范畴标签指的是此工单与某功能模块相关,职能标签指当前工单由哪一职能来执行。根据这两个标签,可以统计出基于某个版本、某个功能模块中某个职能共有哪些任务需要完成。

紫龙上海研发中心的项目管理流程大致分为三个阶段。第一阶段称之为瀑布式开发期,在整体版本生命周期的时间长度中大约占比60%-70%。第二阶段称之为敏捷式开发期,主要处理版本初期未考虑到的优化需求的开发。第三阶段称之为质量迭代期,主要处理当前版本的剩余缺陷。

瀑布式开发期大致分为三个流程。首先是版本目标确认,此阶段要求每个项目的负责人在版本初始阶段整理出需要在此版本中实现的一系列Feature,其次项目制作人发送邮件到公司管理层以进行审批、确认。在此基础上,我们会基于确定的版本范围来整理具体的开发计划。

Jira使用实践及其与Perforce的结合使用

主要分为四个部分。第一部分是Feature List制定与项目计划生成,第二部分是项目计划与Jira系统同步,第三部分是Jira工单执行,最后是贯穿整个开发流程的Jira日报与项目计划日报。

  • Feature List制定与项目计划生成

在Feature List制定与项目计划生成过程中,主要会面临两个痛点:

  1. Feature List需要多人协同整理编辑,频繁由专人进行整合,整理效率低;

  2. Feature List拆分出的WBS任务项数量很多,项目经理需要手动将任务项誊写到Project文件中。

基于这两个痛点,我们的解决方案有两种。第一种是采用在线表格协同编辑,第二种是开发了一个Excel插件,基于固定格式的WBS任务项,可直接输出Project文件,节约时间。

图片

图片

  • 项目计划与Jira系统同步

在项目计划与Jira系统同步过程中,一开始,我们基于在Project中排好的开发计划,需要人工手动在Jira中创建与开发任务对应的工单及相关依赖关系。这将导致大量的人力、时间被耗费,并且导致工单创建不及时。基于这个痛点,我们开发了Project插件,可自动将Project中的开发任务导入Jira建单,从而使实际开发计划中的任务与Jira中的子任务一次性同步,确保项目计划的有效性。

图片

图片

  • Jira工单执行

接下来,我将具体介绍紫龙在Jira工单使用执行的具体实践。首先是使用的工单类型。

在瀑布式开发期,我们重点处理Story(对应Feature)和Breakdown(对应Feature拆分出的WBS任务)类型工单。

在敏捷式开发期,我们重点处理Task(对应小优化需求)和高优先级Bug类型工单。

在质量迭代期,我们重点处理次优先级Bug类型工单。

Story使用实践

在实际处理Story时,我们遇到了策划未经管理层审核,自行添加Feature List之外的新Feature需求,创建新的Story,从而导致版本范围不可控的情况。为解决这一问题,我们在Jira中设置了一个权限:只有项目经理可以创建Story。

图片

△ Jira中除项目经理之外的用户无创建Story选项

Task使用实践

接下来是Task使用实践。以下是比较重要的一下实践,后续我也会具体讲解:

  • Task支持根据应用场景,配置常用的固定工作流

  • Jira中设置权限:只有职能leader可以创建Task

  • Task通过职能标签进行跨流转,默认转给职能标签负责人

  • Task状态变为已解决,自动转给对应功能范畴标签所负责的QA负责人

  • Jira中设置权限:只有QA才能关闭Task

  • 版本状态变为开发需求冻结后,新增Task自动转给项目负责人确认

第一流程痛点是,团队在使用Task时,可能遗漏处理个别环节。例如在游戏开发过程中,音频部门会遗漏某个角色的音效。音频属于生产流程中最末端的环节。根据这一目的,我们开发了Task,能够支持具体的应用场景、可配置常用的固定工作流。

图片

第二个流程痛点是,所有策划都在提Task,且未经过leader审核,存在一部分不合理或必要性不高的需求。基于这一痛点,我们Jira中设置了相应权限:只有职能leader可以创建Task,达到控制Task合理和调性的目的。

图片

△ Jira普通用户无创建Task选项

第三个流程痛点是,策划想开发团队提Task,绕过职能leader,相当于直接给开发团队中负责开发的人员提需求,导致对应的职能表不支持,无法整体控制开发质量以及管理团队工作安排。我们的解决方案是在Task中增加职能标签。一般用户只能通过修改职能标签进行跨职能流转。当此标签发生变化,Jira系统可根据规则默认转给职能标签负责人,实现了整体生产环节的可控。

图片

第四个流程痛点是,Task变为已解决之后,未转给QA进行测试便关闭,存在质量隐患。我们的解决方案是将Task变为已解决,自动转给对应功能范畴标签所负责的QA人员。还可以在Jira中设置权限——只有QA才能关闭Task,确保所有的Task都经过技术人员进行有效测试。

图片

△ 系统自动将职能标签改为“QA”,并且将经办人改为负责对应功能范畴标签的QA人员

第五个流程痛点是,在开发需求冻结后,仍然有不少Task提出,影响版本最终交付。针对这一痛点,我们在Jira版本中设置了“开发需求冻结”状态,在此状态产生变化时,新增Task会自动转给项目负责人,由其确认是否有必要进行开发。这将大大减少不必要的Task开发需求,以及确保项目顺利进行。

图片

△ 系统自动将状态改为“待确认”,将职能标签改为“制作人”,并且经办人也随之修改

Bug使用实践

接下来是一些Bug的使用实践。

  • 非QA或新人QA提报的Bug工单,自动转给功能范畴标签的QA负责人审核是否符合规范;

  • Bug通过修改职能标签进行跨职能流转,默认转给职能标签负责人;

  • Bug状态变为已解决,自动转给对应功能范畴标签所负责的QA负责人;

  • Bug在已解决状态下,被QA打回给开发,则会记录被打回职能及原因;

  • Jira中设置权限:只有QA才能关闭Bug。

我将主要介绍加粗部分的实践,因为其他实践与Task类似,故而省略。

在生产过程中,我们会发现非QA或新人QA提报的Bug工单不规范,缺少复现步骤、日志等必要信息,影响开发人员修复Bug的效率。我们的解决方案是将非QA或新人QA提报的Bug工单,自动转给功能范畴标签的QA负责人,由他们来审核是否符合规范。这将从源头确保Bug工单中的信息有效性。

图片

△ 系统自动将状态改为“待确认”,将职能标签改为“QA”,并且经办人也随之改为负责对应功能范畴标签的QA人员

另一个问题是,许多已解决状态的Bug转给QA,但QA测试后发现实际并未修复,极大影响Bug修复效率。针对这一点,我们的解决方案是发现Bug在已解决状态下但实际未修复,则被QA打回给开发,并记录被打回职能及原因。当打回次数到达一定阈值时,可从Jira后台拉取数据进行分析。例如哪个功能模块的Bug经常被打回、哪个职能修复的Bug经常被打回等,从而帮助识别出现问题的环节。

图片

与Perforce配合使用

接下来是Jira工单与Perforce(Helix Core)配合使用的实践。在没有使用Perforce(Helix Core)之前,我们会发现几个问题。首先是版本控制系统中签入的提交没有遵守统一的规范,导致质量参差不齐。第二个问题是签入没有工单对应的提交,缺少主要leader确认及QA测试,存在质量隐患。第三个问题是可能签入不属于当前分支的提交。因为在游戏上线后,需要管理较多的版本,开发人员容易选择错误的版本。

基于以上三个问题,我们选择使用Perforce版本控制系统Helix Core,并且配合了二次开发使用,能够有效解决问题。

以下是详细流程规范。

开发人员在Perforce签入前需要先向leader发起review,否则无法签入。同时,需要人工的工作由leader承担,可由机器执行的检查工作由后台持续集成的专业流水线承担,例如代码编译检查、文件命名检查和Unity meta文件检查等。

图片

图片

我们还要求Perforce签入注释必须有Jira单号、版本、功能范畴标签、职能标签,否则无法签入;Jira配置版本与Perforce分支的映射关系,签入注释如果使用错误版本的Jira单,也无法签入。

  • Jira日报与项目计划日报

再聊一下Jira日报与项目计划日报,它会贯穿整个开发的生命周期。我们在Jira日报中遇到的流程痛点是:项目经理需要每日手动统计Jira中各类工单变化信息,并向干系人发送日报邮件,统计工作机械重复。为此,我们写了Jira每日自动发送日报邮件的脚本,在脚本中定义好需要统计的信息,再由Jira配置执行。

图片

图片

我们的Jira日报中包含版本中最重要的几个节点、日期、其他规定等。以及可以进行布置开发计划中承担主要开发任务的breakdown工单类型。我们会按照细分的职能统计每个职能下的完成数量、完成率和延期任务。

图片

这是基于Task的总结。我们会统计当日Task变化以及当日总数等。以及我们在做一个新的尝试,增加了各职能待解决Task数量的统计。不仅如此,还能统计需求从寒冷变为冻结状态后新增的Task数量。

图片

从这张图中可以有效关注到需求中bug的变化。

图片

我们会列出截止当日优先级较高的Task与bug列表。

图片

图片

再说一下项目计划日报。在以往,项目经理需要人工向开发团队逐项确认计划执行进度,每次核对耗时长,难以每日执行并及时发现问题。为此,我们开发了一个Project插件,支持即时将Jira Breakdown工单进度数据同步回Project中,从而确保只要监控好Jira更新状态与工时录入规范,就能随时获取最新的管理进度信息。并且每个项目的项目经理会每日更新开发进度,将开发计划同步到工作群中。

以上是我今天的分享,谢谢大家!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1282580.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

处理和分析人类语言数据-NLTK安装和使用

简介:NLTK(Natural Language Toolkit)是一个强大的Python库,用于处理和分析人类语言数据,是一个开源的项目,包含:Python模块,数据集和教程,用于NLP的研究和开发&#xff…

微软推出AI助手Copilot的正式版本;ChatGPT:七位研究人员分享他们的观点

🦉 AI新闻 🚀 微软推出AI助手Copilot的正式版本 摘要:微软宣布其AI助手Copilot正式上线,此前Copilot的预览版已成为很多用户的日常AI伴侣。此次上线后,Copilot将继续提供AI驱动的网络聊天体验,并具备商业…

SAP_ABAP_内表数据重复问题,解决思路

SAP ABAP 顾问(开发工程师)能力模型_Terry谈企业数字化的博客-CSDN博客文章浏览阅读516次。目标:基于对SAP abap 顾问能力模型的梳理,给一年左右经验的abaper 快速成长为三年经验提供超级燃料!https://blog.csdn.net/j…

终端安全管理软件是监控软件吗

有些人在后台问,终端安全管理软件是监控软件吗? 先回答,是监控软件。 因为它具有监控的功能,在很大程度上,是可以用来当做监控软件来用的。 终端安全管理软件是一种集中管理终端设备的软件工具,可以在企业…

Windows下打包C++程序无法执行:无法定位程序输入点于动态链接库

1、问题描述 环境&#xff1a;CLionCMakeMinGW64遇到问题&#xff1a;打包的exe无法运行&#xff0c;提示无法定位程序输入点于动态链接库。 2、解决思路 ​ 通过注释头文件的方式&#xff0c;初步定位问题是因为使用了#include <thread> 多线程库引起的。而且exe文件…

很详细 无人机自主飞行技术的要点与优势

随着无人机自主飞行技术的不断成熟&#xff0c;其在提升巡检效率和减轻工作负担方面正日渐显现为一项强有力的工具。在本文中&#xff0c;我们将共同探讨无人机自主飞行技术的精髓。 一、无人机自主飞行技术的要点 1、 一键式航线规划 为确保无人机在任务中能够安全飞行&…

成人学生钢笔练字快速入门,硬笔书法行书楷书教程合集

一、教程描述 虽然现在都是电脑打字&#xff0c;需要手写的场合越来越少&#xff0c;但是可以写一手人见人爱&#xff0c;花见花开的好字&#xff0c;仍然是很拉风很惊艳的&#xff0c;可以给人留下深刻印象。本套硬笔书法教程&#xff0c;大小40.90G&#xff0c;共有591个文件…

Java参数验证@Validated

就以登录接口为例&#xff0c;如果用户传参的时候没有传递帐号或者密码&#xff0c;会报错&#xff0c;但是报错的信息不够全面&#xff0c;前端人员不好判断是什么问题&#xff0c;这个时候就需要对参数进行一个校验 引入依赖 <dependency><groupId>org.hibernat…

rust入门(rust教程、rust安装方法)

文章目录 Rust开发入门Rust的特性Rust的应用场景Rust安装——环境配置1. 安装rustup具体执行步骤 2. 验证安装 Rust的卸载基本语法变量与数据类型控制流函数 Rust的所有权系统错误处理实战&#xff1a;构建一个小项目创建新项目编写代码运行项目安装相关链接器运行 删除项目 Ru…

vue-cli创建项目运行报错this[kHandle] = new _Hash(algorithm, xofLen);(完美解决)

1&#xff1a;问题出现的原因 出现这个问题是node.js 的版本问题&#xff0c;因为 node.js V17开始版本中发布的是OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制&#xff0c;可能会对生态系统造成一些影响。故此以前的项目在使用 nodejs V17以上版本后会报错。…

【C#】读取ini配置文件的内容

一、编写ini配置文件 ini文件时初始化文件&#xff0c;通常是系统配置文件所采用的存储格式。ini文件有自己的固定格式&#xff0c;是由若干个“节”&#xff08;section&#xff09;组成&#xff0c;每个节由若干个“键”&#xff08;key&#xff09;组成&#xff0c;每个key…

上门预约洗衣洗鞋管理软件小程序开发;

闪站侠洗衣洗鞋店管理软件 为洗衣洗鞋店、干洗店提供加盟、直营连锁管理&#xff1b; 实现门店上门收衣>开单拍照>清洗护理>工厂洗涤>订阅信息进度通知>会员取衣>报表统计等服务流程。实现上门收衣服务&#xff0c;数据实时同步门店&#xff0c;提高店铺形象…

No supported authentication methods available (server sent: publickey) 问题的解决

参考&#xff1a;git clone使用ssh报错: No supported authentication methods available(server sent: publickey) 的解决办法_赵锦川的博客-CSDN博客 No supported authentication methods available (server sent: publickey) 修改&#xff1a;网络的中的SSH设置

PHP使用HTTP代码示例模板

PHP是一种广泛用于服务器端的编程语言&#xff0c;它提供了许多内置的函数和扩展&#xff0c;以便开发人员能够轻松地处理HTTP请求和响应。在PHP中&#xff0c;您可以使用以下代码示例模板来处理HTTP请求和生成HTTP响应。 php复制代码 <?php // 处理GET请求 if ($…

预约按摩小程序有哪些功能特点?

随着科技的飞速发展&#xff0c;我们的生活方式发生了翻天覆地的变化。现在&#xff0c;只需动动手指&#xff0c;就能解决许多生活中的问题。同城预约上门按摩小程序&#xff0c;就是这样一个方便、快捷的解决方案。 在忙碌的生活中&#xff0c;身心疲惫的人们急需一种快速有效…

CentOS系列:【Linux】CentOS7操作系统安装nginx实战(多种方法,超详细)

CentOS7操作系统安装nginx实战&#xff08;多种方法&#xff0c;超详细&#xff09; 一. 实验环境二. 使用yum安装nginx2.1 添加yum源2.1.1 使用官网提供的源地址&#xff08;方法一&#xff09;1. 找到官网的源2. 使用rpm -ivh 进行安装3. 安装完成之后查看源&#xff1a; 2.1…

单个 Zip 文件体积超过 40GB

单个 Zip 文件体积超过 40GB WinRAR 平时用的多,不过有时候为了更好的通用性,也常常用到 zip 格式.查了一下资料,说是 zip 单个文件的体积不能超过 4GB. 自己动手试了下,用 WinRAR 创建出来的 zip 文件,大小可以超过 40GB, 如下图 为了压缩速度快,压缩方式用的是 “存储” Wi…

分布式锁框架Lock4j简单使用

最近项目中使用到了Lock4j的分布式锁组件&#xff0c;小编今天就带大家学习一下该框架&#xff0c;以及如何在我们项目中进行集成使用。 一、简介 Lock4j是一个分布式锁组件&#xff0c;它提供了多种不同的支持以满足不同性能和环境的需求&#xff1b;它基于Spring AOP&#…

HT4822 无输出隔直电容 立体声耳机放大器 中文资料

HT4822是一款无需输出隔直电容的立体声耳机放大器。HT4822支持差分和单端的模拟信号输入。 HT4822在3.6V供电下&#xff0c;THDN 1%&#xff0c;32ohm负载时能提供80mW的输出。其具有低至0.007%的THDN。HT4822能在2.5V-6.0V电源条件下工作&#xff0c;具有过热保护和欠压保护等…

网站变成灰色,实现方式

微信公众号看到一片关于&#xff1a;设置网站变灰的实现方式&#xff0c;觉得很nice&#xff0c;亲测有效&#xff0c;记录一下代码。 https://mp.weixin.qq.com/s/m946vpRpEDFzJNuWRQJrpg方法一&#xff1a; <style type"text/css"> html {filter:grayscale…