摄影:产品经理产品经理亲手做的雪糕
原文地址:You’ve only added two lines - why did that take two days! ~ Matt Lacey: Creating Better Apps[1],翻译:kingname.
这个问题本身是合理的,但它却有一些不太好的潜在假设:
- 代码行数=努力程度
- 代码行数=价值
- 所有的代码生而平等
上面的三条都不对。
为什么修复一个如此简单的问题,我却花了两天时间?
- 上报问题的时候,没有清楚说明怎么复现。我需要花几个小时的时间去可靠地复现这个问题。
- 问题涉及到一些我不太熟悉的功能。
- 我需要花一些时间去研究这个问题的根本原因,而不是直接原因。如果一些代码抛出异常,你当然可以直接 try…except,几秒钟搞定。不报错等于没有问题,对你可以,对我不行。
- 除了上报的复现步骤,我也会研究是否有其他方法也可能导致这个问题。
- 我还需要花一些时间去验证会不会因为修复这个代码而导致其他问题。
- 我发现问题的原因以后,会尝试寻找一种副作用最小的修复方案。
- 我需要对修改的地方进行彻底地测试,并确保不同的复现方案都已经不能复现这个问题。
我不喜欢修 bug。一来是因为 bug 是对我之前工作的否定,二来是因为比起 bug 我还是喜欢写新的东西。
比修 bug 更痛苦的是,频繁修同一个 bug。
我需要花时间确认所有已提交的 bug 都已经完全修复。这样才能保证他们不会再次出现。