企业问题跟踪系统构建指南
2009-08-25 11:20 山不转水转... 阅读(2109) 评论(4) 编辑 收藏 举报企业问题跟踪系统(Issue Tracking System)建设指南
去年底的时候,有一条“NASA采用开源问题跟踪系统”的新闻,引起了笔者对“问题跟踪”这一领域的关注。
新闻中说,“当预计在周五发射的航天飞机奋进号起飞时,航天飞机上的宇航员和地面执行任务控制的技术专家都将使用一种简化问题报告和分析的新软件。”“新软件名为PRACA,由NASA Ames研究中心人机互动研发小组开发,是设计让整个航天飞机生态系统人员访问单一的数据库,追踪航天飞机和相关设施的问题。”(原文地址:http://news.cnet.com/8301-13772_3-10097880-52.html)
“问题跟踪系统”,这是一种什么样的软件呢?
笔者经过一段时间的研究和自己在工作中的应用,逐渐有了一些心得体会。在本文中,我将为您介绍问题跟踪系统的概念、基本功能、常见应用场景,以及实施过程中的一些注意事项。
一、什么是问题跟踪系统
问题跟踪系统(Issue Tracking System)是专门用于记录、跟踪和管理各类问题的软件。也叫Issue Tracker、Problems Tracker、故障单系统(trouble ticket system)、事件单系统(incident ticket system)等。
问题跟踪系统出现于上世纪80年代,最初被企业用于跟踪和管理客户投诉。 后来随着技术的发展,其应用范围逐渐扩展到了IT服务管理、产品研发过程管理、日常任务和事务管理等诸多方面。目前它已经成为西方科技公司一个非常重要的基础性生产工具,为西方科技产业的发展作出了重要贡献。
我们在Google中搜索“Issue Tracking system”,可以搜索到1940万条相关结果。微软公司在推出.Net 开发平台时,同时提供了问题跟踪软件的示例程序“Issue Tracker Starter Kit”。Oracle公司也有“构建问题跟踪系统”的示例教程。这足以看出类似的软件工具在欧美发达国家的受重视程度。
为什么需要问题跟踪系统?
企业中,特别是产品研发、生产和服务类型的企业,经常会产生各种各样的问题。如:
- 软硬件产品的缺陷、bug、需求;
- 产品开发中遇到的各种技术问题;
- 客户提出的咨询、意见和建议、投诉、服务请求;
- 部门之间的业务交互和部门内的工作任务交互;
- IT运维中的事件、问题、变更管理;
- 各种纷繁复杂的日常事务
能否及时有效的解决这些问题,直接决定了企业是否能够为客户提供高质量的产品和服务,决定了企业是否能够生存并在竞争中处于优势地位。
通过以下表格的对比,我们将看到在企业中建立问题跟踪系统,有助于企业解决哪些以下的管理难题:
没有有效的问题管理平台 |
使用问题跟踪系统 |
实用口头或Email的方式指派问题,问题很容易被忽略或遗忘。经常发生问题没有被解决或任务没有被完成的情况,从而引发产品质量隐患或客户的不满。 |
保证每个问题都被处理和解决。 |
问题很难被完整准确的描述。由于没有格式要求,问题的提交人对问题的描述往往是不完整的。问题的处理人需要多次询问才能得到足够的信息去处理问题。 |
对每类问题建立具有针对性的表单,使得问题在提交时即包含了完整的信息。 |
信息无法准确传递。口头方式传递问题时,问题的细节可能在传递过程中变得面目全非。使用Word或Excel记录问题时,往往要维护多个版本,难以保证各文件的同步。 |
所有有关的信息都保存在同一个地方。每个人可以得到相同的,准确的信息。 |
信息记录在每个人的大脑或计算机中,形成诸多信息孤岛。随着记忆衰退、文件损坏或无意删除、人员离职,这些信息将会丢失。 |
所有的信息保存在服务器上,不会丢失。 |
沟通不便。通过电话方式讨论问题,一个人往往要和多个人联系,效率低下。通过Email方式讨论问题时,大家都通过邮件回复对同一个问题的看法,来来回回邮件较多,交流不及时也不方便。 |
提供了一个集中的协同工作的平台。用户通过此平台提交问题、分配和指派问题、处理问题,或对问题发表建议和评论。大幅节省了人员直接相互沟通的时间。 |
责任不明晰,容易引起员工或部门间相互推诿,造成问题拖延搁置。 |
每个问题都有明确的负责人,可以有效提高问题的处理效率。 |
有新问题或问题有进展时,无法及时告知相关人员。 |
可以自动发送邮件、短信等形式的通知给有关的人员。 |
相关人员无法随时查看问题的处理状态,需要逐个询问或催办。 |
相关人员可以直接查看所有问题的状态和处理进展。 |
无法按流程自动化流转问题。(比如问题完成后自动提交给问题提交人确认) |
可以实现自动化的问题处理流程。 |
问题处理比较随意。办事人员可能在未经批准的情况下用错误的方式解决问题并导致严重的后果。 |
可以建立规范的问题流转处理流程。保证所有的问题处理措施都被审核或验证。 |
问题的处理过程没有被记录,导致无法对历史情况进行追踪,无法对人员的工作进行评价。 |
所有的历史处理过程被记录和保存。 |
大量的问题充斥员工的大脑。员工在处理一件事情的时候,还要想着其他的事情。这会引起较大的工作压力,降低工作效率。 |
所有的任务都被记录并按优先级排序,员工可以专注于当前问题的处理。有利于提高工作效率。 |
管理人员无法对员工工作进行量的评估 |
方便对员工的工作进行量的评估(比如创建或解决问题的多少、处理问题的时效性和质量等)。 |
知识无法积累和共享。 |
所有信息都被保存下来,完成了从隐性知识到显性知识的转化。 有价值的信息可以整理转换成知识库中的知识资源,在员工之间共享和传播。 |
无法对发生的问题进行总结分析。 |
可以通过统计功能对问题进行总结分析,发掘深层次的原因,采取措施减少问题的发生。 |
公司和客户之间没有正式的问题反馈渠道和规范的处理流程。这一方面可能造成客户问题无法得到解决,引起客户抱怨;另一方面,无法控制客户的随意需求给项目实施带来的风险。 |
为客户提供了正式的问题反馈渠道,保证客户问题的解决。客户可以和公司技术人员通过问题跟踪软件一起工作,及时获取问题的处理进展。另一方面也实现了规范客户需求的目的。 |
由上面表格中的内容可见,问题跟踪系统对企业可以说是一个必不可少的工具。
问题跟踪软件的结构组成
问题跟踪系统一般都使用基于浏览器/服务器(B/S)的架构(类似于一个Web网站)。软件被安装在一台服务器上,客户端通过网络浏览器(如IE、Firefox等)访问。它们通常由三个部分组成,如下图所示:
“数据库”用来存储所有的问题数据。
“业务逻辑处理”部分用于实现问题跟踪管理的各种功能,实现用户界面显示内容和数据库数据之间的双向转换处理。
“Web形式的用户界面”,给用户提供了一个查看、处理问题或进行其他操作的人机接口。
问题跟踪系统和bug跟踪软件的区别
BUG跟踪程序和问题跟踪系统具有相似的管理思想。但BUG跟踪程序功能相对比较简单,其字段定义、流程、人员角色的划分具有固定的模式,不能自定义,所以只能用于单一的bug跟踪用途。
而问题跟踪系统则在设计时考虑了不同问题类型的特定,提供了完备的自定义功能,能够实现对每类问题的描述字段、处理流程、人员角色分工、权限划分等方面的自由定义。
问题跟踪系统可以作为bug跟踪软件使用,但是bug跟踪软件很难进行更多的应用扩展。
二、问题跟踪系统的基本功能
一套可用的问题跟踪系统,应该具备以下的基本功能:
1. 能够管理不同类型的问题
一套问题跟踪系统需要同时支持对多种类型问题的跟踪和管理。对于不同类型的问题,需要能够自由定义描述字段、处理流程、人员分工和权限等相关内容。
2. 支持创建多个项目
“项目”是问题的“容器”。如果不区分项目,所有的问题将混杂在一起,无法进行管理。通过“项目”,可以将有关的问题分别组织在一起,方便查询、统计。“项目”还可用于实现对用户进行权限控制,使无关人员不能查看项目中的内容。
3. 可以自定义人员角色分组
不同类型的问题,往往有不同角色的人员参与其处理过程。问题跟踪软件需要允许用户根据需要自定义人员分组。如“客户投诉问题”的处理过程,人员角色分为:客户、服务台、服务经理、技术支持等。“产品bug”处理过程,人员角色分为:测试人员、测试经理、产品经理、开发人员等。
4. 可以自定义问题的描述字段
问题跟踪软件使用字段(Field)来描述问题的属性。不同类型的问题通常包含不同的属性集。如,“客户投诉问题”通常包含客户信息、联系方式、投诉内容等属性。“产品BUG”则通常包含BUG描述、软件版本、功能模块、现场环境等属性。因此,问题跟踪软件需要能够对每类问题分别定义字段设置。用户在创建、编辑或处理问题时,问题跟踪系统根据字段设置动态生成录入表单,供操作人填写问题的相关信息,如下图所示:
常见的字段类型有:单行文本、文本域、单选、多选、数字、布尔等类型。另外,问题跟踪系统一般还会内置一些通用的字段,比如问题的摘要、优先级、严重级等。
5. 可以自定义问题处理流程
不同类型的问题、不同的组织结构和人员规模,往往需要不同的问题处理流程与之适应。问题跟踪系统应该可以对每类问题灵活定义处理流程。
问题跟踪系统通常使用“状态”和状态之间的“转换步骤”定义工作流。“状态”表示问题所处的处理阶段,“转换步骤”表示允许在哪些状态之间流转。
6. 支持灵活的权限控制
在企业环境中,数据的安全尤为重要。问题跟踪系统通常提供以下级别的权限控制:
- 系统管理:如配置和修改系统参数、创建新的项目等。
- 项目级别:如是否允许访问某个项目、是否允许对该项目进行配置和管理、是否允许在其中提交问题等。
- 问题级别:如是否能够查看某个具体的问题、是否能够进行处理或其他问题操作等。
在一些优秀的问题跟踪软件中,还会提供更多的权限控制功能,如:对每个字段进行控制、对某些人只允许访问和自己有关的问题等。
7. 支持常见问题操作和问题管理功能
常见的问题操作:创建问题、编辑问题、处理问题、登记工作、评论、重分配、删除、创建子问题、建立关联、添加附件等。
常见的管理功能:过滤、查找和搜索问题;导出、导入、统计等。
8. 问题通知功能
当问题被创建或更新(如处理、编辑、评论等)时,问题跟踪系统应该能够自动通知给相关的人员,使他们及时获知问题的进展。
通知的方式主要有:EMAIL,桌面,手机短信等。
9. 知识库功能
知识库是问题跟踪系统中不可缺少的组成部分。
用户可以将问题处理过程中出现的有价值的信息转入知识库中进行分类整理和共享。其他同事或公司客户通过学习知识库中的内容,可以避免或减少类似问题的发生,提高处理类似问题的技能和效率。
10. 问题统计报表
可以对问题的分布、变化趋势、人员工作等情况进行统计。
11. 其他功能
除具备上述基本功能外,不同的问题跟踪系统软件还会有一些比较特色的功能。如任务分解、定时器、域用户集成、文档共享等。您可以在选择时,对每种软件进行评估使用。
三、问题跟踪系统的常见应用场景
1. 产品开发中的应用
前期:需求收集、分析和管理
中期:产品BUG跟踪,测试管理,用例管理,开发任务跟踪,技术问题管理,需求、设计变更控制
后期:需求变更控制,客户问题跟踪,BUG跟踪
2. IT服务跟踪
事件跟踪,问题跟踪,变更管理
3. 客户服务
客户服务跟踪(如咨询、投诉、服务请求等),客户信息管理
4. 任务跟踪
项目计划任务分解及跟踪
部门间任务协调跟踪,部门内任务跟踪,个人任务跟踪
5. 文档和知识共享
6. 各种业务工作流程的电子化
文档审核、审批、发布,日常办公审批流程
7. 工作计划记录和总结
日志、周报、月报
四、问题跟踪系统软件产品
问题跟踪软件产品是非常多的。但是好用的不多,而且大部分是为BUG跟踪设计,灵活性不足。
下面是几种常见问题跟踪系统或较为流行的bug跟踪软件。许多软件都提供在线试用,您可以通过试用获得更直观的认识。
URTracker 评价:★★★★★
国产问题跟踪软件,有免费版,网址为http://urtracker.cn/。URTracker灵活性非常好,可以很方便的实现各种问题管理流程。界面是全中文的,配置和操作简单,容易上手。支持很多的非常实用的功能,如知识库、文档共享、问题和任务分解、协同处理、定时器等等。在我们所评估的问题跟踪软件中, URTracker的功能是最全面的,但是它的配置方式却最简单方便,而且价格也最低。
URTracker在我们公司安装到现在已经有4个月了,系统中项目总数达到了16个,各类问题和事务的数目达到了4000多条,各类问题管理的井井有条,员工效率有很大提升。软件本身运行效果也非常好,软件速度很快,运行很稳定,领导和员工都很喜欢。
JIRA 评价:★★★★☆
国外软件中,最著名的莫过于澳大利亚产的Jira了。Jira对开源项目免费,所以它在开源界很有名气。
Jira做的也非常灵活,但是它实在是太复杂了,对中文的支持也不好,而且没有知识库功能,权限控制也没有URTracker灵活。Jira中概念很多,难以理解。很多在URTracker中非常简单的配置,在JIRA中要在好几个地方做设置操作。而且Jira中的许多设计也是针对BUG跟踪需求的,用做其他问题类型的跟踪时,有时候会不太恰当。
网络上有《URTracker和Jira的对比评测》,有兴趣的读者可以搜索一下。
BugZero 评价:★★☆☆☆
BugZero似乎是中国人在美国做的软件。不过这个软件实在太简陋了,无论从功能上还是界面上。
Bugzilla 评价:★★☆☆☆
Bugzilla是一个BUG跟踪软件,不能算作问题跟踪系统。不过Bugzilla是免费开源的,如果您只用于bug跟踪,且不需要更多的自定义功能(如字段、流程、人员权限等),也可以考虑用这个软件。
Bugfree 评价:★★☆☆☆
Bugfree也是一个国产的BUG跟踪软件,免费开源。如果只用于BUG管理,也可以考虑使用此软件。
除了选用上述成熟的软件,您也可以自己开发。要想实现相对比较灵活的功能,开发和测试工作量估计在36人月以上。成本还是很高的。
五、问题跟踪系统的实施
在企业中推广和建立问题跟踪系统是一个循序渐进的过程。
1. 概念导入
公司领导和员工都要充分认识到建立问题跟踪系统对公司和员工的重大意义。
问题跟踪系统会给员工带来一定的工作量(以前口头上说的事情,现在要录入到计算机中)。虽然相对于使用软件带给企业的管理和个人效率的提升,这些工作微不足道,但是还是会让一些人对此产生抵触的情绪。
所以在企业中推广问题跟踪之前,一定要领导和员工都认识到软件能给企业和员工自身带来的好处,才能让大家积极的使用软件。
2. 选型并部署问题跟踪软件
每个问题跟踪软件的功能、可定制性、收费方式等都不尽相同。企业可以根据自己的需求情况来选择。
确定好软件后,找一台服务器安装和部署软件。(由于数据本身的价值远大于计算机的价格,为了保证数据安全,建议您使用带有磁盘阵列的品牌或组装服务器来安装和部署软件。)
3. 初步实施
选择几个典型的或紧要的问题跟踪需求,为他们在问题跟踪系统中建立和配置项目,并在对应的团队或项目组中试运行。
试运行时,问题跟踪系统管理员应按照使用者的反馈及时调整字段、人员角色和问题处理流程的设置,使软件更贴合用户的实际需要。
4. 应用扩展
初步实施一段时间后,公司领导和员工将可以体会到问题跟踪系统的管理思想,也积累了一些软件配置和使用的经验。此时,可以逐步将其他类似的问题或事务跟踪需求纳入问题跟踪系统中进行管理。
5. 建立制度
对于一套管理软件来说,配套制度是必不可少的。制度主要实现如下的目的:
l 保证所有的问题都被记录到问题跟踪系统中,帮助用户建立自觉及时进行问题登记的习惯。
l 与考核制度结合,提高使用人记录和处理问题的积极性。比如,可以按照创建问题的个数、处理或解决问题的个数、处理问题的及时性、完成质量等打分。
7. 日常维护
随着问题跟踪系统的不断运转,软件在企业中的重要性会越来越高,数据也会越来越多。这些都是企业的宝贵资产,万一机器宕机或硬盘损坏,将对企业带来很大的损失。因此,做好数据的日常备份和维护工作显得尤为重要。
总结
问题跟踪系统软件虽然是很简单的工具,其管理思想也非常容易理解,但如果成功实施,它们所能够给企业带来的效率和管理的提升是非常巨大的。小工具、大改变。希望更多的国内企业关注并使用这一管理工具。