天天看點

如何成為一位卓越的技術經理?

管理一支技術團隊可能是世界上最難的事情之一。如果你是一個經理,你需要和很多方面的專家合作,和你的上級協調産品需求,和負責協調産品傳遞件的同級合作,和将産品功能轉化成技術需求的同級合作,帶領直接彙報給你的團隊等等。在某些糟心的時刻,你需要面對的是會把阿斯伯格綜合症的送報小孩趕走的同僚。

如何成為一位卓越的技術經理?

我曾經擔任過開發經理、開發總監的工作,也曾經是一個開發人員,在過去的幾十年中,在管理技術團隊這件事情的兩邊,我經曆過許多非常不一樣的“管理風格”。從技術團隊的角度出發,就成為一個卓越的技術經理必備的特質,我會給出一些建議。

首先,技術人員的工作環境始終飛速變化,我覺得如何成為一個卓越的技術經理是一個非常重要的話題。

在過去的二十年中,我們可以看到軟體開發的模式有發生了巨大的變革。在大多數企業中,軟體開發的周期變得短,而且管理層因為每個季度盈利的目标而對産品開發施加更大的壓力。對于許多初創企業,都需要在第一時間釋出新的軟體産品。這些情況都導緻了在軟體開發中我們會一直使用各種變更管理的方法。

在我還是一個開發人員的時候,我明白了第一個道理。我的老闆當時問我,你知道你的工作對公司有哪些貢獻嗎?

我:『額…… 我嗎,我就是在寫代碼。』

老闆:『好吧,你是在寫代碼。讓我換一種方式來問你,你覺得你寫的每一行代碼會給公司帶來多少利潤呢?』

我:『(腦瓜爆炸中……)噢,不是?我覺得,我不能……我從來沒有…… 額……你在說啥?』

我的老闆事後向我解釋,公司的想法是,每一個開發人員都應當知道自己對于公司的貢獻。當然這不是在讨論每一行代碼能産生多少貢獻,更主要的目的是,你知道你的工作會對公司的利潤産生影響。你的工作會影響你所開發的産品,在其生命周期中,這個産品将幫助公司賺錢或是省錢。如果你能得到這些盈利或是節省的數字,除上公司的投入(項目上開發人員的工資收入),就可以知道你所在項目的大緻收益情況。聽完這些話後,我一下子茅塞頓開。

這件事情的意義在于,在真實的商業世界裡,我在這裡引用梳着黑色大背頭的Michael Douglas關于貪婪帶來的好處的說法:對于公司來說,所有的事情都是賺錢相關的。(詳見Michael

Douglas參演的電影Wall Street)。然而,作為開發人員,我們專注于開發這一藝術性的工作上。我們創造出的代碼,将比以前更快、更好、更優雅地解決問題,完成任務。我們就像畫家一般在畫布上盡情作畫,直到完美,從無到有地創造,開發出令人興奮、大呼碉堡的軟體,這和利潤有半毛錢關系?

技術經理們就像“動物園”的看門人一樣(想到程式猿們……)。他們應當要能夠使用我們的語言,體諒我們付出的勞動,了解我們的問題,并且和我們一同分享勝利的喜悅。同時,當他們沒有在做這些事情的時候,他們給予我們回報,給予我們産品的需求,代表我們和他們的上級和同級的同僚一起制定項目預算,确認開發的費用和團隊人數。當某一個表面光鮮的銷售姐姐因為要完成她的月度銷售名額,将沒有在目前開發計劃中的産品功能承諾給了客戶時,他們會幫助我們去解釋為什麼這樣的情況會導緻産品的釋出日期延後一周。

經理們是公司機器的潤滑油,是公司軍隊中的軍士長。他們知道如何把事情做完,何時要緊,何時要松。簡單的說,作為開發人員,你工作上成功的機率基本上正比于你老闆的職業技能和工作的有效性。在我一生的職場經曆中,我變得珍惜和感謝優秀的經理人,我知道真正優秀的經理人就像能中獎的彩票一樣稀少。讀了下面的文章,你就可以知道你有沒有中了『好經理人』彩票。

