4.排除万难,奋勇前进

“如果你发现其他人的代码有问题,只要你自己心里知道就行了。毕竟,你不想伤害他们,或者惹来麻烦。如果他是你的老板,更好格外谨慎,只要按照他的命令执行就可以了。”

有一则寓言叫“谁去给猫系铃铛”(who Will Bell the Cat)。老鼠们打算在猫的脖子上系一个铃铛,这样猫巡逻靠近的时候,就能预先得到警报。每只老鼠都点头,热为这是一个绝妙的想法。这是一只年老的老鼠问道:“那么,谁愿意挺身而出去系铃铛呢?”毫无疑问,没有一只老鼠站出来。当然,计划也就这样泡汤了。

有时,绝妙的计划会因为勇气不足而最终失败。尽管前方很危险不管是真鱼雷或者只是一个比喻你必须有勇气向钱冲锋,做你认为对的事情、加入要你修复其他人编写的代码,而代码很难理解也不好使用。你是应该继续修复工作,保留这些脏乱的代码呢,还是应该告诉你的老板,这些代码太烂了,应该通通扔掉呢?

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

也许你会跳起来告诉周围的人,那些代码是多么的糟糕,但那只是抱怨和发泄,并不能解决问题。相反,你应该重写这些代码,并比较重写前后的优缺点。动手证明(不要只是嚷嚷)最有效的方式,是把糟糕的代码放到一边,立刻重写。列出重写的理由,会有助于你的老板(以及同事)认清当前形势,帮助他们得到正确的解决方案。

在假定你在处理一个特定的组件。突然,你发现完全弄错了,你需要推翻重来。当然,你也会很担心向团队其他成员说明这个问题,以争取跟多的时间和帮助。

当发现问题时, 不要试图掩盖这些问题。而要有勇气站起来, 说:“我现在知道了,我过去使用的方法不对。 我想到了一些方法, 可以解决这个问题 如果你有更好的想法,我也很乐意听一听但可能会花多些时间。”你已经把所有的问题的负面情绪抛诸脑后,你的意图很清楚,就是寻找解决方案。既然你提出大家一起努力解决问题,那就你不回有任何争辩的余地。这样会促进大家去解决问题。也许,他们就会主动走进,提供帮助。更重要的是,这显示出了你的真诚和勇气,同时你也赢得了他们的信任。

阅读 ‧ 电子书库

你深知怎样做才是正确的,或者至少知道目前的做法是错误的。要有勇气想其他的项目成员、老板、或者客户解释你的不同观点。当然,这并不容易。也许你会拖延项目的进度,冒犯项目经理,甚至惹恼投资人。但你都要不顾一切,向着正确的方向奋力前进。

美国南北战争时的海军将Dabid Farragut曾经说过一句名言:“别管他妈的鱼雷,Drayton上校,全速前进。”确实,前面埋伏着水雷(那时叫鱼雷),但是要突破防线,只有全速前进(事实上,Farragut 的原话往往被简化为:“别管他妈的鱼雷,全速前进!”)。

切身感受

勇气会让人觉得有点不自在,提前鼓足勇气更需要魄力。但有些时候,它是扫除障碍的唯一途径,否则问题就会进一步恶化下去。鼓起你的勇气,这能让你从恐惧中解脱出来。

平衡的艺术

? 如果你说天快要塌下来了,但其他团队成员都并不赞同。反思一下,也许你是正确的,但你没有解释清楚自己的理由。

? 如果你说天快要塌下来了但其他团队成员都不赞同。认真考虑一下,他们也许是对的。

? 如果设计或代码中出现了奇怪的问题,花时间去理解为代码会是这样的。如果你找到了解决的办法,但代码仍然另人费解,唯一的解决办法就是重构代码,让他可读性更强。如果你没有马上理解那段代码,不要轻易的否定和重写他们。那不是勇气,而是鲁莽。

? 当你勇敢站出来提问时,如果收到了缺乏背景知识的抉择者的抵制,你需要用他们能够听懂的话语表达。“更清晰的代码”是无法打动生意人的。节约资金、获取更好的投资回报,避免诉讼以及增加用户利益,会让论点更具说服力。

? 如果你在压力下要对代码质量做出妥协,你可以指出,作为一名开发者,你没有职权毁坏公司的资产(所有的代码)。