- 軟件開發的201個原則
- (美)艾倫·M.戴維斯
- 1188字
- 2022-05-09 17:56:35
給中國軟件工程師的寄語
致我的兄弟姐妹們:
和你們一樣,我的職業生涯始于軟件工程師,那是 1975 年,將近半個世紀之前。我認為我們在時間和國家方面的差異相當微不足道,讓我解釋一下原因。
■ 對比1975年與今天:是的,我們使用的語言和工具已經進化;是的,我們開發的應用程序變得更加復雜。但是,我們所執行的關鍵任務基本沒有變化。無論我們是忙于開發軟件給青少年進行娛樂,構建讓人們快樂與安全的控制系統,還是構建使世界變得越來越小的通信系統,我們今天都肩負著與 50 年前相同的責任,即,使用我們擁有的最好的知識來構建我們有能力構建的最安全、最可靠、最穩定的系統。
■ 對比國家:美國政客們希望我們相信中國和美國在某種程度上有所不同,我不同意。我相信所有的政府結構都是可以接受的,它們的有效性僅由負責人的領導能力所決定。我不認同某些國家僅因其政府類型看起來不同而可能成為敵人的觀點。就我個人而言,我去過 95 個國家,從那些經歷中我學到的是,各地的人們都是一樣的。所有的父母都希望他們的孩子有最好的機會,人人都愛自己的國家。雖然與中國和美國沒有特別的關系,但我個人的看法是,擁有最少的人最“富有”,擁有最多的人往往最“貧窮”。而被美國經濟學家稱作“生活在貧困線以下”的人們尤其“富有”。就我來說,生活在這種條件下的人們是最先邀請我去他們家并為我提供食物和住所的。依鄙人愚見,他們的熱情和分享他們所擁有的少許東西的意愿,讓他們變得“富有”。
所以,我像和我的朋友、我的同齡人一樣與你交談。在你的職業生涯中不斷進步!努力工作,也要找時間玩樂!在美國,我們是“為工作而生活”,我猜想在中國也是一樣。當我住在西班牙時,我了解到他們是“為了生活而工作”。我從未學會這樣做,但我羨慕西班牙人的生活方式。我認為我們都應該為此努力。
當你做軟件架構設計或“拋出代碼”時,不要忽視真正重要的事情。那是什么呢?是你的正直,這是你對自己的看法。如果有人要求你做一些你知道是錯誤的事情,你有義務阻止它。構建軟件時會出現什么問題?這里有一些例子:
■ 同意一個你知道不可能的交付日期(只是為了滿足某人錯誤的承諾)。
■ 交付你知道尚未經過徹底測試的軟件。
■ 構建不遵守那些可能造成嚴重后果的原則的軟件。
■ 某些系統違背你的道德或倫理信仰,而你貢獻的軟件將在其中發揮作用。
做這些事情的懲罰可能很嚴重,但回報是巨大的:知道你做了正確的事,晚上就能睡個好覺。我因堅持這些原則只被解雇過一次。當時我是一個技術中心的主任,被我的副總裁上司解雇了。這在當時是非常痛苦的。但是現在回想起來,我對堅持我認為正確的事情感到非常高興。我不是提倡你們所有人都被解雇,我是提倡你對正在做的工作有一個廣闊的視野。著眼大局,看看你的貢獻如何體現,并忠于自己。軟件工程是一個美妙的職業,它使你能夠進入數百個以軟件為支柱的專業領域。正如斯波克所說,“生生不息,繁榮昌盛。”
好好享受!
Alan M.Davis
2021年9月