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

近日,在龙智携手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更新状态与工时录入规范,就能随时获取最新的管理进度信息。并且每个项目的项目经理会每日更新开发进度,将开发计划同步到工作群中。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

将数据库配置迁移nacos报错:Request nacos server failed:

网上查了很久大部分都是版本不一致导致造成,但是没迁移的时候就可以,为啥迁移了就不行了呢? 最后排查发现:application.yml文件我注释掉的数据库配置 多注释了一个Spring开头

学SQL JOINS看这一篇文章就够了

目录 下面以实例进行分析 内连接 inner join 或者join(等同于inner join) 外连接 left join 或者left outer join(等同于left join) [ left join 或者left outer join(等同于left join) ] [ where B.column is null ] right join 或者right outer…

【有ISSN、ISBN号!往届均已完成EI检索】第三届电子信息工程、大数据与计算机技术国际学术会议(EIBDCT 2024)

第三届电子信息工程、大数据与计算机技术国际学术会议(EIBDCT 2024) 2024 3rd International Conference on Electronic Information Engineering, Big Data and Computer Technology 第三届电子信息工程、大数据与计算机技术国际学术会议(…

广告公司选择企业邮箱的策略与技巧

对于广告公司而言,选择一款适合的企业邮箱不仅能提升工作效率,更能维护并强化公司的品牌形象。以下是在选择企业邮箱时需关注的关键因素和注意事项。 1、邮件服务商的安全性。 邮件服务商应具备严密的安全防护措施,包括反垃圾邮件、防病毒、防…

macOS安装JDK8

在这篇博客的基础上进行补充。 https://blog.csdn.net/Sarah_luxy/article/details/128797756 百度搜索jdk8,选择官网进入 下载需要注册账户,提前注册登录 进入到Java SE中 选择下载 选择java归档,在历史版本里找jdk8 下拉找到jdk8 选…

老化房设备材料选型要素

一:选择高温老化试验设备时,需要考虑以下几个因素: 温度范围:根据待测材料或产品的使用环境和需求,选择合适的温度范围。确保试验设备的最高和最低温度能够满足需求。控温精度:控温精度越高,试…

Flink运行时架构核心概念

Flink运行时架构 JobManager:协调,决定何时调度下一个task,对失败任务做恢复。 ResourceManager: 负责Flink集群中的资源提供、回收、分配,它负责管理task slot。standalone模式下,不能自行启动新的taskmanagerDispatc…

Linux DataEase数据可视化分析工具本地部署与远程访问

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务…

新书推荐——《Copilot和ChatGPT编程体验:挑战24个正则表达式难题》

《Copilot和ChatGPT编程体验:挑战24个正则表达式难题》呈现了两方竞争的格局。一方是专业程序员David Q. Mertz,是网络上最受欢迎的正则表达式教程的作者。另一方则是强大的AI编程工具OpenAI ChatGPT和GitHub Copilot。 比赛规则如下:David编…

Spring Security6 快速实战

Spring Security 介绍 官网:https://spring.io/projects/spring-security Spring Security 定义 Spring Security 是一个能够为基于 Spring 的企业应用系统提供声明式的安全访问控制解决方案的安全框架。Spring Security 主要实现了认证和授权,SpringSe…

多波束EM2040D甲板单元更换CPU主板记录

前段时间多波束EM2040D甲板单元的CPU主板到货了。趁着船刚好靠港避风,我们带着这块主板去替换之前借来EM2040C的CPU主板。 1、CF卡替换问题 老主板有个CF卡,见下图。最好的解决方法就是将老CF卡替换新CPU主板上的新CF卡,因为这样改动最小。…

单目相机测距(3米范围内)二维码实现方案(python代码 仅仅依赖opencv)

总体思路:先通过opencv 识别二维码的的四个像素角位置,然后把二维码的物理位置设置为 cv::Point3f(-HALF_LENGTH, -HALF_LENGTH, 0), //tl cv::Point3f(HALF_LENGTH, -HALF_LENGTH, 0), //tr cv::Point3f(HALF_LENGTH, HALF_LENGTH, 0), //br cv::P…

SAAS版专业级条码标签打印软件解决方案

一。新一代互联网打印模式 saas云标签打印软件支持条码、二维码、表格等模式组合打印,支持批量打印标签、表格模拟数据 、在线预览二维码打印 、在线条码生成打印标签 ● 条码/二维码/标签打印,支持表格批量打印标签; ● 条码/二维码尺寸…

呼叫系统的客服的计费模式有哪些?

大家都已经了解呼叫总的区分为两种呼入和呼出。呼入就是建立客服呼叫中心,呼出就是电销回访外呼中心。那么相应的计费模式也是有不同的。下面看看以下几种收费模式 : 一、按月收费模式 也叫固定客服模式,是根据上月结算的费用,企业…

C++11--右值引用

目录 基本概念 左值和右值 左值引用和右值引用 右值引用使用场景和意义 左值引用使用场景 左值引用的短板 右值引用和移动语义 右值引用引用左值 右值引用的其他使用场景 完美转发 万能引用 完美转发保持值得属性 完美转发使用得场景 基本概念 左值和右值 什么…

二维码智慧门牌管理系统升级:轻松解决重新制牌问题

文章目录 前言一、更便捷的申请方式二、系统优势 前言 随着科技的快速发展,智能化管理已经成为我们日常生活的一部分。最近,为了满足人们对门牌类型更换、门牌丢失等需要重新制牌的需求,二维码智慧门牌管理系统升级了解决方案,为…

网络安全卫士:上海迅软DSE的员工上网管理策略大揭秘!

在日常办公中,企业员工可能会在互联网上有意或无意的将一些包含内部重要信息的内容发布出去,从而造成不必要的违规及泄密风险,因此对终端用户进行规范的上网行为管理,既能有效预防重要数据泄密,同时也能提高员工办公效…

高等职业学校新媒体营销实训室解决方案

背景 随着数字化时代的来临,新媒体营销成为企业推广和品牌建设的关键手段。为了培养高职学生在新媒体领域的实际操作能力,建立一套全面、系统的实训室方案至关重要。 目标 搭建高职新媒体营销实训室,旨在培养学生的实际操作能力&#xff0…

【记忆】变上限积分的可导性

只要写出来默认连续。fx连续或者可去间断点,Fx可导,跳跃间断点,Fx不可导但连续。 图片摘自没咋了23李林解析课程

.Net core 6.0 升8.0

1 Update Visual Studio 2 3 用Nutget 更新不同套件版本 更新后结果如下: