http://www.csdn.net/article/2015-05-21/2824739?utm_source=tuicool

高效能团队是企业生存和发展的基石。任何企业面对当下的激烈竞争,要想脱颖而出,一定离不开量身打造的高效能团队,因为只有高效能团队才能发挥出最高的效能,让企业又好又快地发展。

企业效率的高低,取决于团队效能的高低。随着互联网行业的发展,单打独斗的“软件作坊”时代已经过去,要实现企业又好又快的发展,必须得依靠一个高效能团队的支撑。

高效能协作要关注协同、实施和集成

互联网项目短、平、快的特点,决定了互联网公司要特别讲究效率和执行力。项目执行中的高效能协作,一定离不开人与人之间、人与系统之间,系统与系统之间的关联和交集。这里的“人”是指项目干系人、团队成员,这里的“系统”是指和项目管理相关的信息系统,如JIRA或Confluence等。

要做好“协同”,就需要更好地推进人与人之间的联系和交集;要做好“实施”,就需要更好地推进人与系统之间的联系和交集;要做好“集成”,就需要更好地推进系统与系统之间的联系和交集。

协同、实施和集成,与高效能协作之间的关系,如图1所示。

图1 协同、实施、集成和高效能协作之间的关系

JIRA是澳大利亚Atlassian公司出品的一款Issue跟踪及项目管理软件。JIRA在项目执行管理、敏捷开发管理、体系流程管理、Bug跟踪、客户服务等方面是最擅长的。JIRA没有派系和立场之分,非IT/互联网行业的非技术项目,也一样易用。本文重点介绍项目高效能协作过程中,如何通过JIRA来承载人与人之间的“协同”,人与系统之间的“实施”。

个性首页收录展示关注的内容

应用需求场景

A公司是一家知名互联网企业,在用JIRA来辅助项目管理时,发现并不是团队的每个成员都能熟练地用JIRA来快速准确地找到他们各自想要的东西。尤其是在多个并行项目中,大家手头的事情多而杂,想让大家每天上班后只要登录JIRA,就能清晰地知道当前有哪些待办的事,同时也能记录已完成事项,以此作为团队成员工作的备忘录和工作过程的记录。

JIRA解决方案

给项目团队做一个共享的个性首页。这里的“个性”是强调每个人登录JIRA后,内容呈现因人而异,且都是和自己密切相关的内容。

互联网产品技术类项目常规事项的分类主要包括Bug处理、新功能开发、优化已有功能体验、底层技术类改造等。这些分类,在JIRA里可以映射划分成不同的提案类型,如表1所示。

表1 JIRA提案类型名称及其描述

把个性首页做成两个列栏,左边一列收录展示需要我处理的提案,如:需要我处理的Bug、Story、新增功能等,右边一列收录展示我已经处理完成的提案,如:需要我回归验证的Bug、我处理完成的全部Story、新增功能等。两列的内容都覆盖全部的提案类型。具体实现效果如图2所示。

图2 个性首页的实现效果

关键实现步骤

本文中全部应用举例的JIRA版本,都是V6.2.2。

用JIRA过滤器筛选出数据内容后,再通过“面板”→“管理面板”→“添加小工具”→“显示保存的过滤器”来实现。本文介绍的是Story提案类型在个性首页的实现,其他提案类型的实现方法都类似。

需要我处理的Story,过滤器的实现规则如下。

①Project项目库:选择你指定要筛选的项目库名称;

②IssueType提案类型:Story;

③Assignee经办人:当前用户(不同JIRA用户登录后显示不同内容);

④Resolution解决结果:未解决。

我处理完成的全部Story,过滤器的实现规则如下。

某人曾经处理完成的全部Story的数据筛选,属于较为复杂的查询条件,在JIRA过滤器的Basic简单模式下无法解析。需要用JIRA提供的查询语言JQL来实现,下面介绍两种方法。

方法1:把项目各角色人员账号的数据值,与“当前用户”进行匹配。用JQL查询语言实现的代码如图3所示。

图3 方法一代码示意图

方法2:不依据前文中提到的各个角色人员账号的数据值,采用JQL查询语言语法的运算符was,实现的代码如图4所示。

图4 方法二代码示意图

最后把个性首页生成的链接,发给团队成员提供给他们订阅。也可以让他们在JIRA“面板”→“管理面板”→“热门”→“热门面板”中查找你分享的个性首页,点击里面的五角星符号即可收藏。

需要注意的点

过滤器的浏览权限

首次创建完后,默认的权限都是自己可见。如果想把过滤器的结果呈现在个性首页上,就必须把过滤器的浏览权限开放给你要共享的人,可以在“Issue”→“管理过滤器”选定你要共享的过滤器,进入“编辑当前过滤器”对话框进行操作。共享范围可以是所有人、指定的用户组或特定的项目。

过滤器涉及项目的浏览权限

共享过滤器时,一定要确保这些被分享到的人或指定用户组,具备过滤器筛选条件中所涉及的项目浏览权限。否则即便是他收藏了你分享的个性首页,页面上也无法显示和他相关的内容,并会提示一堆“选择的过滤器filter-10005有错误:ID 为‘10202’的值在字段‘project’中不存在”的报错,报错提示中的filter和ID后面的数字,会随着你过滤器的不同而变化。

个性工作流让潜规则浮上台面

应用需求场景

A公司不同业务分类下的项目,存在不同的执行流程。同一个业务分类下的不同项目中的不同类型事情,也会有不同的执行流程。虽然项目干系人都知道执行流程,也能在项目执行中及时发现流程上的问题并积极改进,最后落实到文档层面。但这些流程在执行过程中,总觉得缺少一种承载物,导致在执行中或多或少地都带有“人情”因素,会执行不力。想通过把制度流程与工具相结合,让不同项目中的不同类型事务,都能按照既定的流程执行并跟踪,把潜在台面下的流程规则浮上台面。通过把项目状态和流程的具体事务操作相结合,实现一些状态数据的统计分析、共享、流程权限控制等,促进项目执行自动化水平。

JIRA解决方案

总结项目执行中的关键状态和节点,在JIRA中定义其状态,通过JIRA工作流把这些状态与具体事务操作联系起来。A公司互联网产品技术类项目执行过程的关键状态节点可以划分为:方案设计中、UE设计中、UI设计中、页面制作中、开发中、测试中、待上线、已上线等状态。落实到JIRA工作流中,可增加一个初态Open(开启)和终态Closed(关闭)。以Story类型提案为例,具体的状态操作跳转流程如图5所示。

图5 Story、新增功能或改进优化类型提案的状态操作跳转流程

图5中,当创建Story类型的项目提案后,默认的初始状态是开启,然后进行产品方案设计,进入方案设计阶段。

  • 如果该项目提案依赖于页面展示,那么就会依次经历UE设计、UI设计和页面制作等阶段,然后进入开发、测试和上线等阶段。
  • 如果该项目提案不依赖于页面展示,那么就不再需要经历UE设计、UI设计和页面制作等阶段,直接进入开发、测试和上线阶段。
  • 无论Story类型的项目提案是否依赖于页面,最后终结的状态都是关闭。

从终态关闭,也可通过“恢复开启提案”的事务操作回到初态开启。

关键实现步骤

JIRA提供了两种工作流的设计方法:Text文本方法和Diagram图形方法。个人感觉采用Text文本方法相对易用些,而采用Diagram图形方法时容易出乱走样。以下简要介绍采用Text文本方法进行工作流的设计与实现。在jira-administrators管理员权限下,以Story类型工作流的实现为例。

①“Issue”→“状态”→“添加新状态”,将图5中提到的状态,都添加完成。里面除了开启和关闭是系统提供的状态外,其他都是自定义的。

②“Issue”→“工作流”,复制JIRA默认的工作流,重新命名,如:Weibo Story Issue Type Workflow。

③梳理图5中涉及状态和事务操作的对应关系,可以思考以下问题。

  • 从项目上游的A状态到下游的B状态,要进行什么样的事务操作?
  • 从下游的B状态退回到上游的A状态,要进行什么样的事务操作?
  • 从A状态进行什么样的事务操作可以不经过B状态直接到达C状态?
  • 每种状态操作有哪些权限控制?什么权限的角色可以操作?什么权限的角色不可以操作?

这些可以梳理成表2的形式。表2中,项目管理人员在每个状态都具有操作权限,这里为了强调让团队的每个成员都参与进来使流程运转,所以在“适合操作角色”的内容上,将各个状态对应了各角色的成员。

表2 Story类型项目提案状态和事务操作的对应关系

④“Issue”→“工作流”,选定你要设计的工作流,如Weibo Story Issue Type Workflow,在“添加新步骤”中完成“步骤名称”和“链接的状态”的添加。

⑤在Text文本工作流的设计页面中,选定需要操作的状态,点击“添加工作流动作”链接进入“添加工作流动作”页面,填写工作流名称、描述、链接目标状态和工作流动作页面。其中工作流动作页面不是必须要有的,可根据你的业务需要来取舍,如果业务层面需要有工作流动作页面作为跳转页面,那么该页面就会在执行这个工作流动作时出现。

⑥在步骤⑤中提到的工作流动作页面,可以在“Issue”→“界面”和“界面方案”中,完成你所需要过渡页面的制作,并在“添加工作流动作”的页面中与链接目标状态进行关联。

