Atlassian In Action-Jira之推荐插件(四)

前面的几章基本已经完整构建了Jira的管理平台,并且有了一套比较完成的制度和方法。但是优化是永无止境的,我们作为研发管理人员,需要让系统使用起来更加高效和便捷。为了达到这个目的一般有两种途径,插件和开发。我们本章再推荐一些插件,下一章会介绍一些很轻量的二次开发,无需修改到jira本身而是使用接口或者数据库的。

本章的推荐插件实际上是暗含了不推荐的同类型插件,因为我在测试过程中,同类型的插件也试用了很多,作为一个排雷说明也一起告知给大家。满分5星

  • 效率类【Adaptavist ScriptRunner for JIRA(☆☆☆☆☆)】

  • 配置优化【Project Specific Select Field(☆☆☆☆)Default Values for Create Issue screen(☆☆☆)】

  • 界面优化【Subtasks section for JIRA(☆☆☆)STAGIL Navigation(☆☆☆)】

  • 移动端【Mobile for JIRA(☆☆☆)】

  • 其他类【Universal gadget for JIRA(☆☆☆☆)】

  • 报表类【无】

分类也只是我个人基于插件使用场景做出的,大家可以有不同的理解。接下来对类别和插件以及使用的场景做个简单的介绍。

效率类

效率类目的是Jira的使用效率,这里只推荐了一款插件,几乎可以说是必备了。Adaptavist ScriptRunner for JIRA,也就是常说的ScriptRunner 。

Adaptavist ScriptRunner for JIRA(☆☆☆☆☆)

这款插件引入了脚本(Script)的概念,你可以编写自己的脚本来注入Jira的系统中运行。最简单的提升就在于JQL的提升。

插件提供了一个函数issueFunction,这个我认为提升了Jira官方JQL至少30%的可用性。

issueFunction

例如:

subtasksOf()或者parentsOf(),括号中可以再次定义一个JQL语法用于查询一个issue清单,从而获得这个清单的所有子任务或者父任务。

如果你安装了,那你可以在 https://jira.yourdomain.com/plugins/servlet/scriptrunner/admin/jqlfunctions 查看所有的JQL函数。

另外再推荐一个用法就是Script Fields,我的使用方法是作为一个计算字段。

例如我们内置了一个成为责任人的字段,用于判定为bug负责的人员,正常来讲这个字段只有一个人,但是有特殊的情况可能是多人均有责任。比如前后端都出错导致了测试提的一个bug的现象。我们要重点确认这类的情况,但是单纯用责任人字段无法排查出多责任人的情况。于是我们设计了一个计算字段,返回值就是责任人字段的长度。

参考截图

Script Fields

其中值得一提的就是字段类型的定义,同时可以指定issue进行验证,下面也给出代码。


import com.atlassian.jira.component.ComponentAccessor

import com.atlassian.jira.issue.Issue

import com.atlassian.jira.issue.fields.CustomField

/**

 * Get number of users for multiuser picker

 */

CustomField multiuserCstFld = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("责任人")

if (multiuserCstFld == null || multiuserCstFld.getValue(issue)==null)

    return 0;

return ((ArrayList) multiuserCstFld.getValue(issue)).size()

配置优化

配置优化的定义是针对管理员在进行设置时,可以增加或者提升配置能力的一些插件。

Project Specific Select Field(☆☆☆☆)

这个我应用的场景实际上是多选字段的使用改进。没有用这个插件之前我们的多选字段是这样的

before

如果要选择多个,需要按住ctrl才能多选。修改之后变为:

after

以标签的形式展示多选,同时也支持搜索。

但要记住,添加自定义字段类型的时候需要选择 Project Specific Multi Select Field 类型,而不是原本的 **选择列表(多选) **。

Default Values for Create Issue screen(☆☆☆)

这个就是自定义字段的插件了,比如说明字段,我们会要求不同的issue类型有不同的模板,这样就可以通过这个来设置。

这个插件分为 Schemes 和 Field Configuration 两部分。

Schemes 用于将 Field Configuration 和项目进行关联。也就是同一个问题类型可以定义多个Field Configuration ,在不同的项目中,出现不同的默认值。

但是实际使用过程中,使用者还会出现更复杂的需求,比如某些字段变化时希望能够联动出现不同的默认值,或者在某些类型的issue评论时也要出现不同的模板。目前还无法支持。

假如一定需要,应该思路是使用scriptrunner。

放弃插件:

