項(xiàng)目經(jīng)理應(yīng)該把30%的時(shí)間用在編程上
當(dāng)前位置:點(diǎn)晴教程→閑情逸致
→『 微信好文 』
本文的作者Eliot Horowitz是MongoDB的創(chuàng)始人和技術(shù)總監(jiān)。
在一個(gè)科技公司里,軟件技術(shù)經(jīng)理用在編程上的時(shí)間應(yīng)該不低于總工作時(shí)間的 30%。無(wú)論是管理一個(gè)團(tuán)隊(duì),還是一個(gè)分部,還是整個(gè)公司,當(dāng)技術(shù)經(jīng)理用在編程上的時(shí)間低于 30% 時(shí),他執(zhí)行職責(zé)的能力就會(huì)發(fā)生嚴(yán)重退化。 我的這個(gè)斷言可能跟那些我看到的想成為團(tuán)隊(duì)首領(lǐng)的軟件程序員們期望的情況完全相反。每次晉升,程序員們都期待花在編碼上的時(shí)間會(huì)大幅度減少,當(dāng)從 "leader" 爬到 " 經(jīng)理 " 職位時(shí),就應(yīng)該徹底脫離編碼活動(dòng)。而且,他們期望以一種 " 動(dòng)口 / 眼不動(dòng)手 " 的方式來(lái)保持對(duì)代碼庫(kù)的熟悉。再上級(jí)的領(lǐng)導(dǎo)就跟編碼完全沒(méi)關(guān)系了 ( 如果有的話 ) 。 大概一年前,當(dāng)時(shí)我的時(shí)間被越來(lái)越多的其它事情占用,例如招聘,管理,開(kāi)會(huì)等;我就發(fā)現(xiàn),作為一個(gè)技術(shù)首領(lǐng),當(dāng)花在編程上的時(shí)間低于某個(gè)比例后,管理效果和工作效率就會(huì)出現(xiàn)問(wèn)題。之前我寫(xiě)過(guò)一篇短博客闡述過(guò)這種體驗(yàn)和觀點(diǎn),但沒(méi)有展開(kāi)具體的描述。這里,我將會(huì)對(duì)這個(gè)觀點(diǎn)展開(kāi)更詳細(xì)的論述。 為什么要堅(jiān)持編程活動(dòng) 很多人認(rèn)為,做為管理者,應(yīng)該退出戰(zhàn)斗第一線,專注于大戰(zhàn)略和管理工作。當(dāng)然,管理者把大部分的時(shí)間用在這種事情上是應(yīng)該的。但是,在我們這樣一個(gè)行業(yè)里,因?yàn)槲覀冊(cè)试S或要求管理者幾乎不再去編程,現(xiàn)實(shí)讓我們付出了沉重的代價(jià)。一旦一個(gè)人停止編碼,他和程序員們關(guān)心的事物之間的重要聯(lián)系就會(huì)退化。當(dāng)這種情況發(fā)生時(shí),決策,計(jì)劃和干群關(guān)系就會(huì)出問(wèn)題,從而瓦解了將技術(shù)人員提升到管理職位的良好愿望基礎(chǔ)。 項(xiàng)目開(kāi)發(fā)評(píng)估能力 程序員的百寶箱中最重要的一個(gè)絕活就是估計(jì)工期。如果沒(méi)有準(zhǔn)確預(yù)估的能力,整體計(jì)劃是不可能正確的出臺(tái)的。大家也知道,做為一個(gè)族群,程序員們對(duì)工期的估計(jì)是臭名昭著的。糟糕的不能再糟,事實(shí)上,當(dāng)從程序員口中得到一個(gè)預(yù)估的數(shù)字后,公認(rèn)的方法是將它乘以二。通常,程序員都會(huì)對(duì)開(kāi)發(fā)工作抱有非常樂(lè)觀的態(tài)度,但如果我們使用 "estimate traction" 理論,就會(huì)發(fā)現(xiàn),編程活動(dòng)表現(xiàn)出特別易變的特征。因?yàn)槲铱梢杂煤芏喾椒▽?shí)現(xiàn)一個(gè)功能,當(dāng)我們?cè)谶€沒(méi)有深入細(xì)節(jié)之前,我們的估計(jì)就是不可靠的。 技術(shù)債務(wù) 另外一個(gè)事情是,技術(shù)經(jīng)理必須對(duì)技術(shù)債務(wù)給項(xiàng)目造成的影響掌握第一手的資料。如今,技術(shù)債務(wù)這個(gè)術(shù)語(yǔ)非常流行,常被用來(lái)當(dāng)作爭(zhēng)論是優(yōu)先開(kāi)發(fā)新功能還是先重構(gòu)老代碼的彈藥。對(duì) " 技術(shù)債務(wù) " 這個(gè)詞的內(nèi)涵熟悉的人通常最容易發(fā)起論戰(zhàn)。作為技術(shù)經(jīng)理,你不僅僅是要熟悉這個(gè)概念,它們會(huì)在你判斷何時(shí)償還技術(shù)債務(wù)的決策中起直接作用。經(jīng)常寫(xiě)代碼的經(jīng)理?yè)碛懈喔袃r(jià)值的信息來(lái)判斷何時(shí) / 如何做出這樣的決策。 知情的連續(xù)性 我并不是隨意選擇 30% 的比率的。我是基于自己的經(jīng)驗(yàn),將足夠的時(shí)間參與到開(kāi)發(fā)活動(dòng)中,你很容易就能時(shí)刻掌握代碼庫(kù)的任何變化。如果時(shí)間太少,你對(duì)開(kāi)發(fā)動(dòng)態(tài)的掌握就是斷斷續(xù)續(xù),無(wú)法連成線。一旦斷了線,我就需要重新理順脈絡(luò),由此得到的懲罰就是浪費(fèi)了額外的時(shí)間。 分擔(dān)責(zé)任 作為負(fù)責(zé)人,你不可能讓所有決策都由你制定或由你批準(zhǔn)。但你需要了解所有決策的前因后果和背景知識(shí),來(lái)輔助這些決策。最終,你要為這些決策的后果負(fù)責(zé),你對(duì)項(xiàng)目情況的掌控能力要能匹配你的這份責(zé)任。 積極參與編程贏得團(tuán)隊(duì)尊敬 大家需要明白:要想成為一個(gè)成功的經(jīng)理,你需要為團(tuán)隊(duì)成員提供服務(wù),促進(jìn)開(kāi)發(fā),確保他們完成任務(wù)。我曾在一篇博客里寫(xiě)過(guò)如何診斷和修復(fù)經(jīng)理們有問(wèn)題的干群關(guān)系。但是對(duì)于的管理程序員來(lái)說(shuō),你需要熱愛(ài)編程。因?yàn)槟愕膱F(tuán)隊(duì)在編程,如果你在編程上做榜樣,他們都會(huì)對(duì)你肅然起敬。 達(dá)到 30% 的障礙 盡管付出了最大努力,我仍然在保持 30% 的編碼時(shí)間上遇到了很多的阻礙。包括下面這些: 工作繁多:在一個(gè)創(chuàng)業(yè)公司里,你總有忙不完的工作需要去做,即使在公司有規(guī)模、壯大后,如何對(duì)眾多都很重要的事情排優(yōu)先級(jí)也是一種考驗(yàn)。技術(shù)經(jīng)理有很多職責(zé),完全會(huì)占滿他的 70% 的時(shí)間。下面就是一些: 領(lǐng)導(dǎo)和照顧團(tuán)隊(duì):這是一個(gè)技術(shù)經(jīng)理的第一要?jiǎng)?wù)。你已經(jīng)不能夠只為自己的工作負(fù)責(zé),你要為你的團(tuán)隊(duì)能保持最好的工作狀態(tài)負(fù)責(zé)。指導(dǎo)團(tuán)隊(duì)任務(wù),解決紛爭(zhēng),思考如何優(yōu)化工作條件來(lái)提高工作效率和舒適度,這都需要時(shí)間。 做決策:隨著職權(quán)的增加,技術(shù)經(jīng)理需要花更多的時(shí)間放在各種各樣戰(zhàn)略上的統(tǒng)籌和計(jì)劃等事務(wù)上。起初,也許只是一些技術(shù)方面的決策,但之后,產(chǎn)品開(kāi)發(fā)和競(jìng)爭(zhēng)策略方面的事務(wù)將會(huì)占去很大一部分。 招聘:經(jīng)理,總監(jiān),副總們,CTO 都需要組建自己的團(tuán)隊(duì),有時(shí)需要迅速組建。一個(gè)好的招聘高手能帶來(lái)很大幫助,技術(shù)經(jīng)理在這樣的事情上的作用是無(wú)可替代的。好的技術(shù)經(jīng)理會(huì)活躍的跟上級(jí)保持溝通,不斷的將自己團(tuán)隊(duì)中的優(yōu)秀人士推薦出去。 客戶:隨著技術(shù)經(jīng)理職權(quán)的增加,他們經(jīng)常會(huì)對(duì)外拋頭露面。他們會(huì)被帶去參加 " 推銷(xiāo)會(huì) ",期望他能帶去一些有深度的話語(yǔ)。或當(dāng)重要客戶不高興時(shí)被叫去滅火。 公關(guān):資深技術(shù)經(jīng)理會(huì)把一部分時(shí)間奉獻(xiàn)給公開(kāi)演講,寫(xiě)博客,或者報(bào)刊上發(fā)表文章。不論你在這些活動(dòng)中出了多少力,這些寫(xiě)作、編輯、排練、差旅、出席活動(dòng)等都是花費(fèi)時(shí)間的。 奪回時(shí)間:上面我說(shuō)的這些活動(dòng)都是一個(gè)技術(shù)經(jīng)理應(yīng)該投入時(shí)間的事情。下面要說(shuō)的是我從經(jīng)驗(yàn)中發(fā)現(xiàn)的一些陷阱,是它們?cè)谧钃跷遗Ρ3?nbsp;20% 最低限度的編碼時(shí)間,至今仍站在我面前,妨礙我重回 30% 的目標(biāo)。 不勇于說(shuō)不:高成就意味著要努力工作;然而,做事要穩(wěn)妥,一個(gè)技術(shù)經(jīng)理最重要的職責(zé)就是,當(dāng)你的團(tuán)隊(duì)負(fù)擔(dān)過(guò)重或接近這種狀態(tài)時(shí)要勇于說(shuō)不。如果你這個(gè)時(shí)候不說(shuō)不,其他人就會(huì)開(kāi)始對(duì)你的計(jì)劃和工期承諾指手劃腳。 開(kāi)會(huì):有一個(gè)巨大的家庭手工業(yè)行業(yè)都在為如何高效的開(kāi)會(huì)出謀劃策,這是有其自身原因的。我的職業(yè)生涯中浪費(fèi)在會(huì)議中的時(shí)間算是最多的了。尤其是不斷的面試或出席必須由團(tuán)隊(duì)首領(lǐng)出席的會(huì)議。 失敗的策略 當(dāng)在探索如何奪回我的編碼時(shí)間時(shí),有很多的方法并不奏效。 少睡:這種方式雖然對(duì)我有巨大的誘惑,但其實(shí)犧牲睡眠時(shí)間沒(méi)有一點(diǎn)效果。你的大腦需要休息,缺少睡眠會(huì)影響情緒并降低工作效率。 只看頭文件:我以為這種方法可行,但實(shí)踐中,只看提交的 C++ 代碼的頭文件對(duì)你的管理工作的幫助甚少。 專一:作為團(tuán)隊(duì)首領(lǐng),你只關(guān)注代碼庫(kù)里的一個(gè)項(xiàng)目也許是可以的,但對(duì)于總監(jiān)或更高級(jí)別的人來(lái)說(shuō),你應(yīng)該對(duì)負(fù)責(zé)的所有東西都要熟悉、了解。 委托:有時(shí)候?yàn)榱硕嘧龉ぷ鳎瑫?huì)將一些事情隨意的交給他人做,但實(shí)際上一些像寫(xiě)報(bào)告這樣的事情你一定要認(rèn)真囑咐才行。 成功的策略 盡管走了很多死胡同,我還是發(fā)現(xiàn)了一些成功的方法: 時(shí)間分段:我的日程表上沒(méi)有被預(yù)先分配的時(shí)間是非常少的。想起來(lái)這也是很顯然的。于是我專門(mén)為編程特地分出一些時(shí)間段。實(shí)踐中,這些時(shí)間段經(jīng)常會(huì)被重新調(diào)整,雖然每周只擠出 8 小時(shí),效果是完全不一樣的。 委派:委派要有技巧,尤其是在你對(duì)如何執(zhí)行抱有強(qiáng)烈想法并有能力去做時(shí)。有很多原因?qū)е乱粋€(gè)經(jīng)理反對(duì)將任務(wù)委托他人,但事實(shí)上每個(gè)原因都應(yīng)該被當(dāng)作一個(gè)現(xiàn)存的需要解決的問(wèn)題,而不是一個(gè)不可逾越的障礙。沒(méi)有什么比放手讓一個(gè)你信賴的人替你主持一個(gè)會(huì)議能釋放你更多的編碼時(shí)間了。 工作時(shí)間:將時(shí)間分段,工作時(shí)間里盡量避免打擾。在這些時(shí)間段之間的時(shí)間里,我會(huì)干一些不重要或不需求注意力長(zhǎng)期集中的事情。 最后幾招 下面是一些經(jīng)驗(yàn)建議,送給那些發(fā)現(xiàn)自己試圖達(dá)到 30% 但無(wú)法接近的技術(shù)經(jīng)理們: 學(xué)習(xí)如何讀代碼。跟寫(xiě)代碼比起來(lái),這是一種完全不同的技巧。 指定會(huì)議流程,對(duì)會(huì)議進(jìn)程保持控制。不參加任何沒(méi)有計(jì)劃的會(huì)議。 用一臺(tái)好用的電腦。你喜歡 MacBook Air?不,別用它。 清楚如何訪問(wèn)一個(gè)開(kāi)發(fā)環(huán)境,這樣當(dāng)有修改時(shí)可以快速測(cè)試。 記住你是把一小時(shí)分成 5 個(gè)時(shí)間段使用的人。如果有事情需要一小時(shí),在日程表上標(biāo)明。 20 – 30% 是我自己的發(fā)現(xiàn)。你的也許跟我不同。評(píng)估你自己的 ( 你修復(fù)一個(gè)緊急 bug 需要多少時(shí)間?你知道代碼庫(kù)中麻煩最多的程序是哪一塊嗎?隨機(jī)找一段程序,看看你是否知道是做什么的。如果不能,說(shuō)明你需要更多的時(shí)間 ) 。 分類列出哪些事情什么時(shí)候做,哪些事情應(yīng)該完成。 ( 知道 Getting Things Done ( GTD ) 的人會(huì)看出這是提高工作效率的基本技巧。 ) 最后,我最近越來(lái)越喜歡把東西寫(xiě)到紙上。跟感覺(jué)上相反,打印出來(lái)的說(shuō)明,把一些需要排優(yōu)先級(jí)的任務(wù)列在紙上,或者是一段代碼,經(jīng)常的,它會(huì)成為把大量時(shí)間盯著屏幕的一種平衡。 我希望這些方法對(duì)你們有用。如果你有其它更好的技巧,請(qǐng)?jiān)谠u(píng)論里告訴我。謝謝。 該文章在 2014/3/24 23:51:44 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |