無標題文檔

谦逊编程(翻译整理)

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

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

-- Split --

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

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

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

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

症状

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

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

其他的些症状

  • 如上面所说的,不会妥善处理批评
  • 不放心同伴的代码,经常性地对他们进行代码审查(Review)
  • 报复性的编写大量充斥着错误的代码
  • 个人的消极心态,对自身和团队造成不利的影响
  • 必须要求进行测试,但出发点却是炫耀
  • 对事物的看法仅仅局限于个人或者本职位的角度

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

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

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

准则

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

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

  • 不要草率的宣布你的决定,在大多数情况下,你应该和你们的同事们讨论
  • 不要使用这些论调,这非常让人感到不适:「这是见过的最糟糕的代码了」,换之你可以这样说,「我有个更好的解决方案,要不看看?」
  • 不要轻易认为他们没有考虑到你想的方式,即便很不幸是这样,应该善意的提醒。例如「你觉得我这个看法怎么样...」
  • 不要无理由的批评你认为很弱智的现象,例如「我觉得 DBA 脑门子被夹了,这个字段竟然使用 INT 型」

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

  • 理解和接受你将犯下的「错误」。

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

  • 你的代码不能代表你的人。

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

  • 不管怎么样,有些「奇技淫巧」总能派上用场,而可能这些技巧别人知道的比你更多。

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

  • 不要在完全没有沟通的情况下,自作多情的进行代码重构。

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

  • 对待那些新手要保持充分的尊重、细心以及耐心。

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

  • 唯一不变的是变化。

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

  • 真正的权威来自学识,而不是立场。

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

  • 优雅的接受失败。

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

  • 不要成为「办公室男」。

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

  • 批判代码而不是编写它的人。

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

我们的繁体用户怎么办?

今天遇到的这件事情让我感到无奈,甚至是羞辱。

作为淘宝的员工,也偶尔在淘宝处理我的闲置物品,这种既为开发人员又是用户的双重身份让人颇具有玩味。

卖了件闲置物品给在香港的同胞,什么都聊好的情况下,照常打开「我的淘宝」查看发货信息,傻眼了。

https://friable.rocks/_/2009_11_05/027227b188aa.jpg

这到好,连码都不用打了,买家的收货信息基本属于「火星文」,手动更换了页面的编码信息,问题还是依旧。回头再联系此买家,发现那家伙下线了,看来只能周一再沟通了。

正如本文开头所说的,我甚至感到羞辱。

羞的是我们众多的开发、测试人员历练了每个产品的每项功能,连基本的字符编码都没有处理好。

辱的是在淘宝那么长时间、经历了那么多的项目,发现我们竟然忽略了繁体版的用户。

回想起来,繁体中文用户使用淘宝其实很不容易,首先他们使用支付宝必须要有张大陆的人民币结算卡,然后他们的系统必须安装简体中文的语言包。

还有阿里旺旺,从 我们的下载页面 中可以得知有繁体版,但让人困扰的是繁体版与简体版的下载链接是同样的,我不知道这位用户下载的文件是否和我的一致。

周一我必须要做两件事情,一件就是询问此买家的收货地址,并说明延迟发货的原因;另外件,就是向我们的开发人员提个醒,我们需要更慎重的测试繁体版的功能。

无论怎么说,这种事情都不希望再次发生。这次卖给我们的香港同胞虽是偶然,但毕竟每天是他们在使用繁体中文。

连基本的信息传递都无法完成,那么所谓的用户体验更是无从谈起。

-- Split --

感谢各位以及 Solidot 等的关注,但我明显感到了来自不同方向的压力。评论中的很多朋友都指出了目前线上的诸多问题,我也逐一的汇报给了个产品线的负责人,但这里显然不是汇报 Bug 的地方。

所以,请允许我冒昧得将此篇文章的评论关闭,并谢绝任何形式的转载阿里的信条之一就是「客户第一」 ,因此我们有理由相信这一情况会逐渐改善的。

那些注定的软件

最近款某来头的软件 ,似乎又撩动了互联网的神经。不想直接说我的看法,只想举两个本人亲身经历的事情。

高中时由于老师的提举,管理学校的计算机机房。某日,收到通知要全面安装「网络爸爸」这款软件(听着名字就知道干嘛用的)。当时连夜将几十台机子装上了这款软件,印象中这款软件安装非常方便 -- 甚至没有让你选择安装路径。

随后就是噩梦的开始,类似网页打不开等诸多的问题累坏了我们这帮「免费的网管」。最难以接受的就是每次启动系统时,其都会向服务器请求更新,而期间会造成机子假死。很多不明真相、而且耐不住性子的同学,顺手就直接按电源键了。

最后,我们采取的办法就是直接卸载「网络爸爸」。为了躲避老师的检查,自己用 VB 写了个「假的」系统图标。

大学时打暑期工,去帮电信局接宽带。当时,上级明令要求安装「星空极速」软件拨号上网。

开始时,我非常的「敬业」给每台机子都安装上。随着安装量的上升,问题也不断的凸显出来。陆续有用户反映弹出广告、系统拖慢等问题。老到的师哥告诉我解决办法 -- 和他们说是电脑系统的问题,让他们找装机商去。

直到某天,我自己终于厌倦每天安装「新空极速」、应付用户的投诉,这些重复劳动。突然我意识到,这软件对于我而言没有任何的好处:老大看不到,他们只拿装机的指标、那软件太大安装非常的慢,等待很痛苦很无意义。

于是,直接使用 XP 自带的 ADSL 拨号软件,几步搞定。至此以后,没有收到任何的投诉(当时最后我才知道,投诉率还和工钱挂钩),同时由于安装量上升,我比上面提到的那师哥还多拿了餐饭钱。

-- Split --

是母鸡都指望自己下个蛋,只要有这些母鸡在,就别指望上述软件的消失。而愚蠢、懒惰的生物迟早会被淘汰,这是我们所共知的自然规律,同时这一规律同样适用于其他领域。

所以,对于那些所谓软件(工具)的最后的下场,想必各位也心中自知了吧。

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章