作為軟件開發經理要避免的10個錯誤(下)
神譯局是36氪旗下編譯團隊,關注科技、商業、職場、生活等領域,重點介紹國外的新技術、新觀點、新風向。
編者按:管理的核心內容是人,管理要以人為本。作者作為一個從開發人員到技術主管,從經理到高級經理的人,一路走來得到了十條真誠的管理心得。本文來自編譯,希望對您有所啟發。由于篇幅較長,故拆分成上下兩篇,本文是上篇。
相關閱讀:作為軟件開發經理要避免的10個錯誤(上)
在我早期的軟件開發生涯中,我非常幸運地較早地就成為了一名軟件經理。作為一個相對年輕和幼稚的新經理,我工作上關注的重點一直是恪守承諾和項目交付。
盡管如此,我還是做得很好,爬上了管理的階梯,成為了一名高級經理。當我今天回頭看的時候,我雖然達到了作為一個經理的基本要求,但我在其他很多方面做的都不好。
在重新調整職業生涯并進入一個新行業后,現在我又回到了基礎管理崗。既然我非常幸運地擁有了第二次當經理的機會,我會從過往的經歷中學習,努力避免以下錯誤。
6. “開發者的快樂”
我以前從來都不知道“開發者的快樂”(Developers’ Happiness)這個詞。
當考慮工作過程改進(工具、技術、框架等)時,我考慮的是有效性、效率和成本。
開發者的感受是“次要的”。如果一個項目是有效的,高效的,成本也是合理的,那就已經夠好了。
我當時的理論是,當我們變得更有效率時,開發者自然會更快樂。如果不是,至少當公司從改變中獲益時,我們可以給開發人員獎勵,他們也會“更快樂”。
我大錯特錯了。
對我來說,在那個時候,人的感受總是次要的,起碼優先級低于項目的成功交付。現在回想起來,我感覺糟透了。
我第一次聽到“開發者的快樂”這個詞是在我第一次以開發者身份轉到手機開發領域時。我們建議改用一種新的語言,也就是Kotlin,它在2017年就開始流行了。
在說服管理層使用這種新語言時,我試圖證明這種語言在表達能力方面是多么厲害,因為它比Java更簡潔。也有人問我它在編譯時、運行時和潛在風險方面的表現。
要證明所有這些都很困難,但是我的技術主管說:“如果Kotlin沒有明顯的缺點,如果它增加了開發人員的幸福感,那么它值得考慮。”
哇!我的幸福和快樂很重要!我感到被珍惜和感激。
在考慮對任何工具、過程等的更改時,開發人員的幸福感是一個非常重要的考慮因素。如果開發者喜歡它,他們就會盡可能地讓它發揮作用,除非我們選擇了一個糟糕的選擇。
即使我們的選擇是錯誤的,但我們這樣做是為了“開發人員的幸福”,團隊也將愿意努力糾正和改進這種情況。
我們會從錯誤中學習,我們“高興地”犯錯,也會“高興地”修復。
7. 作為領導,我們不應該把“特殊待遇”看成“理所當然”
“我努力工作,晉升是我應得的!”這是一個人們很容易陷入的陷阱。
我非常謹慎,不落入這種“驕傲”。但在從事管理工作數年后,“有資格”享受特殊待遇的感覺自然會產生。
在一張團隊照片中,由于我的職位,我應該得到“C位”。人們看到我時應該自然地向我打招呼。我得到了關注和特殊待遇。作為高級經理,我在很多事情上都有優先權和排他性。
當我說話時,人們會傾聽。我認為這是我“應得的”。
我大錯特錯了。
當我轉行后,我不再得到所有的關注,也沒有額外的待遇。當我說話時,人們會打斷我,然后繼續說。我只是個“噪音”。
然后我意識到一個事實:當我還是高級經理時,很多人對我更好,不是因為我是誰,而是純粹因為我的職位。
事實上,我不值得。如果他們對我好,我應該感激的。即使他們沒有,也沒關系。永遠不要陷入“自命不凡”的陷阱,因為我們永遠不知道什么時候會有一天,我們將不再是那個位置上的人。
事實上,正是在我們“不在高位”的日子里,我們才能發現真正的朋友和真誠的人。這些人沒有任何附加條件地對你很好,我們可以和這些人建立長久的關系。
不管我們的地位如何,我們和其他人一樣都是普通人。恭敬地對待每一個人,永遠不要期待排他的待遇。畢竟,我們只是暫時生活在這個世界上的伙伴,總有一天,一切都會過去。到那時,重要的不是我們被如何對待,而是我們如何對待他人。
8. 保持技術能力,與開發人員保持聯系
我的職業生涯是從開發人員做起的。我專注于學習技術性的東西:編程語言、技術、范例、實踐。
當我成為一名高級經理后,我現在也有了為我工作的經理。我想,也許我應該專注于領導力,多讀一些管理和領導力方面的書籍。
我的主管和經理應該處理所有的技術問題,我可以把它“委派”給他們。我再也沒有時間做低級的“技術性的事情”了。
我大錯特錯了。
在一開始,這是可行的,因為我“過去”的知識仍然和時代同步,我仍然能夠理解開發人員所說的內容。
但過了一段時間,技術進步了,出現了新的語言,引入了新的框架。開發人員繼續前行,而我所理解的知識已經無關緊要了。
我仍然試著用“古老的知識”來看待我們提出和討論的內容。我開始做很多假設,有時過于簡化事情,而不是立足于現實中。我再也無法理解開發者的痛苦和挑戰了。我無法理解復雜性,這讓我過于苛求,并提出了不合理的期望。
當時對我來說,任何編程語言都只是一種編程語言。這有什么難的。我們可以在幾周內學會任何語言并掌握它,因為我們的C++基礎能讓我們學會任何東西。
現在,當我重新開始我的職業生涯,回到實際的開發工作時,我現在很感激當時的開發人員克服了許多困難——學習的痛苦和技術上的挑戰。
當開發者知道我們理解他們,并能夠與他們建立聯系時,他們會更愿意被引導。他們信任我們的領導。
9. 別忘了投資自己,這對你自己和公司都有好處
我是一個非常敬業的員工。我的時間是用來完成項目的。我會集中時間學習所有的內部流程和公司的專有工具。所有的大型組織都有自己的流程和工具,所以我的目標是掌握它們。
換句話說,我的投資都集中在公司內部。我是一個非常忠誠的員工。如果我花時間學習一些其他的東西,我會覺得我不夠專注,因為我學的東西不能直接用于公司的工作。
我大錯特錯了。
我不僅錯了,而且我非常愚蠢和天真!
了解和理解與我們的工作相關的組織內部流程是很重要的,但是我們也應該學習足夠的知識來滿足我們的工作需要。
我們應該花時間學習外部知識,探索我們有熱情的領域。這些知識可能與公司工作沒有直接關系,但它確實打開了我們的思維,讓我們對許多事情有更廣泛的思考和理解。
從自私的角度來看,我們要讓自己與就業市場保持聯系。在簡歷中,專有知識并不是很有用,相關的技能組合才能使一個人持續具有市場價值。
與此同時,在現實中,更廣泛的知識也會讓我們更有創造力,因為我們在尋求改進和解決方案時,有能力跳出固有的思維模式。當我們的組織擁有多樣化的知識和技能時,它就能更好地創新和成長。
除了學習,我們還應該把時間花在生活的其他方面,比如健康和情感幸福上。通過成為一個更全面的人,我們也會成為更好的員工。
10. 永遠不要排除一種可能:有時候我們自己才是問題的根源
問題是生活的一部分,管理也是如此:我們就是來解決問題的。有時我們稱之為機遇。
當我們遇到問題時,我們有很多工具來幫助我們進行根本原因分析。這些工具幫助我們列出導致問題的不同可能性,這非常有幫助。
但這個工具的作用,取決于我們在確定根本原因時的誠實程度。在一些不能容忍錯誤的公司中,人們會避免列出潛在的根本原因,因為這些原因可能會引火上身。
作為管理者,我的職責是找出問題的原因。也許是結構問題,也許是外部因素,也許是我們員工的能力,但絕不是我的錯誤。
我知道我已經盡力了,根本原因不可能是我。
我大錯特錯了。
由于從不把自己看作問題的潛在根源,我有時感到非常無力。我一直觀察自己的外部世界,尋找應該“責備”的地方,這樣我就可以避免追究問題的“責任”。
錯的總是“別人”而不是“自己”。因此,我們并不能真正完全控制局面。如果我們總是把自己排除在畫面之外,我們可能會錯過問題的實際根源。
這是我從一位技術主管那里學來的。有一天,一個專門的開發人員犯了一個看起來很“愚蠢”的錯誤,導致我們的軟件崩潰。經過一些調查,開發人員了解到這個錯誤,并遺憾地承認了錯誤。
如果我是經理,也許我會同情開發人員,并要求他們在以后的工作中小心行事。我可能會要求開發人員幫助尋找解決方案,以防止今后出現這種錯誤。
但當時,我的技術主管并沒有因為開發者承認錯誤而感到寬慰,而是承擔了全部責任,并表示他沒有制定出防止這種錯誤的安全網。如果他建立了安全網,這個錯誤就不會在軟件發布之前才被發現。
當我聽到這個消息時,我并沒有因為他沒能建立起安全網而鄙視他。相反,我對這位技術主管的尊重與日俱增。他不僅讓開發者感覺更好,而且還承擔了全部責任,他覺得自己應該確保問題得到解決。Respect!
寫在最后
如果我們仔細看看上面的十條,就會發現管理的重點應該永遠放在人身上。管理的過程是為了幫助人們成長,而這些項目是培養人才的機會。
領導要以人為本。事實上,如果沒有人,就沒有領導。
作為管理者,首要任務是讓員工成長,作為回報,員工也將更好地為公司做出貢獻。
如果沒有人一起工作,經理就什么也不是。我們能有今天,是因為一直得到了員工的支持。
譯者:Jane