⑦“Issue”→“工作流方案”页面中,创建工作流方案并命名,如XXX Workflow Schemes,并给XXX工作流方案的不同提案类型指派不同的工作流模型,譬如:给Bug类型的提案,指派JIRA默认的工作流;给Story类型的提案,指派前文中提到的Weibo Story Issue Type Workflow工作流等。

⑧最后,把工作流方案XXX Workflow Schemes与具体的Project项目库关联,生效后方可使用。

工作流的设计完成后,项目提案中的状态与事务操作对应关系,工作流的JIRA效果展示,如图6所示。

图6 Story类型提案的状态与事务操作对应关系,工作流的JIRA效果展示

图6中是把Story类型项目提案的每个状态下所对应的具体事务操作,先局部截图后,再以拼图的形式做效果展示。每个局部截图中的数字标号表示效果展示的顺序。红色分割线表示每种状态与事务操作对应关系区分。

需要注意的点

①设计工作流时,建议首先复制JIRA默认的工作流,在JIRA默认工作流的基础上再重命名,设计符合你需求的工作流。不要刚上来就直接定义新工作流来设计,否则你会发现很多时候工作流的状态和事务操作在执行时,都没法按你的规则去实现。

②如果需要对某个事务操作(如“关闭提案”)在工作流中进行权限控制,可以在该事务操作的权限控制页面中,通过“触发条件”下的Add condition进行权限操作。

项目报表让各项目情况一目了然

应用需求场景

A公司的产品设计开发节奏快、周期短,平时并行的项目较多,除了个别非常重要紧急的项目以外,很少能做到专人专项。UED、开发、测试等职能部门的人力资源多数都是当项目立项后,再被临时指派到各个项目上。项目执行中的状态、时间点等信息也比较散落。想让每个项目的上线时间、资源分配(占用)情况、各环节的交付时间点、以及项目执行中遇到的问题风险等,能一目了然地呈现;能在一个动态的项目报表中看出整个业务分类下的现行项目情况。

JIRA解决方案

把A公司互联网产品技术类项目的人员角色划分,包括产品经理、UE设计师、UI设计师、页面制作、前端工程师、后端工程师、测试工程师、运维工程师、项目管理等,在jira-administrators权限下的“字段”→“自定义字段”里,定义成“选择用户”(多选)的字段。

把项目执行中涉及的各环节时间点,包括起始时间、方案交付时间、UE交付时间、UI交付时间、页面交付时间、前端交付时间、后端交付时间、测试交付时间、上线时间等,在jira-administrators管理权限下的“字段”→“自定义字段”里,定义成“日期选择器”类型的字段。

涉及的自定义人员和时间字段,都可以在某些类型提案里做成多标签页面的形式。以Story类型为例,在jira-administrators权限下的“界面”→“配置界面”→“字段标签页”→“增加字段”中,可以实现项目时间计划、参与人员、上线发布等主题的多标签页面。

再用JIRA过滤器筛选出指定业务分类下的项目,同时,把事前定义好的各角色参与人员、各环节时间点和问题风险等字段,通过JIRA过滤器Columns自定义列元素的方式,做成一个项目报表。最后将其通过“导出”→“打印预览”的形式,得到一个绝对的链接地址,作为常用链接放到JIRA导航栏上,实现效果如图7所示。

图7 项目报表实现效果示意图

由于项目报表的横向宽度较宽,所以分两张图分开展示。图7的示例中,前半部分列分出了项目提案名称、优先级、状态、上线时间、典型问题风险及后续计划等项目关键要素,后半部分列出了项目资源分配(占用)情况,以及各环节的交付时间点,各职能部门负责人可以由此粗略估算出某个已被占用资源,下次被释放的大致时间。

小结

本文通过三个较为典型的JIRA实践案例,简要介绍了A公司在互联网项目执行的高效能协作过程中,JIRA所起到的重要承载作用,以及针对不同应用需求场景提供的解决方案、关键实现方法等。当然在其他具体实践方面,JIRA能处理的应用需求场景远远不止于此。希望这三个JIRA实践案例中涉及的解决方案、关键实现方法等,能抛砖引玉,为你在平时工作遇到的类似应用场景,带来高效解决方案层面的一些启迪和思考。

作者简介:杜炎,新浪公司项目管理经理,北京大学计算机科学理学学士。拥有互联网行业六年多的项目管理经验。曾就职于搜狐公司,负责项目管理以及总体项目运作管理体系建设。关注互联网项目管理、产品设计、JIRA实践等。

