建立自己的漏洞跟踪系统不可取的原因

54

我曾多次面对一个团队想要构建自己的缺陷跟踪系统,这不是作为产品,而是作为内部工具。

我听到的支持意见通常是:

  • 希望通过一些内部构建的Web框架来“吃自己的狗粮”
  • 需要一些高度专业的报告或以某种所谓独特的方式调整某些功能
  • 认为构建缺陷跟踪系统并不困难

如果要支持购买现有的缺陷跟踪系统,你可能会使用哪些论点?特别是,哪些功能听起来很容易但实际上很难实现,或者很难并且很重要但常常被忽视?


我们自己构建了系统。这并不难。它极大地改善了客户服务,因为它可以与我们自己定制的CRM集成。我们已经有了客户数据库……添加一些额外的字段并不难。我们公司非常成功。这是一个巨大的时间节省和客户服务优势。不需要使用多个系统很棒。现代技术可以轻松地将定制表单和报告放在网上。商业系统很复杂,学习曲线陡峭。工程师们很容易过度思考,使事情变得复杂。保持简单就好。 - David J
35个回答

5
我们已经在这里完成了这项工作。我们十多年前写的第一个系统。之后,我们将其升级为使用Web服务,更多是为了学习技术。我们最初做这个的主要原因是,我们想要一个缺陷跟踪系统,还能生成版本历史报告和其他一些商业产品中找不到的功能。
现在我们再次考虑缺陷跟踪系统,并且认真考虑迁移到Mantis并使用Mantis Connect添加我们自己的其他自定义功能。自己开发系统需要付出太大的努力。
我猜我们也应该看看FogBugz :-)

4
作为一名编程员,在处理已经很关键(或至少很重要)的任务时,不应该试图开发市场上已经存在的东西(开源或商业)而分心。
现在你将尝试创建一个缺陷跟踪系统,以跟踪你用于核心开发中的缺陷跟踪系统中的缺陷。
首先: 1. 选择你的缺陷系统将在哪个平台上运行(Java、PHP、Windows、Linux等)。 2. 尝试找到可用的开源工具(我指的是商业和免费工具),并适用于你选择的平台。 3. 尽可能少地花时间来自定义。如果可能的话,根本不要浪费时间进行自定义。
对于企业开发团队,我们开始使用JIRA。我们想要一些额外的报告、SSO登录等。JIRA能够胜任,并且我们可以使用已有的插件来扩展它。由于代码是付费支持的一部分,我们只花了最少的时间编写自定义插件来登录。

1
+1 for "创建一个缺陷跟踪系统来跟踪您用于追踪核心开发中的缺陷跟踪系统。" LOL - Dubs

3

在其他人所说的基础上,不要只是下载一个免费/开源软件。为什么不下载它,然后完全修改以适应您自己的需求呢?我知道过去曾经要求我这样做。我拿到了Bugzilla的安装包,然后修改它以支持回归测试和测试报告(这是很多年前的事情)。

除非您确信可以造出更圆的轮子,否则不要重新发明轮子。


2

我曾经在这场辩论的两端,所以让我变得有点虚伪。

当我年轻的时候,我推动建立我们自己的错误跟踪系统。我只是强调了所有现成软件无法做到的事情,而我成功地让管理层采纳了我的想法。他们选择我来领导团队吗?没错!这将是我第一次担任团队领导并在设计、工具和人员方面有发言权。我很兴奋。所以,我的建议是要检查推动这个项目的人的动机。

现在我年龄更大了,面临着同样的问题,我决定使用FogBugz。它可以完成我们需要的99%,成本基本为0。此外,Joel会给你发送个人邮件让你感觉很特别。最终,问题不就在于,开发人员认为这会让他们显得特别吗?


你在使用FogBugz时还缺少什么1%的功能? - Jacob Krall
我并不是想冒犯或者有什么恶意。没有任何产品能够完全满足用户的需求,这是不可能的。 - Jonathan Beerhalter

2

我认为最大的障碍之一是对数据模型/工作流程进行深思熟虑。我预测这将花费很长时间,并涉及许多关于在某些情况下应该怎样处理错误,什么才算是错误等方面的争论。与其花费数月时间来回争论,如果您只是推出一个预先构建好的系统,大多数人都会学会如何使用它,并充分利用它,无论已经固定了哪些决策。选择开源软件,如果需要,您总是可以稍后进行调整 - 这将比从头开始自己编写要快得多。


2

目前,如果没有一个关于缺陷跟踪/工单的大型新方向,那么这只会是重复造轮子。而这似乎是其他人普遍认为的。


2

您的讨论将从何谓错误开始,并发展为应用何种工作流程,最终演变成如何管理软件工程项目的大争论。您真的想要那样吗? :-) 不要了,去买一个吧!


2

大多数开发人员认为他们有一些独特的能力,而其他人则没有,因此他们可以创建一种在某些方面独特的系统。

99%的人都是错误的。

你的公司有1%的员工机会吗?


1

我同意不使用外部插件的所有理由。我们尝试了一段时间去使用它们,但最终还是自己编写了代码。为什么?主要是因为大多数插件过于繁琐,只有技术人员才能使用。我们甚至尝试了basecamp(当然,并不是为此设计,所以在这方面失败了)。

我们还开发了一些独特的功能,与我们的客户非常配合:我们将“报告错误”按钮编写成了一行javascript代码并嵌入到代码中。这使得我们的客户可以打开一个小窗口,快速地填写信息并提交到数据库。

但是,编写代码肯定需要花费很长时间,成为了一个重要的项目,很多周末的时间都被占用了。

如果您想查看,请访问:http://www.archerfishonline.com

期待您的反馈。


链接无法使用。 - GibboK

1
我们已经做过这个...几次了。我们之所以建立自己的工具,是因为五年前没有很多好的替代品。但现在有大量的替代品。我们在建立自己的工具中学到的主要事情是,你将花费大量时间在上面。而那是你可以计费的时间。作为一个小企业,支付每月的费用更有意义,你可以轻松地通过一两个计费小时来收回成本,而不是花费所有时间来开发自己的工具。当然,你必须做出一些让步,但从长远来看,你会受益匪浅。
至于我们,我们决定让我们的应用程序可供其他开发人员使用。请查看http://www.myintervals.com

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接