被通知一個月后離職,我改了重要項目里的代碼注釋
來源:infoQ
整理|燕珊、核子可樂
https://mp.weixin.qq.com/s/0ZkkqNfR6hfUjV0zsTY8JA
當沖突爆發(fā)且到了必須讓程序員離開時……那讓他們“及時離開”吧。
假如你已經(jīng)對某個開發(fā)人員下發(fā)解雇通知,你還會讓他深度參與重要項目甚至把項目做完再走嗎?放在今天,這個答案往往是顯而易見的:不會。但如果是幾十年前,那就未必了。
# 來自程序員的“報復”
近日 The Register 上有個熱門帖子正好討論了類似的話題。帖子背景是這樣的:一位叫做“Thomas”的讀者,用自己的親身經(jīng)歷帶大家夢回 70 年代。
Thomas 當時在一家咨詢公司供職,客戶則是某國家醫(yī)療保健服務商。那時候一片歲月靜好,如今這些“笨重”的工具庫還遠未出現(xiàn)。當時的開發(fā)思路非常明確:節(jié)約資源、優(yōu)化代碼。
Thomas 回憶道,當時所有代碼都是用匯編語言寫的,對于那些從未深入了解過的人來說,這就像是機器代碼?!拔覀冞€得盡量為代碼瘦身,這里頭也涉及不少技巧。但現(xiàn)在大家已經(jīng)不在乎了,充裕的資源讓節(jié)約成了老古董?!?/span>
那時候 Thomas 才剛剛出道,從被他稱為“二貨”的前任手中接下來項目。Thomas 坦言,這位二貨“其實很聰明,但又特別招人煩?!钡吹贸鰜恚@并不是二貨同學的本意,而是項目經(jīng)理們不理解真實工作量、又把項目周期壓得太緊。
盡管困難重重,二貨同學還是堅持了下來。為了完成代碼編寫,他每周工作 100 個小時以上。Thomas 還記得,“他真的很想多加班、早點做完,但管理層卻認為他只是想騙加班費?!?/span>
于是乎,二貨跟管理層之間爆發(fā)了激烈沖突,最終他被解雇、上頭還勒令他用一個月時間把項目做完。
一般人在這種狀況下肯定要在項目里埋雷,但二貨同學的報復方法卻是另辟蹊徑。你覺得 C 語言不好理解?那是還沒跟匯編語言比較。要想理解匯編代碼,良好的注釋絕對必不可少。
所以二貨更改了代碼中的所有注釋。乍看上去,這些注釋還挺像那么回事,但實際內(nèi)容跟代碼功能已經(jīng)沒有任何關(guān)系了。
“接手工作之后,我的第一項任務就是為項目添加更多功能。這事當然做不成,因為我根本沒法通過注釋理解現(xiàn)有代碼的作用?!鼻闆r被報了上去,但管理層壓根不以為意,于是 Thomas 擔心自己可能也會被解雇。為了保住工作,他又對代碼進行了多次復核,結(jié)論是:注釋完全是在胡說八道,沒人能搞清這些代碼到底在干什么。
“所以我最后只能刪掉所有注釋,再把二貨同學的‘遺產(chǎn)’黑盒化。一年之后,我離開了項目組,但這些黑盒代碼還是繼續(xù)運行了五年,直到另外一家咨詢公司全盤接管?!?/span>
但即使到今天,這些代碼可能還是在某個隱秘的角落保持著運行。畢竟,黑盒代碼就跟蟑螂一樣頑強。
# 別瞎冒險
顯而易見,Thomas 這個故事告訴我們的是,如果你想解雇某人,就該馬上請他離開且別再碰項目了。
一名叫 Dave K 的網(wǎng)友對此深以為然,他認為,只要決定解雇任何重要人物,就要馬上撤銷這個人的訪問權(quán)限,最好能讓其馬上離開。這相當于是盡職工作,對勞資雙方都是保護。
Dave K 舉例他曾面臨過的類似狀況——但被解雇的不是他,而是其頂頭上司。人力通知說公司已經(jīng)確定要被收購,新的母公司認為沒必要保留兩位 IT 主管。于是他當場就禁用了領(lǐng)導的賬戶、更改了所有共享密碼(管理員賬戶密碼),確保上司再也沒法訪問任何系統(tǒng)?!奥犉饋硗埲痰?,但這就是職業(yè)性?!薄还苣愣嘈湃螌Ψ?,只要確定離職了、這些權(quán)限就必須收回。
的確,另一角度來看,這確實未嘗不是對離職者的保護。網(wǎng)友 yetanotheraoc 表示,“如果有人在我們被解雇后不久破壞了系統(tǒng),那已經(jīng)交出所有權(quán)限的我們至少不會成為被懷疑的對象、自然也不會成為無辜的替罪羊?!?/span>
“別瞎冒險”尤其是指要避免一些比較極端的人和情況,需果斷下決定。有網(wǎng)友分享說,曾接觸過那種技術(shù)很強、但完全讓人無法與之共事的家伙——他不給代碼寫注釋、也不參加例會,因為他覺得自己很聰明,認定這些事情都是浪費時間。他還放出豪言,“如果他們蠢到理解不了我寫的東西,那也不是我的問題。”最后,管理層做了早就該做的決定。那天是周五,例會對這位自負的人進行了 5 分鐘的簡短批判,會上還出現(xiàn)了讓該網(wǎng)友至今記憶猶新的金句,“你一直覺得沒有你我們就做不成事,但從下周一開始,我們打算試試?!?/span>
再比如有網(wǎng)友分享了個報復的例子,公司 CEO 在某次會上當著大家的面,解雇了一位態(tài)度傲慢的工程師。這人真的不討喜,所以看著他離開大家并沒什么感覺。然而,在動用了如此激烈的裁撤手段之后,公司居然還讓他在辦公桌前過完這一整天。當天下班之后,辦公樓門禁癱瘓、賬戶被鎖定,所有主要服務器都被重啟、內(nèi)容全部擦除。大家?guī)缀醵贾朗撬傻?,但因為定時腳本已在重啟后被擦除,所以人們找不到證據(jù)。
# 摸魚度過最后的在職時光
從裁員方的立場,別瞎冒險、當斷則斷是要義。而從離職者的角度,何嘗不是如此。但若“被迫”必須得多待一段時間,心安理得地“摸魚”未嘗不是一個解決方案。
網(wǎng)友 Ken G 回憶道,在 1999 年 10 月下旬他接到部門發(fā)出的通告,第二年 1 月他就要離職了。其實他之前負責的項目根本不受千年蟲問題的影響,項目文檔已經(jīng)更新完畢、交接工作也相當順利,但項目經(jīng)理還是希望他能“小心謹慎”。問題是,有什么可小心的?于是他只能嘴上回答“是是是”,另一邊該休年假休年假。
休了 5 周年假之后,到了第二年的 1 月 4 號,Ken G 回到辦公室。他日常就跟同事們聊天、泡茶,隨便上上網(wǎng)。這樣的日子他重復了一個月直到離職。
接著 Ken G 的回憶,也有留言給出了類似的經(jīng)歷,名為 DS999 的網(wǎng)友說:我被迫在企業(yè)里度過了 3 個月的“垃圾時間”,之前我以外包商的身份負責 SAP 項目中的 Unix 與存儲工作,合同應該在當年 5 月就結(jié)束了。但因為那位全職員工一直在忙著無薪加班和夜間維護,公司決定把他升任成技術(shù)顧問,薪水一下漲了 3 倍。之前他已經(jīng)幫工程部門的 Unix 團隊培訓過幾位抽調(diào)過來的新人,但他們才剛剛接觸項目、對很多問題還不熟悉。
“于是乎,我就成了唯一一位了解整套系統(tǒng)的人,公司意識到必須把外包合同再延長幾個月。為了幫甲方度過難關(guān),我接下了這份時薪 30 美元、為期三個月的延期職位。但接下來的情況屬實出人意料:兩位全職新人找上我,希望我別碰項目里的任何東西,只需要回答他們的問題。因為在他們看來,在我離開之后,所有工作就只能由他們接管了。所以他們寧愿問題出在當下、也別出在交接之后,免得讓他們背鍋。”所以,DS999 倒是成了真正意義上的顧問。整個夏天,他都在上網(wǎng)、發(fā)呆、鼓搗 Linux。剛開始他們每天還會提出幾個問題,后來連著一個半月都沒找過他?!斑@錢真的好賺,懷念?!?/span>
具體情況具體對待。也許,報復或不報復并不是關(guān)鍵。Steve Herseyren 認為 Thomas 故事里的深層寓意是這樣的:“既然你都說了‘項目經(jīng)理們不理解真實工作量、又把項目周期壓得太緊’,那這家公司就是妥妥的垃圾場,任何自尊自愛的人都應該盡快離開、躲得越遠越好。你的技能、時間和自我價值真的很寶貴,別再給雇主虐待你的機會了。趕緊跑,找個更靠譜的去處。當然,如果你特別需要這筆工資,那就明確規(guī)劃一下還要忍耐多久、然后早點找機會離開?!?/span>
參考鏈接:
https://www.theregister.com/2022/04/04/who_me/
https://forums.theregister.com/forum/all/2022/04/04/who_me/
-End-
最近有一些小伙伴,讓我?guī)兔φ乙恍?nbsp;面試題 資料,于是我翻遍了收藏的 5T 資料后,匯總整理出來,可以說是程序員面試必備!所有資料都整理到網(wǎng)盤了,歡迎下載!

面試題】即可獲取