高效能团队协作的JIRA实践的更多相关文章

  1. 高效能团队的Java研发规范(进阶版)

    目前大部分团队是使用的阿里巴巴Java开发规范,不过在日常开发中难免遇到覆盖不到的场景,本文在阿里巴巴Java开发规范基础上,补充一些常用的规范,用于提升代码质量及增强代码可读性. 编程规约 1.基础 ...

  2. DevOps|高效能敏捷交付组织:特性团队(FeatureTeam)+Scrum

    这是<研发效能组织能力建设>的第三篇.特性团队和Scrum,这两个定义我们在之前的文章中都详细介绍了.这两个组织模式或者说管理实践,我都用过所以有些时候特别有感触.书本上纯粹的模式很容易理 ...

  3. 敏捷团队协作:Confluence简易教程

      0.Confluence简介 Confluence是一个企业级的Wiki软件,可用于在企业.部门.团队内部进行信息共享和协同编辑. 1.基础概念 Confluence的使用并不复杂,只需掌握如下几 ...

  4. iOS开发之浅谈MVVM的架构设计与团队协作

    今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...

  5. 高效能人士必知铁律--note

    偶然看到了<高效能人士 必知铁律>这本书,我比较少看成功学,但是这本书把很多著名的成功学书籍整理出来,有时会让你耳目一新,有些观点尽管是常识,但是却加深了你对它们的理解,比如: 只要在积极 ...

  6. 国内外开源与 SaaS ,团队协作平台、项目管理工具整理

    整理一些开源与 SaaS ,团队协作平台.项目管理工具.还有哪些比较好的工具,可以推荐下? 名称 地址 备注 asana https://asana.com/ 国外 basecamp https:// ...

  7. Atitit。团队建设--管理最佳实践--如何留住关键人才,防止人才外流 ??

    Atitit.团队建设--管理最佳实践--怎样留住核心人才,防止人才流失 ?? 1. 1.人才流失后果 1 1. 1.员工的离职带走商业技术秘密和客户等资源 1 2. 2.影响在职员工的情绪.极大挫伤 ...

  8. 一个小团队TDD游戏及实践

    介绍的这个游戏是自己根据目前带的团队的实际情况来制定的, 在游戏实践过程中,收到了较好的效果,故打算把这个游戏分享出来,一是分享一下实践,而是集思广益,不断完善,更好的利用游戏来锻炼队伍.下面就将游戏 ...

  9. MVVM的架构设计与团队协作 with StoryBoard

    今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...

随机推荐

  1. ios openURL的使用(调用系统电话、浏览器、地图、邮件等)

    Safari Any URL starting with http:// which does not point to maps.google.com or www.youtube.com is s ...

  2. Apache 中 .htaccess 文件设置技巧16则

    .htaccess 文件 (Hypertext Access file) 是Apache Web服务器的一个非常强大的配置文件,对于这个文件,Apache有一堆参数可以让你配置出几乎随心所欲的功能.. ...

  3. iOS-代理

    1.协议是一组通讯协议,一般用作两个类之间的通信. 2.协议声明了一组所有类对象都可以实现的接口. 3.协议不是类,用@protocol关键字声明一个协议. 4.与协议有关的两个对象,代理者和委托者. ...

  4. 表视图控制器(TableViewController)(二)

    1 tableView的编辑模式 1.1 问题 表视图可以进入编辑模式,当进入编辑模式就可以进行删除.插入.移动单元等操作,本案例还是使用联系人界面学习如何进入编辑模式,以及进入编辑模式之后的删除.插 ...

  5. R 学习1

    首先安装吧 http://cran.rstudio.com/bin/windows/base/R-3.2.1-win.exe 里面既有32位又有64. R有很多包,如果有的包本地没有,来这里搜 htt ...

  6. 设置drawable图片

    google官方建议在textView和imageView挨着的时候,建议使用drawable来显示图片 第一个方法:setCompoundDrawablesWithIntrinsicBounds(D ...

  7. ES6 — 数组Array

    ES6对数组引入了几个新函数: (1) Array.of() 作用是将一组数值,转换为数组. Array.of(1,2,3,4); //[1,2,3,4] (2) Array.from() 作用是把类 ...

  8. T语言TC发布脚本方法

    代码模式的注册码发布脚本方法 注册码项目模式的发布脚本方法 1.注册码项目发布版 2.注册码项目代理版 这两种方法都是基于注册码项目来实现的,所以在使用之前,需要先创建注册码项目.

  9. 1.PHP站内搜索 分类: PHP开发实例 2015-07-31 22:48 4人阅读 评论(0) 收藏

    PHP站内搜索:多关键字.加亮显示 1.SQL语句中的模糊查找 $sql = "SELECT * FROM `message` WHERE `content`like '%$k[0]%' a ...

  10. 神奇的输入 while(cin>>....)如何在遇见换行之后进入下一层循环读入

    cin>>m>>n; ;i<=m;i++) { ; char ch=' '; ) //在遇到换行之后进入下一层循环读入. { x++; cin>>c[x]; ...