在所有弱点中,最大的弱点就是害怕暴露弱点。
——J.B.Bossuet,Politics from Holy Writ,1709
依据你的职业发展、你的项目和你每天的工作,为你自己和你的行为负责这样一种观念,是注重实效的哲学的一块基石。注重实效的程序员对他或她自己的职业生涯负责,并且不害怕承认无知或错误。这肯定并非是编程最令人愉悦的方面,但它肯定会发生——即使是在最好的项目中。
尽管有彻底的测试、良好的文档以及足够的自动化,事情还是会出错。交付晚了,出现了未曾预见到的技术问题。
发生这样的事情,我们要设法尽可能职业地处理它们。这意味着坦诚和坦率。我们可以为我们的能力自豪,但对于我们的缺点——还有我们的无知和我们的错误——我们必须诚实。
负责
责任是你主动负担的东西。你承担确保某件正确完成,但你不一定能直接控制事情的每一个方面。除了尽你所能以外,你必须分析风险是否超出了你的控制。对于不可能做到的事情或是风险太大的事情,你有权不去为之负责。你必须基于你自己的道德准则和判断做出决定。
如果你确定同意要为某个结果负责,你就应切实负起责任。当你犯错(就如同我们所有人都会犯错一样)、或是判断失误时,诚实的承认它,并设法给出各种选择。不要责备别人或别的东西,或是拼凑借口。不要把所有问题都归咎与供应商、编程语言、管理部门、或是你的同事。也许他(它)们全体或是某几方在其中扮演了某种角色,但你可以选择提供解决方案,而非寻找借口。
如果存在供应商不能按时供货的风险,你应该预先制定一份应急计划。如果磁盘垮了——带走了你的所有源码——而你没有做备份,那是你的错。告诉你的老板“我的源码让猫给吃了”也无法改变这一点。
Provide Options,Don't Make Lame Excuses
提供各种选择,不要找憋足的借口
在你走任何人、告诉他们为何某事情做不到、为何耽搁、为何出问题之前,先停下来,听一听你心里的声音。与你的显示器上的橡皮鸭交谈,或是与猫交谈。你的辩解听起来合理,还是愚蠢?在你老板听来又是怎样?
在你的头脑里把谈话预演一遍。其他人可能会说什么?他们是否会问:“你试了这个吗?.....”,或是“你没有考虑那个吗?”你将会怎样回答?在你去告诉他们坏消息之前,是否还有其他你可以再试一试的办法?有时,你其实知道他们会说什么,所以还是不要给他们添麻烦吧。
要提供各种选择,而不是找借口。不要说事情做不到;要说明能够做什么来挽回局面。必须把代码扔掉?给他们讲授重构的价值。你要花时间建立原型,以确定最好的继续前进的方式?你要引人更好的测试或自动化,以防止问题再度发生?又或许你需要额外的资源。不要害怕提出要求,也不要害怕承认你需要帮助。
在你大声说出他们之前,先设法把蹩脚的借口清除出去。如果你必须说,就先对你的猫说。反正,如果小蒂德尔斯(Tiddles,BBC在1969~1974年播出的喜剧节目“Monty Python‘s Flying Circus”中的著名小母猫)要承受指责......
网友评论