1. 優秀的經理要聯系團隊和個人 | Managers Connect

  • 一個卓越的經理會傾聽團隊的想法和顧慮。他會在公司要求的大架構下去衡量團隊給予的回報資訊,努力在産品需求、傳遞日期和現實狀況中達到平衡。
  • 一個卓越的經理會相信他的團隊時時刻刻說的都是真話,而且隻有真話,同時他會不帶感情色彩地去辨識是非黑白。
  • 一個卓越的經理會在團隊的需求和公司的需求兩者之間進行權衡,而且他能夠将同時滿足多方面要求的項目計劃進行到底。因為他相信這樣做是正确的,而且在大多數情況下,這樣做是通向成功的唯一道路。
  • 一個卓越的經理,會不時地和整個團隊以及其中的所有成員保持密切的溝通。他會知道團隊面臨的挑戰是什麼,以及團隊或其中的個人應該如何做才能夠達到成功。
  • 一個卓越的經理會和團隊和公司分享成功的經驗,同時他會確定團隊得到應得的榮譽。你總是不斷地、及時地從你老闆那裡得到關于你工作表現的回報,關于你在拟定目标上的進展狀況,以及如何提高自身修養的建議,是以你總是能知道你在職業發展的道路上走得怎麼樣。

2. 優秀的經理要管理任務 | Managers Manage the Task

  • 一個卓越的經理應該首先是一個有技術背景的人。作為一個開發者,當你告訴你的老闆,因你發現某些不可重入的(non-re-entrant)函數在運作中會發生系統中斷,而需要重構一個特定方法的時候,你的老闆應該能夠知道你在說些什麼東東,或者至少會對你有能力解決這個問題表示認可。
  • 一個卓越的經理要有技術的基礎,雖然他可能不再是某方面的專家,但他還是有相當的技術能力參與到團隊的技術讨論中去,或是在困難的情況下給予方法論上的建議和幫助。
  • 一個卓越的經理知道他當時招聘的技術專家是你,并不是他自己,是以你的責任是在碰到問題的時候給予解決方案。
  • 好的經理管理的是任務,而不是技術。
  • 一個卓越的經理并不會因為他在某個特定的技術領域的經驗而在一個項目計劃中強加于你特定的技術,給你挖坑。他認可通常解決一個問題會有很多種方法,多年前的經驗和方法在今日未必适用。他不會在沒有考慮所有可能的方案的情況下,強制做出技術設計的決定,也不會因為自己以前經常使用某些技術解決方案,而把這些強加給團隊。
  • 一個卓越的經理知道技術是日新月異,不斷發展的,而找出某個特定任務的解決方法并實施最佳方案的人,應當是開發人員。

3. 優秀的經理要善于管理 | Managers Manage

一個卓越的經理是善于管理時間、任務、需求、規範、資源和人員的經理。他會擁有看到整片樹林的能力,但同是他相信作為開發人員的你能夠照顧好整片樹林中的樹木。他會通過各種可能的方法關注你的工作量, 了解你的進展情況。畢竟卓越的經理應當會使用各種必要的管理方法和工具來跟蹤團隊的工作和進展。這意味着你的團隊應當會使用一些工具來跟蹤和彙報每天的開發任務。這類工具可以是簡單的缺陷跟蹤系統(如

Mantis

Bugzilla

),或者是完整的基于靈活開發流程設計的系統(如

Greehopper

)。不管怎樣,這些工具會讓你的老闆能夠以一種非主動的方式管理項目。同時,這類工具也能夠提醒你老闆在什麼時間應該積極地介入到項目中來。

一個卓越的經理不會以“微管理”的方式來管理你的工作(除非你在工作上表現實在很差),而且不會經常每天通過各種可能的方式來騷擾你,來獲得你最新的工作進展情況。他知道在你解決困難問題的時候,你的大腦需要一個不被打擾的環境,任何打擾隻會拖延解決問題的時間。他會知道你什麼時候需要這樣的環境來完成工作。

如果一個卓越的經理不知道為什麼你對一項工作的估測時間增大之時,他會需要你提供時間估測的具體分析,并和你一起探讨。如果需要對你的時間估測進行改動的話,他會征得你的同意,而不是強行地進行更改。另外,當計劃外的工作被添加到你的計劃中的時候,他會重新安排計劃,以確定你能有足夠的時間來完成這些工作。(《

為什麼程式員總是不能準确估測項目時間

》)

