近日,在龙智携手Atlassian与JFrog共同举办的“大规模开发创新:如何提升企业级开发效率与质量”的线下研讨会中,龙智高级咨询顾问、Atlassian认证专家叶燕秀为大家带来了精彩演讲,解锁Jira Data Center版的诸多高级功能,帮助企业实现更高效、更智能的项目管理,提升团队协作与项目交付质量。
叶燕秀
龙智高级咨询顾问、Atlassian认证专家
演讲文字回顾(有删减):
感谢大家的参与,我感到非常荣幸能够邀请各位参加这次线下研讨会。我将分享如何借助Jira平台实现项目管理的高效、智能和精细化,以及赋能团队协作。
首先简单介绍一下Atlassian。Atlassian是一家全球知名的软件开发商,总部位于澳大利亚悉尼。他们的产品和解决方案在全球范围内为许多业务变革发挥了关键作用,成为全球80%的财富500强企业的合作伙伴。Atlassian的产品支持各种规模的团队,涵盖从IT和服务团队到技术和软件团队,帮助他们以更加敏捷、可靠和高质量的方式构建、测试和交付软件,实现成本效益的提升。
龙智是Atlassian全球白金合作伙伴,符合其最高标准。目前,我们拥有21个Atlassian认证个人以及两名Atlassian认证专家,这一数字还在不断增加中。作为大中华区的第一家通过认证的云专业伙伴,我们已为超过一千家客户提供一站式服务,包括方案咨询、产品选型、工具链实施、培训定制、开发运维等。我们的客户涵盖金融、汽车芯片、互联网、医疗等多个行业。
项目管理的挑战
在项目管理过程中,我们深入合作并与客户沟通,总结了一些挑战。团队需要实现跨地域高效沟通与协作。团队面临着来自企业各职能部门和繁多业务的挑战,这可能导致整体项目管理的困难加大。目前,许多企业仍采用以人治为主、流程管理为辅的方式,但迫切希望转变为以流程管理为主、人治为辅的模式。随着数字化转型的进行,研发过程体系也需要同步实现数字化转型。然而,现有的管理工具无法支持透明、高效的项目管理。
面对这些挑战,我们需要一个强大的管理平台。希望通过这个平台提升项目的透明度和过程质量,实现多地协同办公,提高工作效率。能够对项目全生命周期进行精细管理,助力敏捷落地,从而提升企业竞争力。这个平台应该能够多维度度量研发工作,为管理层决策和过程改进提供数据支撑。同时,它需要支持处理大量用户操作和数据,并支持不同工具、平台或系统数据的互联。
Jira是Atlassian旗下的明星产品,许多在座的老朋友已经在使用Jira平台进行内部流程、工单和项目管理。作为一个功能强大、灵活多样的项目管理工具平台,Jira以其简单易用、灵活可定制的特点脱颖而出。它能够满足不同规模和行业企业的项目管理需求。
Jira提供丰富的项目规划和管理功能,包括项目排期、任务分配、状态跟踪、问题追踪、进度报表以及资产管理等。
由于时间限制,我们无法全面介绍Jira,但我们将聚焦于其三个主要功能模块,分别是高级路线图、自动化功能以及资产管理。
高级路线图
在管理复杂项目时,例如大型产品线项目或者需要多个独立团队协同完成的大项目,往往存在许多相互依赖的部分。在这种情况下,管理者很难清晰地了解这些相互关联的项目以及整体计划的发展方向。特别是当多个独立团队需要与产品经理共同协作时,管理者可能会面临更多挑战。
在处理大型backlog时,确定相关工作的优先级并达成一致的共识是一项关键任务。同时,分享优先级排名、协调和管理依赖关系,以及在工作脱离项目计划时通知所有相关干系人也是挑战之一。Jira的高级路线图功能为解决这些问题提供了强大支持。
通过Jira平台,我们能够在高级路线图中规划和跟踪跨多个团队和项目的工作。利用整个项目的范围、团队资源以及可利用的时间,我们可以进行工作计划,有效地管理依赖关系和竞争的优先级。在整个项目执行过程中,Jira还允许我们不断探索替代方案。
在项目的长期规划和跟踪方面,Jira的高级路线图提供了一种有效的方法。
通过在高级路线图上创建跨项目的项目群规划,将项目中的每个步骤和阶段映射到路线图上,形成高层次的项目视图。这确保团队能够全面了解整个项目的进展情况。
以一个案例为例,高级路线图包含了三个独立管理的产品线项目。通过这种方式,我们可以在一个视图中跟踪这三个独立管理的项目。当需要深入了解单个项目的具体事务时,只需选中该项目,就可以在高级路线图上查看该项目下管理的所有需求、任务等。整个视图以树状层级结构呈现,使得项目的组织结构清晰可见。
△ 点击可查看大图
在这个demo案例中,最上层是“Initiative”,这种需求层级可以进一步拆解成更多的“Epic”,Epic又可以进一步拆分成更小的功能性、非功能性的“Story”需求,以及用于管理的“Bug”。在更下一层,我们可以将这些需求实际分发给具体的测试和开发团队执行,形成子任务的层级结构。
值得注意的是,这个层级结构并不是固定的,因为不同的团队可能使用不同的开发框架。例如,如果团队采用瀑布式的开发方法而不是敏捷方法,那么可以根据项目的不同阶段定义不同的层级结构。每个阶段可以进一步分解成需要实现的具体任务,而任务则可以继续拆分成更为具体的子任务。
对于公司进行大规模的企业级敏捷开发,Jira的高级路线图提供了灵活的层级结构定义。从 “Initiative”到“Feature”,再到“Epic”、“Story”和“Sub-Tasks”,这种层级结构可以根据企业和业务需求进行定制。在高级路线图上,可以根据需要直接拆分需求和任务。例如,通过选择一条故事,可以创建并拆解出更小、可分发的子任务。在任务被拆解为子任务后,需要对这些子任务进行排期和管理。
Jira的高级路线图通常分为左右两块, 左侧显示了项目中所有需求和任务的列表,提供了整体的项目结构和管理视图。右侧则类似于甘特图工具,展示了任务的排期时间条。
右侧的排期时间条允许用户在对应的时间区间内进行拖动,从而实现对子任务的排期。通过简单的拖动操作,可以轻松地调整任务的开始时间、持续时间等。
在项目管理和执行过程中,根据需求或事务的优先级进行版本或迭代规划是至关重要的。在Jira的高级路线图中,需求排在越上面代表着其优先级越高。当需要调整某个事物的优先级时,通过简单的拖动操作,将其放置在相应的位置即可实现对当前需求的优先级排列。
在高级路线图上,团队能够清晰地看到相关事物的详细信息,信息以列的形式以列表方式显示。每个工作都包含了计划的开始时间、结束时间以及当前需求的状态等信息。当需要获取更多详细信息时,可以通过扩展列来查看。例如,想要知道某项任务分配给哪个同事,或者将需求规划到哪个迭代冲刺中,可以在字段选项中搜索相关的信息列并添加到高级路线图的视图中。
添加了这些信息列后,团队可以更全面地管理任务,包括任务分派。当需要将某个需求委派给特定责任人时,只需选中相应列,选择适当的用户,即可完成任务的分发。被分派的用户将收到提醒邮件,通知他们有一条需求已经分派给他们。
规划迭代同样简便。通过选择特定的冲刺,可以将当前需求划归到相应的迭代中。接下来,我们可以看一下依赖的管理。任何一个任务都可以添加前置和后置的依赖任务项。
在高级路线图的时间条上,有一个加号图标,点击后可以选择当前任务的后置任务。添加完成后,直接在高级路线图上即可定位到该需求关联的另一需求,并查看其相关状态、责任人。同时,系统会用颜色标注是否存在排期冲突。如果显示为红色,表示后置任务的排期早于当前任务的结束日期,需要关注并进行调整。
在路线图上,我们可以直观地查看单个任务的依赖关系。如果我们希望获取整个跨项目的任务依赖关系,可以通过依赖项报告来实现。依赖项报告能够提供完整的信息,展示某一条需求与关联的上游和下游需求,使得在发生变更时更容易定位受影响的范围。
在项目管理中,版本控制也是至关重要的。在高级路线图中,有专门的版本管理视图。这个画面展示了包含在路线图中的所有项目的版本,包括版本的状态、计划开始日期、发布日期以及整体的进度情况。版本的进度是根据规划到版本中的事务数的状态比例来计算的。这包括了尚未开始的任务、正在进行的开发任务以及已经完成的任务。
另外还有状态信息功能,绿色表示版本按计划进行中,即属于正常的状态。而红色则标识为"offtrack",表示版本可能无法按时发布,需要引起关注。这种状态信息对于项目发布的监控和管理至关重要。
在路线图上,这些状态信息会以路标的方式标注在时间轴上,清晰地展示了在特定时间节点的里程碑。
在项目的计划和跟踪过程中,可能会发生各种时间冲突,而Jira系统会及时提出警告信息。除了相互依赖的事物可能出现问题外,还有其他排程冲突可能触发系统警告。例如,如果某个任务计划到了特定迭代,但其工作时间超出了迭代的时间范围,系统将发出警告。同样,如果任务计划的结束时间已超过实际完成时间,系统也会发出相应的警告。其他可能导致系统警告的情况包括,任务拆分成多个子任务,其中一些已完成,但仍有未完成的子任务。
这些警告信息将集中显示在系统的统一警告中心,汇总所有受影响的事物。每个受到影响的事物前都有一个警告标识,用户可以通过点击标识了解该事物的具体冲突原因。例如,某个任务的起止时间超过了Sprint 6这个迭代,且任务的目标结束时间是7月1日,但现在已经过了这个截止日期,而任务状态仍然是等待评审,没有关闭。在这种情况下,系统会及时识别并发出相应的警告,使团队能够快速响应并采取必要的纠正措施。
在项目管理和执行的过程中,各种变化都是不可避免的。可能会出现风险项、资源变动(例如团队成员离职或休假)、时间线里程碑的变化,以及需求的变更等。这些变化都会对项目产生影响。您可以使用高级路线图的场景规划功能来模拟这些状况,深入了解在出现问题时对整个项目进度和排期的影响。这个功能允许您模拟不同的解决方案,进行所谓的"What if"假设的分析。例如,尝试增加团队成员看是否能够按时发布,或者调整一些优先级较低的需求,将其从当前版本中移除,以解决排期问题。针对一个项目,我们可以创建多个场景,通过分析这些模拟场景,找到最佳的执行方案,并将其同步到团队中。
自动化
自动化在项目管理中发挥着关键作用,因为项目管理中存在许多重复性的工作和流程。通过引入自动化,我们能够将许多常规的、重复性的人工工作交给平台来处理。这不仅节省了大量时间和精力,还能够减少人为操作中的错误,从而提高整体工作效率。团队成员因此可以将注意力集中在更为关键和富有挑战性的工作上,进一步推动项目的成功实施。自动化成为提高生产效率、降低错误率的重要手段,使团队更加专注于创新和高价值的工作。
Jira 提供了一个自动化设计器,其设计逻辑整体直观简单,由When-If-Then三个重要的元素组成。也就是在什么事件发生时触发自动化,需要执行某个动作时先要满足什么条件,满足就执行自动化操作,不满足就不执行。一个实际的案例是当子任务全部完成时自动将副任务关闭。
△ 点击可查看大图
在任何工具平台中管理流程工作时,一个良好的实践是将上层任务的状态通过底层任务的状态来驱动更新,避免人为手动更新可能带来的疏忽和错误。这是一个常用且推荐的自动化规则。
这是我们在Jira中设计的一条自动化规则,包含几个关键步骤。首先,规定了一个触发器,即当事物状态变为“完成”时触发。接着,通过判断该事物是否为子任务类型,因为只有子任务完成时才需要关闭其相关的副任务。若确实是子任务类型,系统会查找与之相关的副任务,然后进一步判断这些副任务是否全部完成。如果是,系统将选择将这些副任务标记为完成,从而关闭它们。这个自动化规则的设计旨在提高工作效率,确保在满足条件的情况下自动执行相应的操作。
然后检查事物是否为子任务,因为只有当子任务更新到完成时,才要去关它的副任务。如果是,继续查找与之相关的副任务,然后检查这些副任务中的子任务是否全部完成。如果是的话,就可以将事务标记为完成,也就是将副任务关闭。
可以看到整个拆解过程都是自动化的,不涉及任何代码。通过简单的选择和配置,用户就能实现一些自动化功能。并且,所有自动化执行过程都会被系统记录在日志中,方便随时追溯任务的触发时间、执行时长和状态。执行状态可能是成功触发并执行、成功触发但未执行任何操作,或者被终止等。如果自动化规则未能正常执行,可以查看详细的日志以了解原因。
刚提到的是一个案例。其实在项目管理过程中,还有更多使用场景。例如,我们可以利用它自动分配任务,分配任务的方式非常多样化。例如可以通过均衡工作量的方式,找到当前工作量最小的同事,然后将任务分配给他。另一种方式是轮询,按照顺序给每个成员分配任务。还可以采用随机分配的方法,或者按照功能模块进行任务分配。
例如,若任务涉及数据库,可以直接分配给数据库管理员;如果是服务器相关问题,可以分配给服务器负责人。对于跨区域的团队,可以识别任务所属区域,并自动分配给该区域的负责人。
通过自动化规则,我们能够创建一些重复性的、人工的子任务。例如,在需求实现的过程中,可以根据不同阶段拆分为需求分析、设计开发、测试等子任务,完全交由Jira系统处理。对于一些客户,其业务流程也可以在Jira上管理。如人事部的入职流程,也会涉及到标准化的行动项。新员工入职需要申请邮箱账号、录入门禁指纹、申请电脑、显示屏、分配Jira账号等,这些重复性的事务没必要每次都提申请,再人工拆解子任务。这些工作可以交给Jira,拆分出子任务后还可以对应分配给不同的人,硬件申请给IT部门、门禁录入给人事部门。
自动化规则可以进行计算统计。对于敏捷开发团队,可以使用自动化规则基于工作项的商业价值、成本、时效性等指标,计算出类似WSJF(Weighted Shortest Job First)的数值。这个数值可以帮助团队在有限时间和资源下,优先处理具有最高商业价值的任务。
自动化规则还可以用于任务的档期预警。例如,当某个需求或缺陷的处理即将到达截止日期或已经超期时,我们可以通过自动化规则向责任人发送任务截止提醒的邮件,以确保任务按时完成。
此外,Jira的自动化规则还支持将主任务的关键信息同步到子任务中,或者将子任务的变更信息反映到主任务上。例如,如果某个主任务(需求)的规划版本发生变更,系统可以自动将这一变更同步到所有关联的子任务上,确保版本信息的一致性。
反之亦然,当子任务的信息发生变更时,系统也能自动更新到主任务上。例如,当对子任务的工数预估发生变化时,系统可以自动进行工数计算并将结果汇总到主任务上。
此外,如果某个需求暂时不需要执行或是暂缓,可以自动将与该需求关联的所有子需求,以及子需求拆分出的子任务移至暂缓状态或取消掉,同时通知相关责任人。
工单管理也有相应的使用场景。当服务台接收到一个问题单,判断是由某产品缺陷导致时,可以直接将问题单升级到二线,然后在开发团队的项目下创建一个缺陷单。当开发解决该缺陷后,问题单将自动关闭。
一般情况下,需要用户确认和做最后的关闭。但经常有客户反馈用户不会关闭工单,导致系统中存在多个已解决但未确认关闭的工单,这时可以让系统定时扫描并找出这些问题单,然后自动关闭它们,并通知提报人。最后,在发布过程中,版本中所有相关的需求和缺陷可以自动更新为已发布状态。
以上是客户常用的应用场景。实际上,自动化规则器能够实现更复杂、更个性化的自动化需求。
资产管理
资产管理在复杂项目中扮演着关键的角色。Insight可以帮助团队跟踪和管理各种配置项和资产,包括硬件和软件等。确保所有关键资源得到精确的管理与追踪。还可以为各种配置项添加自定义属性,以满足不同项目的需求。此外,可以通过关联不同的资产,实现数据的可视化呈现。
以企业的ITSM资产管理为例,资产涉及到不同的类别,如业务服务、销售服务、硬件、软件、组织配置等。
△ 点击可查看大图
在硬件类别中,可以进一步分为服务器、电脑、手机,以及服务器相关组件(网卡、CPU、内存条等)等,层级结构没有限制。
点开服务器资产类别,可以看到企业管理的所有服务器。点击某个服务器,可以查看其详细信息,包括名称、状态、使用环境、安装的操作系统、IP地址、服务器所有者等。
组织资产类别可以细分为员工、办事处、角色等。点击员工这个资产,可以查看企业中所有员工的详细信息,包括姓名、所属部门、直属经理,以及分配给他的所有资产,包括电脑、显示器、手机等,以及其在职状态和所在办事处等信息。
对于每个具体的资产项,通过对象图形,我们可以直观地了解当前资产与企业其他资产的联系关系。这种图形化的方式直观地展示了资产之间的关联关系。
不同类型的资产可以根据其特性进行属性管理,在资产的属性配置中可以自定义,例如管理员工资产中的电话号码、家庭地址等。
以上是如何在Jira中管理资产项。这些资产项可以由人工录入和维护,外部资产数据可以直接导入。另一方面,资产可以和项目相关联。
举例说明,某同事在使用公司开票系统时发现问题,需要在Jira上提工单。首先点击新建,在工单中选择Instant事件工单,描述问题类型“服务停止service is done”,选择受影响资产为“企业服务business service” 。选择好后提交。
可以看到提交的工单中展示了被选择资产的详细信息,包括状态(运行中)、该服务的负责人。系统识别到受影响的服务的负责人后,会自动将任务分配给该同事并提醒。负责该服务的团队以及其联系方式也会展示出来,以及当前服务的重要程度(关键/非关键)等。
除此之外,系统会找到与该资产相关的其他资产,例如部署于哪台服务器,呈现在当前工单上。相关服务器的状态、负责人等信息也一应俱全。
该服务的负责人首先确认该事件的发生。待确认后,相关资产状态会自动更新,将“企业服务business service”和“账单服务billing service”资产的状态更新为“即时进行中Instant in progress”,相关人员能立即知道当前服务出现问题。
更新完状态后开始排查事件原因。首先,我们怀疑部署环境有问题,找到相关服务器,点开该服务器的负责人可以看到详细信息,包括联系方式(邮箱、电话号码)。解决该Instant后,可以把工单状态改为“解决resolve”,并可以看到“企业服务business service”的状态恢复到“运行”。与此同时,该工单会自动流转回提报人处,方便其确认解决问题并关闭此工单。这是一个完整的Instant处理流程。
以上是Jira数据中心(Data Center)版本中三个辅助项目管理的重要功能模块。
Atlassian解决方案服务于整个DevOps闭环,为包括项目管理、服务台支持、知识库管理、开发管理(代码托管、审查、持续集成、持续发布等)提供了对应工具与解决方案。
时间有限,今天就分享到这。感谢所有观众的参与,谢谢大家。