软件开发的成败更多的是在于人,而不是技术。当从大学毕业时,我以为,只有精通了各种技术才能成为一名伟大的程序员,以为人件管理技术是经理们的专属领地。但事实却给我好好的上了一堂课。
当一个人在完成一件体力工作时,你很容易评估他是否在努力的工作。你可以观察他的物理动作,看他流了多少汗水。你还可以看到他工作的成功:砖墙在砌高,地面上挖的坑在变大。
我们的工作经历多样而广泛,从财富50强企业到硅谷创业公司,从全新到代码库到30年的老古董。下面的这些特征,不仅是对我们,我想对广大的软件开发者也都代表了一个非常理想的工作环境。
“我需要”,“小问题”,“立刻”。你激怒我了。你的每个词都激怒我了。这种情绪很难翻译成英语表达,但在荷兰,有些人就是用这种方式要求你。
宗罪(Seven deadly sins),13世纪道明会神父圣多玛斯·阿奎纳列举出各种恶行的表现。这些恶行最初是由希腊神学修道士庞义伐草撰出8种损害个人灵性的恶行,分别是贪食、色欲、贪婪、暴怒、懒惰、伤悲、自负及傲慢。
这是一篇痛斥,我真的很生气。我不是一个社交型的生物。我不想整天时间或大部分时间、甚至一小部分时间坐在另外一个程序员边上编程——即使是经过测量发现这样会提高我的开发效率。就是因为这不是我喜欢的工作方式。它会毁了我对生活的感觉,毁了我的工作环境。
我不理解为什么人们会对面向对象编程和函数式编程做无休无止的争论。就好象这类问题已经超越了人类智力极限,所以你可以几个世纪的这样讨论下去。经过这些年对编程语言的研究,我已经清楚的看到了问题的答案
问“如果两个程序都这样做会怎样?”也是一种非常有用的甄别一个功能特征或设计想法是否合理的好方法。配合“设想如果可以这样”,它们能成为一个漂亮的组合拳。下面是几个例子:
我最近看到Reddit上的一个帖子。说的是Reddit用户”chinan”被迫去维护一个最初外包给印度PHP程序员的项目。他崩溃了。这个有趣的帖子被活跃的Riddit浏览者塞满了各种搞笑的言语,但大部分他们都是没有跟印度程序员打过交道。
你是一个多么独特的角色呀,几乎每个公司都要雇用你这样的人。可在不管大大小小的项目中,你与其说是帮忙,不如说是添乱。我坚信,大部分的项目经理都可以用一个技术首领来替代,我是严肃的,难道一群聪明的人真的需要另外一个人来替他们“管理”项目吗?
下面是一些迄今为止最好的关于编程的名言名句。阅读它们时相信你会有几分愉悦,你可以在一些会谈场合引用它们,一定能为你的团队吸引到不少的好程序员。
“这代码真垃圾”,当我们翻查一些代码寻找一个特别讨厌的bug时,同事大声这样说。“是吗”,我回答到。像这样的谴责,以及其它一些类似的话,在办公室里经常会听到,而且频率在增加。而最令人不安的是,这代码并不是特别的糟糕。我这话是什么意思?
守门员要守住bug,并不意味着他们是唯一为bug溜入负责的人。除了守门员外,我们还应该有后卫,中场和前锋,他们是项目团队的组成部分。
编程界向来是叛逆主义者的天堂。他们的英雄们,比如林纳斯-托瓦兹(Linus Torvalds),才华横溢,刚愎自用,粗鲁无礼。他们说他们想说的,穿他们想穿的,对着电脑大嚷大叫。