深耕軟件行業(yè)45年,這位「老前輩」在退休之際分享了他的職業(yè)感悟
近日,HackNews 上的一則帖子引發(fā)了眾多網(wǎng)友的熱議和共鳴。人們討論的焦點(diǎn),BTI360 公司的軟件工程師 Joel Goldberg 在去年 12 月臨退休之際,向自己的團(tuán)隊(duì)成員分享了他 45 年軟件編寫(xiě)生涯中的種種收獲和教訓(xùn)經(jīng)驗(yàn)。
具體地,他分享了關(guān)于知識(shí)學(xué)習(xí)、編寫(xiě)代碼、團(tuán)隊(duì)相處準(zhǔn)則、職業(yè)規(guī)劃等諸多方面的心得,相信會(huì)為廣大軟件行業(yè)從業(yè)者帶來(lái)一些啟發(fā)。
以下是 Joel Goldberg 的分享內(nèi)容:
回首過(guò)往在軟件行業(yè)的四十多年時(shí)間,變化之大令我震驚。我的職業(yè)生涯開(kāi)始時(shí)還在使用穿孔卡片,如今退休卻已身處云計(jì)算時(shí)代。雖然經(jīng)歷了種種變化,但幫助我度過(guò)整個(gè)職業(yè)生涯的很多原則卻始終沒(méi)有變過(guò),它們依然具有意義。在臨退休之際,我想與大家分享自己作為軟件工程師所領(lǐng)會(huì)到的一些感悟。
警惕知識(shí)「詛咒」
當(dāng)你知道某些事情的時(shí)候,則幾乎想象不到自己不清楚這些事情會(huì)是什么樣子。這就是知識(shí)「詛咒」,同時(shí)它也是無(wú)盡誤區(qū)和低效率的根源。那些能夠適應(yīng)復(fù)雜境況的聰明人更容易陷入這種「詛咒」。
如果你對(duì)知識(shí)「詛咒」不加防范,則有可能在所有形式的交流中持錯(cuò)誤立場(chǎng),包括寫(xiě)代碼。你所從事工作的專(zhuān)業(yè)性越強(qiáng),則越有可能以外行無(wú)法理解的方式進(jìn)行交流。所以,要與知識(shí)「詛咒」作抗?fàn)帯E斫饽愕氖鼙?,嘗試著想象一下第一次學(xué)習(xí)正在交流的事情是什么感覺(jué)。
六項(xiàng)基礎(chǔ)準(zhǔn)則
技術(shù)總是在變,但軟件開(kāi)發(fā)的一些基礎(chǔ)方法卻始終未變。以下是我認(rèn)為未來(lái)很長(zhǎng)一段時(shí)間都將保持不變的六項(xiàng)基礎(chǔ)準(zhǔn)則:
- 團(tuán)隊(duì)協(xié)作:好的團(tuán)隊(duì)構(gòu)建好的軟件,但不要認(rèn)為團(tuán)隊(duì)協(xié)作理所當(dāng)然,每個(gè)人都應(yīng)參與其中;
- 信任:團(tuán)隊(duì)間的信任能夠促進(jìn)發(fā)展,努力成為一個(gè)值得自己和他人信賴的人;
- 交流:真誠(chéng)主動(dòng)地交流,避免陷入知識(shí)「詛咒」;
- 尋求共識(shí):花費(fèi)時(shí)間帶領(lǐng)整個(gè)團(tuán)隊(duì)走上同一條「跑道」,有不同意見(jiàn)充分討論以找到最佳解決方案;
- 自動(dòng)化測(cè)試:經(jīng)過(guò)良好測(cè)試的代碼使得團(tuán)隊(duì)滿懷信心快速開(kāi)展下一步行動(dòng);
- 干凈、易于理解和可導(dǎo)航的代碼和設(shè)計(jì):要將接管自己代碼的繼任工程師當(dāng)成自己的客戶,確保他們?cè)陂喿x、維護(hù)和更新代碼時(shí)不會(huì)遇到任何麻煩。
簡(jiǎn)單法則
對(duì)抗復(fù)雜情況是一件永遠(yuǎn)不會(huì)結(jié)束的事情,所以解決方案要盡可能地簡(jiǎn)單。我們可以「不懷好意」地假設(shè)維護(hù)自己代碼的繼任者沒(méi)有你聰明。
當(dāng)沒(méi)有什么東西可以刪除,而不是沒(méi)有什么東西可以添加的時(shí)候,設(shè)計(jì)師才意識(shí)到自己達(dá)到了完美。-Antoine de Saint-Exupery
尋求理解為先
美國(guó)著名管理學(xué)大師 Stephen Covey 的 7 個(gè)習(xí)慣之一是:首先尋求理解,然后再被理解。這項(xiàng)準(zhǔn)則比任何其他建議更幫助了我成為好的聆聽(tīng)者和工作伙伴。如果你想要影響他人并與其高效地合作,則首先需要理解他們。在試圖讓他人明白自己的想法之前要積極主動(dòng)地聆聽(tīng)并理解他們的感受、想法和觀點(diǎn)。
小心被套牢
行業(yè)中總是會(huì)出現(xiàn)可能會(huì)變革軟件構(gòu)建方式的下一代高效產(chǎn)品,如計(jì)算機(jī)輔助軟件工程(CASE)工具、COTS、Peoplesoft 和 SAP 等企業(yè)資源規(guī)劃產(chǎn)品甚至是 Ruby 等。這些產(chǎn)品都聲稱(chēng),如果人們接受了它們的整體開(kāi)發(fā)理念,則會(huì)大幅度降低成本和時(shí)間。然而事實(shí)并不總是如人們預(yù)料那般順利,前期成本可能會(huì)很大,你受到的限制也依然很多?!副惶桌巍惯^(guò)去常常出現(xiàn)在供應(yīng)商層面,但現(xiàn)在框架層面也出現(xiàn)了這種情況。無(wú)論哪個(gè)層面,高昂的沉沒(méi)成本都意味著改變的壓力很大,新事物也并不總是更好的。
當(dāng)不適合某個(gè)角色時(shí)要勇于承認(rèn)并改變
在職業(yè)生涯的某些階段,你可能會(huì)發(fā)現(xiàn)自己并不適合某些角色。這種不適合并不是性格上的缺陷,而是一個(gè)你不應(yīng)忽視的問(wèn)題。解決這種困境的方法不止一種:你可以繼續(xù)提升自己或者改變角色。關(guān)鍵要有自知之明,要意識(shí)到自身處境并讓自己脫離這個(gè)不利于發(fā)展的角色。工作中不快樂(lè)對(duì)任何人都沒(méi)有好處。
當(dāng)我在通用汽車(chē)工作時(shí),企業(yè)文化是這樣的:如果你不想著管理更多人或者負(fù)責(zé)更大更復(fù)雜的項(xiàng)目,那么你就是失敗者。對(duì)于多數(shù)人來(lái)說(shuō),這是一條苦不堪言的職業(yè)發(fā)展道路。
在 EDS 時(shí),企業(yè)文化不是這樣,管理崗位人員是流動(dòng)的。從策略規(guī)劃師等權(quán)限更大的崗位上下來(lái)從事項(xiàng)目管理或項(xiàng)目開(kāi)發(fā)人員等權(quán)限更小的崗位并不是一件丟人的事。我就利用了這種人員的流動(dòng)性,從技術(shù)金字頭頂端的角色回歸到了普通的項(xiàng)目開(kāi)發(fā)人員。對(duì)此,我從不后悔。