现在我已经多次面对一个想要建立自己的错误跟踪系统的团队的计划 - 不是作为产品,而是作为内部工具。
我所听到的有利论据通常都是:
您可以使用哪些参数来支持购买现有的错误跟踪系统?特别是,什么功能听起来很容易但很难实现,或者很难和重要但经常被忽视?
答案 0 :(得分:79)
首先,请查看以下Ohloh指标:
Trac: 44 KLoC, 10 Person Years, $577,003
Bugzilla: 54 KLoC, 13 Person Years, $714,437
Redmine: 171 KLoC, 44 Person Years, $2,400,723
Mantis: 182 KLoC, 47 Person Years, $2,562,978
我们从这些数字中学到了什么?我们了解到构建又一个Bug Tracker是一种浪费资源的好方法!
所以我的理由是建立自己的内部错误跟踪系统:
否则不要。
答案 1 :(得分:39)
我想转过身来。为什么你想建立自己的? 如果您需要一些额外的字段,请使用可以修改的现有包 特别报道?点按数据库并进行制作。
相信这不难吗?然后试试。详细说明,并查看功能列表和小时数增长。然后在列表完成后,尝试在实现自己的包之前找到可以修改的现有包。
简而言之,当另一个人需要进行一些调整以适应时,不要重新发明轮子。
答案 2 :(得分:19)
程序员喜欢建立他们自己的票务系统,因为他们已经看过并使用了数十个票证系统,因此他们对此有所了解。这样他们就可以留在舒适区。
这就像检查一家新餐馆:它可能是有益的,但它带来了风险。最好再次订购披萨。
还有一个很重要的事实就是埋没在那里:做出一些事情总有两个理由:好的和正确的。我们做出决定(“建立我们自己的”),然后证明它(“我们需要完全控制”)。大多数人甚至都不知道他们的真正动机。
要改变主意,你必须攻击真正的原因,而不是理由。
答案 3 :(得分:14)
答案 4 :(得分:12)
还有第三种选择,既不买也不打造。那里有很多好的自由人。 例如:
滚动自己的bug跟踪器以用于学习以外的任何用途都不是很好用。
其他链接:
答案 5 :(得分:10)
我只想说这是钱的问题 - 购买一件你知道对你有用的成品(有时甚至不买,如果它是免费的)比自己开发一件好。这是一个简单的游戏现在付费与稍后付款。
答案 6 :(得分:8)
首先,反对支持建立自己的论据:
想要在一些内部构建的网络框架方面“吃我们自己的狗粮”
这当然提出了为什么要构建自己的Web框架的问题。就像那里有许多有价值的免费bug追踪器一样,也有许多有价值的框架。我想知道你的开发人员是否优先考虑他们谁在做公司实际赚钱的工作?
好的,如果他们必须构建一个框架,那么让它从构建您的企业用来赚钱的实际软件的过程中有机地发展。
需要一些高度专业化的报告,或能够以某种独特的方式调整某些功能
正如其他人所说,抓住许多优秀的开源追踪器中的一个并进行调整。
相信构建错误跟踪系统并不困难
好吧,我在短短几周内编写了BugTracker.NET的第一个版本,从没有先前的C#知识开始。但是现在,6年和几千小时后,还有一大堆未撤消的功能请求,所以这一切都取决于你想要一个bug跟踪系统做什么。多少电子邮件集成,源代码控制集成,权限,工作流,时间跟踪,计划估计等。错误跟踪器可以是主要的主要应用程序。
您可以使用哪些参数来支持购买现有的错误跟踪系统?
不需要购买。很多优秀的开源软件:Trac,Mantis_Bug_Tracker,我自己的BugTracker.NET,仅举几例。
特别是,什么功能听起来很容易但很难实现,或者很难和重要但经常被忽视?
如果你只为自己创造它,那么你可以采取很多捷径,因为你可以硬连线。如果您正在为许多不同的用户构建它,在许多不同的场景中,那么它就是对可配置性的支持。可配置的工作流程,自定义字段和权限。
我认为好的错误跟踪器必须具备的两个功能,即FogBugz和BugTracker.NET都有,1)集成了传入和传出的电子邮件,以便整个关于一个bug的对话与bug有关,而不是在一个单独的电子邮件线程中,以及2)一个实用程序,只需点击几下即可将屏幕截图转换为bug帖子。
答案 7 :(得分:6)
对我而言,最基本的论据是失时。我怀疑它可以在不到一两个月内完成。为什么要花很多时间才能有很多好的bug跟踪系统呢?给我一个你必须调整并且不易获得的功能的例子。
我认为一个好的错误跟踪系统必须反映您的开发过程。对于公司/团队来说,非常自定义的开发过程本质上是不好的。大多数敏捷实践都支持Scrum或这些类型的东西,大多数错误跟踪系统都符合这些建议和方法。不要太过官僚主义。
答案 8 :(得分:5)
错误跟踪系统可以成为启动初级开发人员的一个很棒的项目。这是一个相当简单的系统,您可以用它来训练它们的编码约定等等。让初级开发人员构建这样一个系统相对便宜,他们可以在客户看不到的东西上犯错误。
如果它是垃圾,你可以扔掉它但你可以让他们感觉到如果使用它已经对公司很重要的工作。您不能为初级开发人员提供成本,让他们能够体验整个生命周期以及此类项目带来的所有知识转移机会。
答案 9 :(得分:5)
我们在这里做到了。我们在十多年前写了第一篇。然后,我们将其升级为使用Web服务,这是学习该技术的一种方式。我们最初这样做的主要原因是我们想要一个错误跟踪系统,它还生成了版本历史报告和一些我们在商业产品中找不到的其他功能。
我们现在再次关注错误跟踪系统,并正在认真考虑迁移到Mantis并使用Mantis Connect添加我们自己的其他自定义功能。滚动我们自己的系统的努力量太大了。
我想我们也应该看看FogBugz: - )
答案 10 :(得分:5)
最重要的是,在完成错误跟踪器之前,您将在哪里提交错误?
但是说真的。工具已经存在,没有必要重新发明轮子。修改跟踪工具以添加某些特定功能是一回事(之前我修改了Trac)...重写一个只是愚蠢。
您可以指出的最重要的事情是,如果他们想要做的只是添加几个专门的报告,它不需要一个全新的解决方案。此外,最重要的地方“你的自制解决方案”很重要的内部工具。如果在需要的时候完成工作,谁会关心你在内部使用什么?
答案 11 :(得分:4)
作为一名致力于已经完成(或最不重要)任务的程序员,不应该让自己偏离于尝试开发市场上已有的东西(开源或商业)。
现在,您将尝试创建一个错误跟踪系统,以跟踪用于跟踪核心开发中的错误的错误跟踪系统。
第一: 1.选择运行bug系统的平台(Java,PHP,Windows,Linux等) 2.尝试在您选择的平台上找到可用的开源工具(通过开源,我指的是商业和免费工具) 3.花最少的时间尝试根据您的需要进行定制。如果可能的话,不要浪费时间进行自定义
对于企业开发团队,我们开始使用JIRA。我们想要一些额外的报告,SSO登录等.JIRA能够做到这一点,我们可以使用已经可用的插件扩展它。由于代码是付费支持的一部分,我们只花了很少的时间编写自定义插件进行登录。
答案 12 :(得分:3)
以其他人所说的为基础,而不仅仅是下载免费/开源的。如何下载它,然后完全根据自己的需要进行修改?我知道我过去曾被要求这样做。我安装了Bugzilla,然后修改它以支持回归测试和测试报告(这是多年前的事了)。
除非你确信你可以制造一个更圆的轮子,否则不要重新发明轮子。
答案 13 :(得分:2)
此时,在错误跟踪/票务方面没有大的新方向,它只会重新发明轮子。这似乎是其他人一般认为的。
答案 14 :(得分:2)
您的讨论将从构成错误的内容开始,逐步演变为应用的工作流程,并最终提出有关如何管理软件工程项目的大量论据。你真的想要吗? :-) Nah,不要以为 - 去买一个!
答案 15 :(得分:2)
我一直在辩论的两边,所以让我在这里面对两点。
当我年轻时,我推动建立我们自己的错误跟踪系统。我只是突出了现成的东西所不能做的所有事情,而且我得到了管理层的支持。他们选择谁来领导球队?我!这将成为我第一次成为团队领导者并在设计,工具和人员等方面发表意见的机会。我很激动。所以我的建议是检查推动这个项目的人的动机。
现在我已经老了,再次遇到同样的问题,我决定和FogBugz一起去。它占我们所需要的99%,成本基本上为0.另外,Joel会向您发送个人电子邮件,让您感觉特别。最后,问题不在于,你的开发人员认为这会让他们与众不同吗?
答案 16 :(得分:2)
我认为最大的绊脚石之一就是对数据模型/工作流程感到痛苦。我预测这将需要长的时间,并且涉及许多关于在某些情况下应该对错误发生什么,真正构成错误等的争论等等。而不是花费几个月的时间来争论,如果你只需要推出一个预先构建的系统,大多数人都会学习如何使用它并充分利用它,无论已经修复了什么决定。选择一些开源的东西,你可以随时调整它 - 如果需要的话 - 比从头开始自己更快更多。
答案 17 :(得分:2)
大多数开发人员认为他们拥有一些其他人无法拥有的独特能力,因此他们可以创建一个在某种程度上独一无二的系统。
99%的人都错了。
贵公司有1%的员工有多少机会?
答案 18 :(得分:1)
我们已经做了几次......我们建立自己的唯一原因是因为它是在五年前,并没有很多好的选择。但现在有很多替代品。我们在构建自己的工具时学到的主要是你将花费大量的时间来完成它。那时候你可以按时计费。作为一家小型企业,通过支付每月费用可以轻松收回一两个计费小时数,而不是花费所有时间来完成自己的工作。当然,你必须做出一些让步,但从长远来看,你会好得多。
至于我们,我们决定让我们的应用程序可供其他开发人员使用。请查看http://www.myintervals.com
答案 19 :(得分:1)
我同意所有不这样做的理由。我们试了一段时间来使用那里的东西,最后写完了自己的东西。为什么?主要是因为除了技术人员之外,大多数人都太过笨重。我们甚至尝试过basecamp(当然,这不是为此设计的,在这方面失败了。)
我们还提出了一些与我们的客户一起工作的独特功能:“报告错误”按钮,我们使用一行javascript编写代码。它允许我们的客户打开一个小窗口,快速输入信息并提交到数据库。
但是,编码肯定需要花费数小时;成为一个大宠物项目;很多周末时间。
如果您想查看它:http://www.archerfishonline.com
会喜欢一些反馈。
答案 20 :(得分:1)
我认为人们编写自己的错误跟踪系统的原因(根据我的经验)是,
对我来说,大多数错误跟踪器失败的最大原因是他们没有提供最佳的用户体验,而且如果没有针对可用性进行优化,使用LOT的系统会非常痛苦。
我认为另一个原因与我们几乎每个人(程序员)在某个时候都建立了自己的自定义CMS或CMS框架(有罪)一样。只因为你可以!
答案 21 :(得分:1)
因为它不是可计费的时间,甚至非常有用,除非你要出售它。
有完善的错误跟踪系统,例如FogBugz。
答案 22 :(得分:1)
按原样使用某些开源软件。 肯定存在错误,你将需要尚未存在的东西或正在等待修复bug。它一直都在发生。 :)
如果扩展/自定义开源版本,则必须对其进行维护。现在,用于帮助您测试赚钱应用程序的应用程序将成为支持的负担。
答案 23 :(得分:1)
我在创业公司工作了几年,我们开始使用GNATS这个开源工具,并且基本上构建了我们自己精心设计的错误跟踪系统。争论的焦点是,我们会避免在商业系统上花费大量资金,我们会得到一个完全符合我们需求的错误跟踪系统。
当然,事实证明它比预期的要困难得多,并且对开发人员来说是一个很大的分心 - 他们除了我们的代码之外还必须维护错误跟踪系统。这是导致我们公司倒闭的原因之一。
答案 24 :(得分:1)
如果“需要一些高度专业化的报告,或以某种所谓的独特方式调整某些功能的能力”,最好和最便宜的方法是与现有的错误跟踪系统的开发人员交谈。支付他们将该功能放入他们的应用程序,让它可供世界使用。不要重新发明轮子,只需付钱给轮子制造商放入形状像弹簧的辐条。
否则,如果试图展示一个框架,那一切都很好。只要确保加入相关的免责声明。
对于那些认为bug跟踪系统不难构建的人来说,严格按照瀑布SDLC进行操作。预先获得所有要求。这肯定会帮助他们理解复杂性。这些人通常都是那些说搜索引擎并不难建立的人。只需一个文本框,一个“搜索”按钮和一个“我感觉很幸运”按钮,“我感觉很幸运”按钮就可以在第二阶段完成。
答案 25 :(得分:1)
因为Trac存在。
因为你需要在你的定制软件上培训新员工,因为他们可能有其他系统的经验,你可以建立而不是扔掉。
答案 26 :(得分:1)
问题是贵公司付钱给你的是什么?是编写只会使用的软件吗?显然不是。因此,建立错误跟踪系统的时间和费用的唯一方法是,如果它的成本低于使用甚至免费的错误跟踪系统所带来的成本。
可能有可能出现这种情况。您需要与现有系统集成吗? (时间跟踪,估算,要求,质量保证,自动化测试)?您的组织中是否有一些与SOX合规性相关的独特要求,这些要求需要难以捕获的特定数据元素?
您是否处于一个极其美好的环境中,导致项目之间出现重大的“停机时间”?
如果对这些类型的问题的答案是肯定的 - 那么无论如何,“购买”与构建争论都会说构建。
答案 27 :(得分:1)
每个软件开发人员都希望构建自己的错误跟踪系统。这是因为我们可以显然改进已经存在的东西,因为我们是领域专家。
几乎可以肯定不值得花费(就开发时间而言)。只需购买JIRA。
如果您需要为您的错误跟踪系统提供额外的报告,您可以添加这些报告,即使您必须通过直接访问基础数据库来执行此操作。
答案 28 :(得分:0)
假设明天(明年),如果他们决定为公司的所有错误跟踪系统引入流行的开源/商业工具,该工具将如何将其所有错误票据导出到其他工具?
只要真正需要自定义错误跟踪系统,并且回答了这些问题,我就不会太烦心了。
答案 29 :(得分:0)
那里有很多很棒的,为什么要浪费时间重新发明轮子?
只需使用FogBugz。
答案 30 :(得分:0)
我同意这里的大多数人。当有许多工具(甚至免费)可用时,重建某些东西是没用的。 如果你想自定义任何东西,大多数免费工具会为你提供代码,并使用它。
如果你进行新的开发,你不应该只为自己做这件事。
答案 31 :(得分:0)
不要只是写自己的软件,这样你就可以“吃自己的狗粮”。你只需要购买能够做同样事情(并且更好)的软件,花费更少的时间和金钱,就可以创造更多的工作。
答案 32 :(得分:0)
我不认为构建内部跟踪系统相对容易构建,当然它不会与付费或开源解决方案相匹配。大多数时候,我会选择“程序员自我”,或者只是拥有一个真正无法使用第三方软件的IT部门,并且必须逐字地构建所使用的每一个软件。
一旦我在一家拥有自己的内部版本控制系统的电信公司工作,这很糟糕,但它让整个团队忙碌......
答案 33 :(得分:0)
告诉他们,这很好,该公司可以在一段时间内节省一些钱,并且很乐意在您完成这项无偿休假时提供开发工具。任何希望休年假而不是参与该项目的人都可以免费参加。
答案 34 :(得分:0)
我已经建立了自己的错误跟踪系统。我也想过:“它有多难,它只是一个错误跟踪系统”错误 - 错误* - 它需要六个月的时间来编码。
我烘焙自己的主要原因是为了得到它我想要它的方式。另一个原因是作为一个爱好项目。
我会说这是唯一有理由建立自己的时候,如果它是一个业余爱好项目。没有公司应该花时间去做。
顺便说一句,我的软件名为Bugweb。