在所有的弱点中,最大的弱点就是害怕暴露弱点.
----J.B.Bossuet, Politics form Holy Writ, 1709
问题
即使在最好的项目中, 尽管我们每个人都是设计大师, 编程大师, 尽管有彻底的测试, 良好的文档及足够的自动化, 事情却不一定会朝着完美的方向发展. 一个BUG,很多BUG, 项目交付延迟,出现未曾预见到的技术问题.这些都是编程令人郁闷的方面.
发生这样的事情,我们应该怎么做?
担负责任之前
责任是自己主动担负的东西. 担负了,就意味着承诺确保某件事情正确的完成.但我们去不一定能直接控制事情的每一个方面.除了尽自己所能, 还必须分析风险是否超出了自己的控制,对于不可能做到的事情或是风险太大的事情, 我们必须基于自己的道德准则和判断来做出决定--我们是否为之负责.
承担责任,需要勇气和能力, 也需要诚实和坦率
或许我们的能力很强,但正所谓人无完人,我们总有会缺点.我们也会因为自己的无知而犯错误.
如果我们确实同意为某个结果负责, 就切实负起责任.当自己犯错误时,或者判断失误时, 我们应该做的,是诚实坦率地承认它.而不要责备别人或别的东西, 拼凑借口.错误已经产生,找借口责备别人,并不能解决问题.相反,却增加了时间成本--发牢骚的时间,找借口的时间,向老板解释的时间,老板盘问的时间...同时也破坏了项目各方的和谐度.在走向任何人,告诉他们为何某事做不到,为何耽搁,为何问题之前,先停下来问问自己:自己的辩解听起来合理还是愚蠢?老板听来又是怎样?他是否会问:"你试了这个吗?",或是"你没考虑那个吗"?我们应该怎么回答?因此,抛弃借口,去分析问题吧.
提供各种选择,而不是找借口
不要说事情做不到,要说明能够做什么来挽回局面.必须把代码扔掉?那重构吧.要花时间建立原型,以确定最好的继续前进的方式?抑或要引入更好的测试或自动化,以防止问题再度发生?或许需要额外的资源?不要害怕提出要求,也不要害怕承认自己需要帮助.
------读《程序员修炼之道》--我的代码让猫给吃了