我曾多次面对一个团队想要构建自己的缺陷跟踪系统,这不是作为产品,而是作为内部工具。
我听到的支持意见通常是:
- 希望通过一些内部构建的Web框架来“吃自己的狗粮”
- 需要一些高度专业的报告或以某种所谓独特的方式调整某些功能
- 认为构建缺陷跟踪系统并不困难
如果要支持购买现有的缺陷跟踪系统,你可能会使用哪些论点?特别是,哪些功能听起来很容易但实际上很难实现,或者很难并且很重要但常常被忽视?
我曾多次面对一个团队想要构建自己的缺陷跟踪系统,这不是作为产品,而是作为内部工具。
我听到的支持意见通常是:
如果要支持购买现有的缺陷跟踪系统,你可能会使用哪些论点?特别是,哪些功能听起来很容易但实际上很难实现,或者很难并且很重要但常常被忽视?
在其他人所说的基础上,不要只是下载一个免费/开源软件。为什么不下载它,然后完全修改以适应您自己的需求呢?我知道过去曾经要求我这样做。我拿到了Bugzilla的安装包,然后修改它以支持回归测试和测试报告(这是很多年前的事情)。
除非您确信可以造出更圆的轮子,否则不要重新发明轮子。
我曾经在这场辩论的两端,所以让我变得有点虚伪。
当我年轻的时候,我推动建立我们自己的错误跟踪系统。我只是强调了所有现成软件无法做到的事情,而我成功地让管理层采纳了我的想法。他们选择我来领导团队吗?没错!这将是我第一次担任团队领导并在设计、工具和人员方面有发言权。我很兴奋。所以,我的建议是要检查推动这个项目的人的动机。
现在我年龄更大了,面临着同样的问题,我决定使用FogBugz。它可以完成我们需要的99%,成本基本为0。此外,Joel会给你发送个人邮件让你感觉很特别。最终,问题不就在于,开发人员认为这会让他们显得特别吗?
我认为最大的障碍之一是对数据模型/工作流程进行深思熟虑。我预测这将花费很长时间,并涉及许多关于在某些情况下应该怎样处理错误,什么才算是错误等方面的争论。与其花费数月时间来回争论,如果您只是推出一个预先构建好的系统,大多数人都会学会如何使用它,并充分利用它,无论已经固定了哪些决策。选择开源软件,如果需要,您总是可以稍后进行调整 - 这将比从头开始自己编写要快得多。
目前,如果没有一个关于缺陷跟踪/工单的大型新方向,那么这只会是重复造轮子。而这似乎是其他人普遍认为的。
您的讨论将从何谓错误开始,并发展为应用何种工作流程,最终演变成如何管理软件工程项目的大争论。您真的想要那样吗? :-) 不要了,去买一个吧!
大多数开发人员认为他们有一些独特的能力,而其他人则没有,因此他们可以创建一种在某些方面独特的系统。
99%的人都是错误的。
你的公司有1%的员工机会吗?
我同意不使用外部插件的所有理由。我们尝试了一段时间去使用它们,但最终还是自己编写了代码。为什么?主要是因为大多数插件过于繁琐,只有技术人员才能使用。我们甚至尝试了basecamp(当然,并不是为此设计,所以在这方面失败了)。
我们还开发了一些独特的功能,与我们的客户非常配合:我们将“报告错误”按钮编写成了一行javascript代码并嵌入到代码中。这使得我们的客户可以打开一个小窗口,快速地填写信息并提交到数据库。
但是,编写代码肯定需要花费很长时间,成为了一个重要的项目,很多周末的时间都被占用了。
如果您想查看,请访问:http://www.archerfishonline.com
期待您的反馈。