在开发过程中出现未曾预料的技术问题,交付晚了等情况,没关系,这些是无法避免的。发生了,我们就要尽可能想方设法地职业的去处理它们。程序员这个职业需要诚实和坦率,要敢于承认自己的错误。
然后就是要对担负的东西负责,如果某些东西真的超出了你的控制范围可以不处理,需要尽早提出这个不可控的点。自己职责所在的事情就需要为其结果负责。当结果不达标,比如磁盘垮了,但你却没有备份代码,那这就是你的错。不要为出错的情况找借口,想老板说"我的源码让猫给吃了”,对问题没有任何帮助,而要向他们提供可行的解决方案,做什么能够最大的挽回局面。
避免破窗效应 软件开发过程中,有一种类似于热力学定律的“熵”,无序,而且倾向于最大化。尤其是在大型项目上,功能多,交互频繁,更加不可控。假设有一些“破窗”(低劣的设计,错误决策,或糟糕的代码)长时间没有修复,那整个项目就会迅速恶化。修订好轻微破了点的窗户,哪怕是用木板钉起来,或者是挂个名片说明,比如注释掉,或者说明TBD,都可以防止进一步的被破坏。这也是较省事的, 说明还处在可控情势,越往后面就越不可控,情势就急转直下,到最后“熵”赢得胜利,项目就失败了。 有的时候,你知道要做什么,以及怎样去做。但是中间会遇到很多阻力,要么这个不配合,那个不愿意,要么这个待批准,那个要研究。这个时候就要拿出石头来了,先拿出一些合理的东西,做好它,拿给他们看,让他们大吃一惊。然后说“要是我们增加…可能会更好。”然后就等着他们来找你,给你增加原本你想要的东西了。因为参与正在发生的成功要更容易,让他们瞥见未来,就能让他们聚集在周围了。