给中国软件工程师的寄语
致我的兄弟姐妹们:
和你们一样,我的职业生涯始于软件工程师,那是 1975 年,将近半个世纪之前。我认为我们在时间和国家方面的差异相当微不足道,让我解释一下原因。
■ 对比1975年与今天:是的,我们使用的语言和工具已经进化;是的,我们开发的应用程序变得更加复杂。但是,我们所执行的关键任务基本没有变化。无论我们是忙于开发软件给青少年进行娱乐,构建让人们快乐与安全的控制系统,还是构建使世界变得越来越小的通信系统,我们今天都肩负着与 50 年前相同的责任,即,使用我们拥有的最好的知识来构建我们有能力构建的最安全、最可靠、最稳定的系统。
■ 对比国家:美国政客们希望我们相信中国和美国在某种程度上有所不同,我不同意。我相信所有的政府结构都是可以接受的,它们的有效性仅由负责人的领导能力所决定。我不认同某些国家仅因其政府类型看起来不同而可能成为敌人的观点。就我个人而言,我去过 95 个国家,从那些经历中我学到的是,各地的人们都是一样的。所有的父母都希望他们的孩子有最好的机会,人人都爱自己的国家。虽然与中国和美国没有特别的关系,但我个人的看法是,拥有最少的人最“富有”,拥有最多的人往往最“贫穷”。而被美国经济学家称作“生活在贫困线以下”的人们尤其“富有”。就我来说,生活在这种条件下的人们是最先邀请我去他们家并为我提供食物和住所的。依鄙人愚见,他们的热情和分享他们所拥有的少许东西的意愿,让他们变得“富有”。
所以,我像和我的朋友、我的同龄人一样与你交谈。在你的职业生涯中不断进步!努力工作,也要找时间玩乐!在美国,我们是“为工作而生活”,我猜想在中国也是一样。当我住在西班牙时,我了解到他们是“为了生活而工作”。我从未学会这样做,但我羡慕西班牙人的生活方式。我认为我们都应该为此努力。
当你做软件架构设计或“抛出代码”时,不要忽视真正重要的事情。那是什么呢?是你的正直,这是你对自己的看法。如果有人要求你做一些你知道是错误的事情,你有义务阻止它。构建软件时会出现什么问题?这里有一些例子:
■ 同意一个你知道不可能的交付日期(只是为了满足某人错误的承诺)。
■ 交付你知道尚未经过彻底测试的软件。
■ 构建不遵守那些可能造成严重后果的原则的软件。
■ 某些系统违背你的道德或伦理信仰,而你贡献的软件将在其中发挥作用。
做这些事情的惩罚可能很严重,但回报是巨大的:知道你做了正确的事,晚上就能睡个好觉。我因坚持这些原则只被解雇过一次。当时我是一个技术中心的主任,被我的副总裁上司解雇了。这在当时是非常痛苦的。但是现在回想起来,我对坚持我认为正确的事情感到非常高兴。我不是提倡你们所有人都被解雇,我是提倡你对正在做的工作有一个广阔的视野。着眼大局,看看你的贡献如何体现,并忠于自己。软件工程是一个美妙的职业,它使你能够进入数百个以软件为支柱的专业领域。正如斯波克所说,“生生不息,繁荣昌盛。”
好好享受!
Alan M.Davis
2021年9月