实现功能与错误修复

时间:2009-04-13 09:30:07

标签: debugging

我感兴趣的是,与修复错误相比,您在实施新功能上花费了多少日常工作时间。

8 个答案:

答案 0 :(得分:10)

只要我的软件中存在一些未修复的错误,我就不会对任何新功能进行编码。

我能想到在我的软件中修复一个错误的唯一原因是修复它肯定是昂贵的。在这种情况下,我们可以选择将其从“bug”更改为“已知限制”或“已知bug”,并且我们会相应地修改我们给用户的反馈,以便用户确切地知道发生了什么以及为什么不是修复(见下面的编辑)

通常情况下,只要QA抱怨某些内容,我就把所有时间花在修复错误上,并且当我没有时间编码时,我所有的时间都会编码! :)

我这样做是因为:

  • 当一个软件做了很多事情,但随机崩溃时,用户会觉得他不能依赖这个软件,而且你无法解决这个问题。如初。

  • 当一个软件缺少某些功能,但擅长做它的功能时,用户宁可认为“这可能是一个很棒的软件,太糟糕了它不支持X和Y ......我会检查6个月内的下一个版本“。


Joel Spolsky在他的文章中写了一篇关于这个问题的有趣帖子 12 steps to better code


编辑以回答评论:如果我遇到随机崩溃,那肯定是一个错误,而不是“已知限制”。一旦我确切知道发生了什么,只有这样,我才能决定是否可以修复它。

我正在考虑以下情况:

  • 该错误是由不属于我的代码(通常是第三方库)引起的。如果实施变通方法非常复杂,则可以等待第三方供应商修复它。真实世界的例子:Clickonce在某些代理情况下不起作用......我希望微软最终解决它。

  • 如果错误是特定功能在所有情况下都不起作用,并且这个功能对于那些特定情况实现起来太难了,我认为可以在之前警告用户 em>他使用的功能是,没有实现正在尝试做的事情,而不仅仅是崩溃。

答案 1 :(得分:2)

我为公司内部的一个团队工作,他们想要创建“featurettes”并回应客户问题。我倾向于将更多时间花在高优先级客户问题上(阅读:错误)。所以我想说我的时间几乎100%花在修复bug上。

那就是说,让我们稍微阅读一下。似乎这个问题是一种说法“ugg,我花了很多时间在错误修正上...希望我能做更多的功能开发”。如果是这种情况,我认为你需要向内看一下。

正如我所说,我几乎把所有时间花在修复客户问题的bug上,但我也写了很多工具来帮助完成这个过程。我拥有从专业日志分析器到通用visualstudio解决方案文件错误检查器的所有功能。更不用说我为深奥的断点编写的一些甜蜜的wndbg脚本了!

通过做那样的事情,我实现了对“新事物”工作的愿望。在某种程度上,它比在一个巨大的企业应用程序中实现一些新的小齿轮更有价值。

答案 2 :(得分:1)

由于我没有得到维持任何项目的报酬,所以大部分时间我都在从事新项目,因此不断添加新功能。

但是,每个功能都需要彻底测试和调试,因此您可以说实现功能所花费的时间将占30-40%。

答案 3 :(得分:1)

许多项目都有一个开发阶段(“代码解冻”),其中主动添加新功能与错误修复同时发生,以及“代码冻结”阶段,功能集被冻结,100%的工作用于实现关键错误计数为0(或修复尽可能多的错误,直到固定截止日期为止),因此答案将取决于项目所在的阶段。

当我“做错误”时,我也尽最大努力声称至少有一个功能可以同时工作,或者(当遇到特别错误的代码块时)请求重构整个块。因此,我开始做一些新的开发(并且,面对它,我们大多数人更愿意编写新东西来修复旧版本),同时减少错误数量。

答案 4 :(得分:1)

当我在分配我的工作时,我的脑子里有一系列的优先事项:

  1. 影响客户开展业务或访问其数据的能力的错误。在完成任何类似的错误之前,不会做任何工作。
  2. 其他高优先级错误或功能。这些通常是“已知问题”类型的错误或增强,已经变得难以处理,现在需要更改代码。此外,大客户或潜在客户要求的功能通常属于此类别。
  3. 其他一切。这包括我们的代码库中的维护,很棒的功能以及一般的搔抓式维护。
  4. 正如您所能想象的那样,#3类别的作品并没有经常发挥作用,从工程角度来看这有点令人沮丧。但是,我们的客户喜欢我们,因为他们在致电我们的支持热线后几乎立即让工程师处理他们的问题并且通常在24小时内解决,无论其大小或重要性如何。

答案 5 :(得分:0)

这取决于项目,如果有一个显示停止错误我专注于它但有时当我没有足够的动力我只是添加一个新的酷功能,所以我至少可以工作而不是做任何事情。

这适用于个人项目或预发布/研究产品之前

答案 6 :(得分:0)

这完全取决于我目前正在处理的项目类型。 如果项目是新的,那么在测试阶段之后我们确实有一个称为bug修复的阶段。大多数错误在那里得到修复。 (!)

如果项目是维护项目,则修复错误是日常工作。

答案 7 :(得分:0)

这取决于错误。

这是一个轻微的化妆品问题,例如错误标签或破坏数据的巨大淘汰错误吗?

即使是轻微的或美观的,它是否会引起用户头痛,比如在错误的地方弹出一个弹出窗口?仅在满月的Firefox 2中是否存在数据损坏错误(并且您的企业内部网是IE 6)?

虽然好问题......