zl程序教程

您现在的位置是:首页 >  工具

当前栏目

DevOps - Ticket驱动

2023-09-14 08:59:09 时间

Ticket驱动

在软件开发过程中使用缺陷跟踪系统或问题跟踪系统,以ticket为单位对问题、缺陷以及敏捷开发中的用户故事等进行管理的方法。
作为DevOps实践的一个良好补充,解决了文档式管理的信息分散问题,可以支持从瀑布开发到Scrum开发。
在DevOps中,通过ticket为单位进行信息共享以及任务管理,将会使内外部之间的协调变得简单,信息也更易于集中管理。

在具体实现上,就是所有任务包括代码改动都以ticket方式进行管理,与具体事项和相关人员进行关联,同步更新状态。
ticket中可以包含各类日期、负责人、详细内容和讨论记录等信息。
提供仪表盘功能(Dashboard),可以从项目管理、工作量估算和进度管理等角度把握开发整体情况。

提倡无论是提交应用程序还是基础设施的代码,所有的任务都需要先创建一个ticket,然后在开展工作的同时,同步更新ticket的状态和信息。
Ticket的关闭,也就是表明了对应工作内容的完成。

看板

大多数敏捷流程都包含在物理看板或电子看板上,透过便利贴管理任务。

  • 直观展示工作流程概览,
  • 易于管理,移动便利贴就可以表示当前流程状态发生变更
  • 健壮,不会出现宕机的问题

Ticket跟踪处理工具

Ticket跟踪处理工具可以用来处理缺陷和问题、管理工作任务等。
一个ticket可以是一个代办事项、功能需求或者是其他类型活动。
通常以数据库对象代表状态机的方式来实现。
通过web界面,用诸如电子邮件或自动化的方式创建一个ticket。
团队成员与之互动,使其达到各种状态,直到ticket被关闭归档,便于未来参考。

通常一个ticket具备基本属性

- 描述:文本描述
- 报告者:建立这个ticket的成员
- 指派:完成这个ticket的成员
- 状态:打开、关闭

其他常用的属性

- 到期日:预计ticket的关闭日期
- 里程碑: 将多个ticket归并为一个较大工作包的方法
- 附件:截图或文档
- 工作量估计:对耗时的估算,针对新类型任务通常难以准确预估

敏捷工作流中的状态(状态机)
在理想的场景下,问题有序地从一个状态切换到下一个状态
例如打开--》进行中--》可以测试--》测试中--》完成--》关闭等

选择Ticket工具

功能上能否满足当前及可见未来的使用需求

- 是否可以定制化流程、扩展第三方插件
- 是否支持敏捷方法
- 是否支持可视化和报表
- 是否支持多项目和多类型的客户端
- 。。。。。。

除了功能上的,一些必须考虑的因素

- 付费模式和License问题,例如免费版本是否有用户数限制等
- 运行环境:硬件、数据库等
- 易用性:关注真正地做事情上, 而不是熟悉工具
- 可选的支持类型:开源社区、商业付费
- 与第三方集成:例如认证服务器、邮件服务器等
- 部署方式:内网独立部署(信息安全性)、外网托管
- 。。。。。

一些问题跟踪工具

使用免费工具,避免license问题

  • Redmine: 全功能项目管理工具
  • Bugzilla:面向公众的大型追踪器
  • Jira:综合性工具,收费
  • 禅道:国产免费开源,管理方式基于Scrum

Jira

https://www.atlassian.com/zh/software/jira
集项目计划、任务分配、需求管理、缺陷跟踪于一体
功能强大,配置和管理也相对复杂
Atlassian出品、收费、Java编写

禅道

https://www.zentao.net/
开源免费,从下载到使用不需任何费用
基于国际流行的敏捷项目管理方式—Scrum,功能完备的项目管理软件,覆盖了项目管理的核心流程
集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体

bugzilla

https://www.bugzilla.org/

  • 问题跟踪器的起源,主要关注缺陷问题
  • 免费、支持自定义工作流程、提供JSON REST API
  • 很多企业将其作为面向公网的问题报告工具

Trac

https://trac.edgewall.org/
增强版的Wiki以及软件开发过程中的问题跟踪系统,采用Python开发
短小精悍,将问题跟踪器、wiki和库查看器集成到了一个简洁的模型上

Redmine

https://www.redmine.org/

  • 免费的,流行的问题跟踪器
  • 项目管理系统,以WEB形式把成员、任务、文档、讨论及各种形式的资源组织在一起,推动项目的进度,可对接GIT、SVN等版本管理系统

GitHub、GitLab等自带的Issue跟踪管理功能