译注:开发人员如何从无休止的需求、项目进度中摆脱烦躁的心态,这是每个人都值得思考的话题。无意间看见了 这篇文章 ,恐于太长遂将其精简翻译,错误之处难免欢迎指正。

同时如果你有有关程序员修身养性的观点和心得,欢迎说说你的看法。

-- Split --

其实每个程序员或多或少都会有个毛病,就是具有某种有强烈的「优越感」。而这种「优越感」 有可能成为激励自身不断发展的动力,同时也有可能成为其职场中的绊脚石。

程序员的这种心态,源自自身掌握的技术、以及多年积累的经验。正如上面所言,这种心态 能使其一切都力求完美、同时准确按照自己的思路行事,能使其技术不断的提升。而另一方 面,如果将这种态度套用给身边其他的人(包括陌生人、同事、朋友甚至家庭),则会发现 他的生活将会如履薄冰 -- 他们只会看见完美的一面而忽略了更多更需要关注的事物。

总而言之,越早发现并解决这一问题,越对自身有利。套用 GeraldWeinberg 在 《计算机编程心理学》 中的一段话

这种想法是程序员必须解决的,他们对待自己的代码犹如对待自己身体的
一部分,因此他们拒绝所有的负面评价。相反,它们(指代这种心态)应
该及时的引导到正途,使其发挥真正的效用。人非圣贤,这不仅仅是心态
更是精神上的境界,并非所有人都能达到,但仍旧值得去尝试。

症状

那么,你如何得知这种「优越感」正在伤害到自己?除了应付那些没完没了的催促项目进度的 电话,以及给同事擦屁股的优化工程,其它的现象并非显而易见。

其实就我个人而言,时常也会自我责备,这就能窥出事态的严重。例如一方面你对项目疲于 奔命,而同时却忽略身边的人对你表达的看法(该死,这个时候我应该放下手头的工作听他 们说完的)。或者你「假装」静下心来听取他们的意见,但不就繁杂的工作却让你左耳进右耳 出。

其他的些症状

这不仅仅是你个人的事情,编程以及项目开发实际上是团队活动。了解到这些,你将会意识到 你的心态将会直接影响到你的同事。

事实就是这样,当我对您的代码提出写意见甚至批评时,你应该听、并且认
真的听,这样你才能理解我的看法。

有可能最糟糕的情况就是,即便早已经收到其他同事的提醒,当事人已经陷入此泥潭无法自拔。

准则

让我们回到文章的题目本身,正如上面的例子中看到,「谦逊编程」不是编程技术本身,而是 种态度,但它的确会比你掌握的某种技术要有用的得多。

行为准则的确能改变人的心态,下面是些不成文的建议,或许你可以尝试下

更多的,可以参考 Tech Republic 中的 「谦逊编程」十条诫律

重点是及早的发现你已经犯下的错误,当代码投入使用以后,改动起来就会非常的困难。

记住始终要 Review 你的代码,即便你已经认为无懈可击,经验证明总能发现些错误。

如果你坚持不耻下问,你的同伴总能分享你更多。

当你确定要更改别人的代码时,必须加上良好的修改记录,这也是出于对他人的种尊重。

记住当他们成长起来后,能帮你解决的问题会比你想象中的还要多。

怀着开放的心态对待变化,对于各种需求、平台甚至开发工具的变更,应该是迅速适应而不是牢骚满腹 -- 这样解决不了问题。

权威源自学识、尊重源自权威。

最终你的一些观点将会被推翻,即便你有能力证明你的观点是正确的,请不要重复的争辩。帮助其他人意识到这点的最好工具,就是你的理解以及时间。

不要在昏暗的办公室里独自喝着可乐敲着代码。当与外界隔绝,离开同伴的视线,也就说明你离开了一个开放、合作的环境。

要知道你的意见可以影响到代码也可以影响到其人,如果你想尝试下如何打击别人的自信并造成冲突,那么尝试下吧。