我曾經擔任過開發經理、開發總監的工做,也曾經是一個開發人員,在過去的幾十年中,在管理技術團隊這件事情的兩邊,我經歷過許多很是不同的「管理風格」。從技術團隊的角度出發,就成爲一個卓越的技術經理必備的特質,我會給出一些建議。 程序員
首先,技術人員的工做環境始終飛速變化,我以爲如何成爲一個卓越的技術經理是一個很是重要的話題。 segmentfault
在過去的二十年中,咱們能夠看到軟件開發的模式有發生了巨大的變革。在大多數企業中,軟件開發的週期變得短,並且管理層由於每一個季度盈利的目標而對產品開發施加更大的壓力。對於許多初創企業,都須要在第一時間發佈新的軟件產品。這些狀況都致使了在軟件開發中咱們會一直使用各類變動管理的方法。
app
在我仍是一個開發人員的時候,我明白了第一個道理。個人老闆當時問我,你知道你的工做對公司有哪些貢獻嗎? 框架
我:『額…… 我嗎,我就是在寫代碼。』 函數
老闆:『好吧,你是在寫代碼。讓我換一種方式來問你,你以爲你寫的每一行代碼會給公司帶來多少利潤呢?』 工具
我:『(腦瓜爆炸中……)噢,不是?我以爲,我不能……我歷來沒有…… 額……你在說啥?』 spa
個人老闆過後向我解釋,公司的想法是,每個開發人員都應當知道本身對於公司的貢獻。固然這不是在討論每一行代碼能產生多少貢獻,更主要的目的是,你知道你的工做會對公司的利潤產生影響。你的工做會影響你所開發的產品,在其生命週期中,這個產品將幫助公司賺錢或是省錢。若是你能獲得這些盈利或是節省的數字,除上公司的投入(項目上開發人員的工資收入),就能夠知道你所在項目的大體收益狀況。聽完這些話後,我一會兒茅塞頓開。 設計
這件事情的意義在於,在真實的商業世界裏,我在這裏引用梳着黑色大背頭的Michael Douglas關於貪婪帶來的好處的說法:對於公司來講,全部的事情都是賺錢相關的。(詳見Michael
Douglas參演的電影Wall Street)。然而,做爲開發人員,咱們專一於開發這一藝術性的工做上。咱們創造出的代碼,將比之前更快、更好、更優雅地解決問題,完成任務。咱們就像畫家通常在畫布上盡情做畫,直到完美,從無到有地創造,開發出使人興奮、大呼碉堡的軟件,這和利潤有半毛錢關係? orm
技術經理們就像「動物園」的看門人同樣(想到程序猿們……)。他們應當要可以使用咱們的語言,體諒咱們付出的勞動,理解咱們的問題,而且和咱們一同分享勝利的喜悅。同時,當他們沒有在作這些事情的時候,他們給予咱們反饋,給予咱們產品的需求,表明咱們和他們的上級和同級的同事一塊兒制定項目預算,確認開發的費用和團隊人數。當某一個表面光鮮的銷售姐姐由於要完成她的月度銷售指標,將沒有在當前開發計劃中的產品功能承諾給了客戶時,他們會幫助咱們去解釋爲何這樣的狀況會致使產品的發佈日期延後一週。 blog
經理們是公司機器的潤滑油,是公司軍隊中的軍士長。他們知道如何把事情作完,什麼時候要緊,什麼時候要鬆。簡單的說,做爲開發人員,你工做上成功的機率基本上正比於你老闆的職業技能和工做的有效性。在我一輩子的職場經歷中,我變得珍惜和感謝優秀的經理人,我知道真正優秀的經理人就像能中獎的彩票同樣稀少。讀了下面的文章,你就能夠知道你有沒有中了『好經理人』彩票。
一個卓越的經理是善於管理時間、任務、需求、規範、資源和人員的經理。他會擁有看到整片樹林的能力,但同是他相信做爲開發人員的你可以照顧好整片樹林中的樹木。他會經過各類可能的方法關注你的工做量, 瞭解你的進展狀況。畢竟卓越的經理應當會使用各類必要的管理方法和工具來跟蹤團隊的工做和進展。這意味着你的團隊應當會使用一些工具來跟蹤和彙報天天的開發任務。這類工具能夠是簡單的缺陷跟蹤系統(如 Mantis 或 Bugzilla),或者是完整的基於敏捷開發流程設計的系統(如 Greehopper)。無論怎樣,這些工具會讓你的老闆可以以一種非主動的方式管理項目。同時,這類工具也可以提醒你老闆在什麼時間應該積極地介入到項目中來。
一個卓越的經理不會以「微管理」的方式來管理你的工做(除非你在工做上表現實在不好),並且不會常常天天經過各類可能的方式來騷擾你,來得到你最新的工做進展狀況。他知道在你解決困難問題的時候,你的大腦須要一個不被打擾的環境,任何打擾只會拖延解決問題的時間。他會知道你何時須要這樣的環境來完成工做。
若是一個卓越的經理不知道爲何你對一項工做的估測時間增大之時,他會須要你提供時間估測的具體分析,並和你一塊兒探討。若是須要對你的時間估測進行改動的話,他會徵得你的贊成,而不是強行地進行更改。另外,當計劃外的工做被添加到你的計劃中的時候,他會從新安排計劃,以確保你能有足夠的時間來完成這些工做。(《爲何程序員老是不能準確估測項目時間》)
一個卓越的經理會爲你提供你所須要的全部資源,以確保你可以在規定的時間內完成工做。
可是,若是你須要的新硬件、軟件、或是對工做環境的改變超出了目前項目容許的範圍,只要你證實這些變化的確可以提升你的工做效率,他會贊成的。做爲一個技術團隊的一員, 你的職責是理解投資回報(Return of Investment,ROI)的基本概念。這樣的話,你就能像你的老闆描述問什麼項目計劃外的支出可以幫助公司得到更多的回報。
一個卓越的經理會尊重他的團隊的專業技能、 時間安排以及各類訴求。他會給團隊成員提供各類須要的工具來幫助他們在規定的時間內完成事先承諾的工做。他會尊重你的我的生活和職業發展。當員工須要處理辦公室裏或平常生活中碰到的各類問題時,他會靈活安排員工的工做。對一個卓越的經理來講,只要團隊的工做在規定的時間內完成,他不會要求全部人嚴格按照進度去工做,他也不會過分關注每一項工做什麼時候完成。卓越的經理人知道在特殊情況下團隊須要額外的時間來完成一項工做,但他們知道,當團隊夜以繼日的在天天晚上、週末、假日加班的時候,這是例外,並非常態。一個卓越的經理理解當團隊一週工做60個小時以上的時候,這是由於團隊想這麼幹,並非被逼的。若是員工是被迫如此加班的話,他會意識到這是他本身在開發任務的時間管理上有問題,而不是由於團隊的能力問題形成的。
我徹底瞭解一個經理的職責遠遠超出了他所帶領的團隊。我試圖從一個團隊成員,而不是一個一線經理,或是一個總監的角度來寫這篇文章。對程序員來講,在基層工做的一個好處是當你不知道你的上級在作什麼的時候,你能夠隨便批評他們。相信我,一個一線的技術經理天天的工做包含了不少和管理團隊無關的事情。若是你以爲你老闆的工做很容易,或者你會比他們作得更好,爲何不去試一下作你老闆在作的事情?我以爲你是不會想要他們的工做或是相應而來的壓力的。
若是一個團隊有幸可以獲得一位卓越的技術經理,這支團隊應當積極地保護甚至培養和他們老闆之間的關係。一般,開發團隊可使用他們老闆不知道的方法,經過額外的付出和努力來幫助他們的老闆成功。一個卓越的經理會關心他的團隊,一樣的,一支卓越的團隊也會如此地關心他們的老闆。久而久之,團隊和經理成爲了有機的一體,像劍聖通常堅如盤石,望風披靡,成爲組織中其餘團隊的標杆。
在卓越團隊中的每個人,都應該反映出這支團隊的經理的技能、態度和道德水準。
via 伯樂在線