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. 转:UniqueID和ClientID的来源

    转:http://www.cnblogs.com/GrayZhang/archive/2009/03/05/how-uniqueid-is-generated.html 在<漫话ID>一文 ...

  2. HDU 1003 Max Sum(AC代码)

    #include <stdio.h> int main(){ int i,t,j,n,x; int start,end,temp,max,sum; scanf("%d" ...

  3. TypeError: The CanvasRenderingContext2D.webkitBackingStorePixelRatio getter can only be used on instances of CanvasRenderingContext2D

    ios10: CanvasRenderingContext2D.prototype.webkitBackingStorePixelRatio 报异常

  4. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 数据库报错

    -- 查询mysql 数据库链接空闲时间持有最大空闲时间,单位为秒 SHOW VARIABLES WHERE VAriable_name = 'interactive_timeout'; -- 会出现 ...

  5. Link Aggregation and LACP with Open vSwitch

    In this post, I’m going to show you how to use link aggregation (via the Link Aggregation Control Pr ...

  6. HOG 梯度方向直方图简介(转载)

    一.基本HOG算法 HOG特征最早出现在SIFT算法中,由于其极强的图像特征描述能力,逐渐被人们熟知和广泛运用,其在目标检测方面表现尤为突出. HOG特征提取过程 步骤一:遍历图像每个像素点,以其为中 ...

  7. Matlab位运算操作

    本文为转载他人文章: bitand 按位与操作 a = 7; b = bitand(10,a); disp(dec2bin(a,8)); %ans = 00000111 disp(dec2bin(b, ...

  8. CSS3详解:transform

    CSS3 transform是什么? transform的含义是:改变,使…变形:转换 CSS3 transform都有哪些常用属性? transform的属性包括:rotate() / skew() ...

  9. sqlserver函数

    SQLServer时间日期函数详解,SQLServer,时间日期, 1.      当前系统日期.时间 select getdate() 2. dateadd      在向指定日期加上一段时间的基础 ...

  10. Memcached安装及配置

    一.Memcached介绍 1.Memcached是国外社区网站LiveJournal团队开发,通过缓存数据库查询结果,减少数据库访问次数,从而提高动态web站点性能. 2.官方站点http://me ...