一個卓越的經理會為你提供你所需要的所有資源,以確定你能夠在規定的時間内完成工作。

但是,如果你需要的新硬體、軟體、或是對工作環境的改變超出了目前項目允許的範圍,隻要你證明這些變化的确能夠提高你的工作效率,他會同意的。作為一個技術團隊的一員, 你的職責是了解投資回報(Return of Investment,ROI)的基本概念。這樣的話,你就能像你的老闆描述問什麼項目計劃外的支出能夠幫助公司獲得更多的回報。

4. 優秀的經理要尊重他人 | Managers Respect

一個卓越的經理會尊重他的團隊的專業技能、 時間安排以及各種訴求。他會給團隊成員提供各種需要的工具來幫助他們在規定的時間内完成事先承諾的工作。他會尊重你的個人生活和職業發展。當員工需要處理辦公室裡或日常生活中碰到的各種問題時,他會靈活安排員工的工作。對一個卓越的經理來說,隻要團隊的工作在規定的時間内完成,他不會要求所有人嚴格按照進度去工作,他也不會過度關注每一項工作何時完成。卓越的經理人知道在特殊狀況下團隊需要額外的時間來完成一項工作,但他們知道,當團隊夜以繼日的在每天晚上、周末、假日加班的時候,這是例外,并不是常态。一個卓越的經理了解當團隊一周工作60個小時以上的時候,這是因為團隊想這麼幹,并不是被逼的。如果員工是被迫如此加班的話,他會意識到這是他自己在開發任務的時間管理上有問題,而不是因為團隊的能力問題造成的。

5. 優秀的經理要代表團隊 | Manager’s Represent

  • 一個卓越的經理會在各個方面代表他的團隊,他會成為他所代領的卓越的團隊的一個真實寫照。他會是一個卓越的上司者,被他的團隊視為是一個貢獻者而不是一個拖油瓶。
  • 一個卓越的經理會起到标杆的作用,同時他會向所有的團隊成員證明他自己也會付出個人的努力來幫助團隊獲得成功。如果一個經理期望自己的團隊一天工作整8個小時,那麼他自己也要工作同樣長的時間。卓越的經理是那種“按我做的去做”而不是“按我說的去做”的那種老闆。
  • 一個卓越的經理會以極大的熱情在團隊、部門、公司範圍内表彰員工的傑出表現。他會經常對有對貢獻的員工在公衆場合進行表揚,同時確定他們得到物質上的獎勵。相反,如果團隊失敗了,他會認為這也是自己的失敗。
  • 一個卓越的經理會和他的團隊一起分析一個特定任務或事件失敗的原因,這樣他們就可以采取一些措施來防止再犯同樣的錯誤。他會為團隊的成功負責,他也會為團隊的失敗擔負一樣的責任。

我完全了解一個經理的職責遠遠超出了他所帶領的團隊。我試圖從一個團隊成員,而不是一個一線經理,或是一個總監的角度來寫這篇文章。對程式員來說,在基層工作的一個好處是當你不知道你的上級在做什麼的時候,你可以随便批評他們。相信我,一個一線的技術經理每天的工作包含了很多和管理團隊無關的事情。如果你覺得你老闆的工作很容易,或者你會比他們做得更好,為什麼不去試一下做你老闆在做的事情?我覺得你是不會想要他們的工作或是相應而來的壓力的。

如果一個團隊有幸能夠得到一位卓越的技術經理,這支團隊應當積極地保護甚至培養和他們老闆之間的關系。通常,開發團隊可以使用他們老闆不知道的方法,通過額外的付出和努力來幫助他們的老闆成功。一個卓越的經理會關心他的團隊,同樣的,一支卓越的團隊也會如此地關心他們的老闆。長此以往,團隊和經理成為了有機的一體,像劍聖一般堅不可摧,戰無不勝,成為組織中其他團隊的标杆。

在卓越團隊中的每一個人,都應該反映出這支團隊的經理的技能、态度和道德水準。

繼續閱讀