昨天老板和我们分享一个想法: 除错只能靠Debug Log吗?
他说到他来公司已经不少年, 可是对于公司的一件事情还是不是很习惯. 那就是engineer要解决一个bug时, 总是要求说要提供debug log给他, 否则他们就无法解这个问题.
对他来说, 这事件很不可思议的事. 因为解决问题的方法很多, 并不是只有看debug log才能解决, 而且这可能是你不肯动脑的借口, 只想让人把线所放到你面前. 更糟的事, 这线索可能是不完整或是不正确的.
他举了一些方法, 例如你可以问使用者所使用的环境, 是使用什么browser, OS是多少bits, 或是在哪个时间点发现的, 等等. 已就是先厘清使用者环境的问题. 接着你或许可以问到他如何安装这个系统, 是fresh install还是upgrade或是更换Hot fix等等, 了解一些除了reproduced steps之外的一些系统环境. 或者询问用户输入什么样的数据, 同样是字符串, 是否里面有什么特别的地方.
有时候在厘清这些问题之后, 事情就就可以更快被解决, 而不一定都要收集debug log才知道问题在哪里. 毕竟大多数的debug log只反映了程序设计师的程序如何执行, 或是得到的数据是什么. 但是无法得知环境问题, 或是在bug发生之前所发生的一些事情. 因此光看debug log也只是得到部分信息.
当然更不用提, 若是debug log 一开始若是设计不当时, 不是数据过多, 要不就是没有任何有用的线索, 可能还是帮不上任何忙.
前一阵子, 我去参加公司的一个活动: 一日良师, 去call center听听客户在使用我们产品时, 遇到怎样的问题. 那时我就发现到call center的engineer真的很厉害, 因为他觉大部分的时间都不需要debug log, 有可能他看不懂debug log. 也就是因为如此, 他就会思考如何去问问题, 去厘清一些环境, input data, 使用流程, 使用时间点...等, 想办法藉由这些讯息, 找出问题症结所在. 可惜我们在后面的开发产品的工程师便没有这种思维.
或许可能是我们目前的环境, 过度保护了产品开发的工程师, 让他们最后只会要debug log.需知道别人帮你收集debug log, 只是希望能帮助整个除错工作的进行, 可是我们却忘记了这可能让工程师的技能变弱了. 就向父母亲过度保护小孩子, 导致小孩子无法独立自己处理事情一样.
此外, 这件事情并不是只跟开发人员有关, 其实QA人员更需要这份能力. QA需要懂得问问题来厘清一些状况, 不只在解问题或是发现问题有用, 像是开发前期, 若是QA被邀请去做review时, 或许QA没有坚强的开发能力, 但是若是他能就上述角度来检视设计或需求, 相信能一定能提到很大的帮助.
因此, 不要再拿debug log再当借口了, 很多方法都能帮你解决问题.