修复到现在为止从未引起问题的错误


20

我最近进行了更改,导致某些代码的运行频率比以前更高。这导致发现错误。该错误有可能在每次运行代码时发生,但是由于它很少运行而从未出现过。

当我提请首席开发人员注意此问题时,他希望我撤消暴露该错误的更改,而不是修复该错误并引用格言“如果它没有破裂,请不要对其进行修复”。

对我来说很清楚,直到现在我们还是很幸运的,但是他不听理智。

我是否应该修复它?

更新资料

主管在技术上对我没有任何权限。只是任期。直到一年前,他一直是该项目的唯一开发人员,而我认为他对建设性的批评并不很好。为了什么,我没有批评他。我只是指出,仅此错误从未出现并不表示它不存在。


是与线程相关的错误还是其他?
TheLQ

3
他是老板是有原因的。当大便撞到风扇时,他将成为他们烤的那个。如果他因为您没有按照他的要求去烤而被烤,那么您将需要一个大桨。
马丁·约克

3
您是否可以构建即使撤消更改仍会发生错误的情况?如果不是,则可能不是错误,这是fea ^ H ^ H ^ H ^ Hn未记录的限制。
Steve314 2011年

3
嗯,“如果它摔坏了,别的东西不动。” -这是一种新颖的解释,我给他。
2011年

1
“如果没有破裂,就不要修复”?但是它坏了。
StuperUser 2011年

Answers:


26

我建议如果您有错误跟踪,请提交。如果很关键,请抬高它并引起他的注意。让您的上级在跟踪器中将其降级。当出现问题时,您将获得书面记录。


9
记住:掩盖你的屁股:-)
gruszczy 2011年

1
没那么幸运。一切都是裤子。没有错误跟踪,没有需求收集,没有测试。如果管理层不坚持的话,甚至可能没有版本控制。
肯尼斯·科克伦

18
根据您对工作环境的描述,当首席开发人员告诉您不要修复它时,您应该点点头,然后微笑,然后继续进行您想做的事情。
Carson63000

2
下次不要问这样的问题:-)
gruszczy 2011年

2
@codeelegance:“没有错误跟踪,没有需求收集,没有测试。如果管理层不坚持的话,甚至可能没有版本控制。” -甜蜜的玛丽亚上帝之母!1!该环境完全讽刺您的用户名。:)
Bobby Tables

8

我个人会解决它,除非它需要付出比其价值更大的努力。“如果它没有坏,就不要修复它”适用于软件是可怕的。

如果您的主要开发人员是您的老板,而他说不要碰,那我就不会。


2
他们在周期中有多晚?这可能是潜在的自杀。
Job

8
“如果没有崩溃,请不要修复它”是适用于软件的一个很好的规则-而不是在软件崩溃时。
Steve314 2011年

如果它没有损坏,请根据损坏代码的定义对它进行修复。当您坐下来盯着显然需要修复的代码的那一刻,它就坏了。在您开始为损坏的代码实施变通办法的那一刻,您实际上正在向后工作,并且随着时间的推移,损坏的代码将越来越难修复...
Ernelli 2011年

2

大多数答案和评论都建议通过创建错误报告并让其他人打电话来减轻决策的责任。

由于我没有bug追踪器(而且我怀疑如果我们这样做,除了我自己,其他人都不会使用它),所以我做了第二件好事。我超过了首席开发人员的头。向管理层解释情况后,他们以自己的方式看待事情。他们告诉我正确修复它,而忽略潜在客户的需求请求。他们说,如果他发现诡计并抱怨,他们会抚平所有皱褶的羽毛。

这不是理想的解决方案,但至少已正确修复了该错误。


您在命令链中工作,因此掩盖了您的屁股。使用bug跟踪软件是什么公司应该考虑的,它可以帮助像这样的东西,至少跟踪和功能要求等等
帐户berin Loritsch

2

提醒他这句话是“如果没有损坏,请不要修复”,而不是“如果客户没有注意到,请不要修复”。


1

您对所做的更改有什么理由?如果您无法指出用户将经历的更改或技术债务已被删除,那么我将支持首席开发人员,说要仅撤消更改,因为这只会使情况变得更糟。


在我看来,您至少有两个不同的选择:

如果您只是继续解决该错误,则可能会增加更多错误,这可能会适得其反。取决于您有多少经验和避免产生令人讨厌的惊喜的信心,这可能是我在这里的指南。

如果您被告知要做的事,是内还是问题呢?我想知道这里除了所谓的原则和价值观之外还有什么问题。我的意思是,这只是个玩笑,但也是这个想法出了什么问题的老实点?


进行此更改是修复另一个错误所必需的。线索建议我放置条件代码,这些条件代码限制了代码运行的频率,而不是解决错误的原因。我修复的错误和发现的错误都是显示停止器。
肯尼斯·科克伦

3
在这种情况下,需要对其进行正确修复。使用包裹在问题周围的条件只会延缓灾难的发生,而且还会增加更多新的代码,而这又会出错。这是一个不好的(甚至是愚蠢的)解决方案。
quick_now 2011年

1

虽然我的压倒性本能是修复错误而不是隐藏问题,但在某些情况下,我会hold之以鼻并隐藏问题。

  1. 代码在内部使用,并且偶尔使用,因此错误的后果在公司内部是可以控制的。
  2. 大量的商业考虑要求今天发货,并且一个错误修复程序可能会在两周后推出,并且后果不大。

从专业上讲,我不喜欢这些答案,并且会在内部清楚地表明这些情况正在发生。


0

最终,您不应做上司明确拒绝的任何事情。我相信,最好的做法是在您拥有的任何错误跟踪数据库中创建一个错误报告。这样,至少每个人都知道该问题,而拥有更多权限的人可以决定如何处理。


0

复制越野车功能,应用此修复程序,对其进行重命名,也许对其进行伪装,然后调用它。

根据您对showtopper的两个bug的评论,您最好的选择是遵循法律的条文,而忽略其精神。

显然,剪切和粘贴代码存在缺点,但是听起来这将是最少的问题。


1
不好的主意,如果我发现我的一位程序员在做这样的事情,我会当场解雇他,那是一种保证代码的方式,对于必须维护该代码的人来说,这是保证的方式。
Miki Watts,

@Miki-在这种情况下,请告诉我确切的主意是什么?请说明如何重新放置错误,因为它使另一个错误(无论如何在那里)更加可见,这是一件好事。至于当场解雇,我认为是建设性的解雇,因为开发商别无选择。
Steve314,2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.