Power Custom Fields/Jira Misc Custom Fields,这款似乎也很强大,但是类似Script Field,而且比较复杂。所以在和上面插件比较后放弃。更重要的系统字段是不可以修改的,所以无法应用这类自定义字段修改的插件。

界面优化

这里主要是针对前端界面显示时可以提供一些优化的插件

Subtasks section for JIRA(☆☆☆)

这个是为了自定义主任务视图下的子任务展示,这个是之前的子任务视图

before

这个是使用插件设置之后的

after

原本使用的插件的意图就是为了能够方便任务的查看与管理,一般在同步排期、需求管理时会需要看到。

但是这个插件也存在一些问题,首先是时间格式化无法以中文地区限制,其次有时候某些任务会无法应用样式,具体为什么还没有摸索出来。

STAGIL Navigation(☆☆☆)

这个插件实际上是一个导航栏的自定义插件

STAGIL Navigation

看一下配置就能够理解大概。

我使用这个插件主要场景还是在于,jira在安装插件之后顶部导航就会增加入口,我们对于不同人员分组之后,希望他们能够看到的顶部导航栏的内容不用那么多,只关注于自身需要的内容。因此使用这个插件 对某些用户组隐藏。

移动端

Jira的使用环境还是比较适合PC端,但是当外勤人员也需要参与时就比较复杂。我们的环境里面涉及了客户支持、销售等外部环节,所以移动端的选择也是很重要的一环。

Jira当中最主流的就是两款 Mobility for JIRA和Mbile for JIRA。

我们选择的就是 Mbile for JIRA。

Mbile for JIRA(☆☆☆)

作为一个移动端的app可以和Jira官方app比较一下,感觉使用体验差很多。那为什么选择这款,是因为Mobility for JIRA更差劲。在做选型时,最基础的一关就是数据隔离验证,我们将外部人员和研发内部切分为两个Project,并且不能互相查看。但是在Mobility for JIRA里面没有任何过滤,可以搜索到全局所有的数据。直接放弃。

放一个截图

Mbile for JIRA

放弃插件:

Mobility for JIRA

其他类

这里就是放不太好归类的了

Universal gadget for JIRA(☆☆☆☆)

这个插件算是个神器

Universal gadget for JIRA

由于只是一个Gadget,所以只能够在仪表盘展示,但是却能够自定义html和js,配合Jira的接口,能有很多有意思的玩法。其实有点偏向与简易的二次开发了。

场景1:公告板

公告板

所有角色的仪表盘都插入这个信息,每天打开首页就能够同步所有信息。这个做法也是很讨巧,贴一下代码可以看出


$.getJSON('https://jira.yourdomain.com/rest/api/2/search?jql=key%3dJIRA-3713',function(result){

 $("#cc_main").html(result.issues[0].fields.description);

})

使用了Jira提供的api获取某个issue的描述字段。这样就可以以某个issue作为html内容,修改之后达到发布信息的目的了。

image.png

场景二:工时与任务管理

去除了一些敏感信息,这个界面可以比对某天内某个小组人员的投入工时与待办任务之间的关联以及异常。

工时与任务管理

主要使用到还是普通的js,以及jira提供的api接口。

报表类

从使用Jira的第一天开始就在尝试能够做出可自定义的图形化报表,但是尝试了几款插件都达不到期望的目的。

All-In-One Reports for Jira,eazyBI Reports and Charts for Jira

这两款是尝试了最多次的软件,但是最终都没有成功应用

All-In-One图形化做的比较好,eazyBI 在自定义二维表方面做的更好。但是我尝试了很久,连最简单的合计功能也没有达成,后续就放弃了,使用了更简单的方案。

总结

从公司上Jira开始,到现在大概已经9个月了。所有人都已经熟悉并且认可了Jira,也成为了最重要的信息交换媒介。任何时候有零碎工作、Bug、待分析的需求,大家都会第一时间在Jira发布,并且按照对应流程执行。这需要研发管理人员不断的努力和改进Jira使用环境和流程优化,我自己测试各种插件最终形成完整落地方案大概一共花了2个月左右的时间。

我们从指导思想、核心配置、核心插件、推荐插件一路走来,基本已经到了一个普通的研发管理人员能够做到的极限了。这样的环境应该已经能够满足大部分的公司需求。但是作为一个研发出身,现在也还在编码的研发管理人员,我们后面能够提供更强大的管理工具能力,需要我们开始编码了!下一章就是二次开发,打造我们自己趁手的研发管理利器!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容