本文在騰訊內(nèi)部論壇被瀏覽達(dá)7347次,收藏615次,評論幾百條,曾經(jīng)是討論最熱烈的項(xiàng)目管理文章之一。作為作者本身,感覺這個話題可以討論的范圍非常大,希望能有更多朋友一起切磋探索技術(shù)團(tuán)隊(duì)的管理之道。...
本文在騰訊內(nèi)部論壇被瀏覽達(dá)7347次,收藏615次,評論幾百條,曾經(jīng)是討論最熱烈的項(xiàng)目管理文章之一。
作為作者本身,感覺這個話題可以討論的范圍非常大,希望能有更多朋友一起切磋探索技術(shù)團(tuán)隊(duì)的管理之道。
資深程序員是團(tuán)隊(duì)中最強(qiáng)大的生產(chǎn)力,但往往被不合理的工作安排浪費(fèi)掉。
因此作為一個團(tuán)隊(duì)的技術(shù)的“頭”,必須要有明確清晰的認(rèn)識,把主要的事務(wù)性工作剝離出來。并且放棄大量的管理“權(quán)力”,以提高團(tuán)隊(duì)開發(fā)質(zhì)量和效率為最主要的目標(biāo)去安排自己的工作。
一般來說技術(shù)總監(jiān)其實(shí)會被要求做事實(shí)上是2個職位的工作:主程、項(xiàng)目經(jīng)理(技術(shù)化)。
因此必須明確此兩個職位的工作任務(wù)分割。然后把項(xiàng)目經(jīng)理的工作,安排給另外一個人做,當(dāng)然其職稱可能同樣也得叫“技術(shù)總監(jiān)”或“主程”,總之聽起來越牛X越好。
而真正的主程(技術(shù)總監(jiān))則應(yīng)該投身于盡量多的技術(shù)工作中。而最重要的工作則是開發(fā)——生產(chǎn)代碼和文檔。
主程的工作:
一、開發(fā)
從來沒有一個資深的外科醫(yī)生會放下手術(shù)刀,而轉(zhuǎn)到手術(shù)室外面指手畫腳。一個資深的程序員也不應(yīng)該離開代碼和文檔的編寫,而只是做做架構(gòu)圖。
作為對一個復(fù)雜系統(tǒng)的負(fù)責(zé)人,必須親手領(lǐng)導(dǎo)和參與建造,才能有足夠的能力去負(fù)擔(dān)起這個責(zé)任。
因此需要至少使用60%的時間來參與開發(fā)的工作,并且建議從一開始上班就開始,雖然早上的效率很低,但是跟任何艱巨工作都一樣:萬事開頭難。
在你好不容易等待電腦慢吞吞的打開了所有的IDE、需求文檔、參考資料、工作計(jì)劃這堆要命的東西之后,你就邁出了最重要的一步,你會發(fā)現(xiàn)你不在需要在網(wǎng)上看微博和聊QQ來提振開始工作的激情,而會被某一個優(yōu)化代碼的靈感而激勵,或者被一個復(fù)雜而有趣的問題所吸引,從而更快的能投入到開發(fā)中。
堅(jiān)持打開電腦做的第一件事是打開IDE軟件,是這一切最重要的一步。
開發(fā)的工作內(nèi)容包括有:
1、提出非功能性需求
一般來說功能需求總是讓開發(fā)人員焦頭爛額的主要原因。但是實(shí)際上很多項(xiàng)目死在發(fā)布之后,卻是因?yàn)樾阅堋a(chǎn)品質(zhì)量、擴(kuò)展性、二次開發(fā)效率等非功能性需求沒認(rèn)真去解決而導(dǎo)致的。
主程作為經(jīng)驗(yàn)最豐富的成員,必須要利用自己曾經(jīng)的經(jīng)驗(yàn)和教訓(xùn)(在這里教訓(xùn)往往比經(jīng)驗(yàn)重要),提出那些自己折騰自己的“非功能性需求”,來保障整個項(xiàng)目在發(fā)布后不會轟然倒塌。
這是個吃力不討好的工作,因?yàn)槔习搴涂蛻敉粫г辜夹g(shù)人員在玩弄把戲,騙取更多的資源或者杞人憂天。如何說服這些家伙也許不是主程的工作,但是主程必須要以高度的責(zé)任心把問題放到臺面上來。溝通的工作也許讓項(xiàng)目經(jīng)理去做會更好,他們有一整套如何威逼利誘老板和客戶的戲法。
2、設(shè)計(jì)和修正軟件架構(gòu)
軟件架構(gòu)設(shè)計(jì)至關(guān)重要,而且工作繁重。不畫圖紙就敢開工的技術(shù)人員要么是天才要么是笨蛋。
對于團(tuán)隊(duì)來說,架構(gòu)在分工合作、避免風(fēng)險、提高質(zhì)量等多個方面有無可替代的作用。架構(gòu)要避免成為空洞的文檔,最重要的一步是有人來掌控和實(shí)施。而主程主持設(shè)計(jì)和修正的架構(gòu),并且親手實(shí)施,讓團(tuán)隊(duì)中的腹誹之徒完全無法避開,否則代碼將無法運(yùn)行!
所謂設(shè)計(jì)和修正架構(gòu),并不意味所有的文檔應(yīng)該一個人寫,而是指這個架構(gòu)的每個環(huán)節(jié),都是經(jīng)過主程決策同意的。當(dāng)然最好這些文檔能盡量由他撰寫,對于“菜鳥”團(tuán)隊(duì)來說,輸出這種文檔本身就意味著“權(quán)勢”,有助于主程建立個人威信——這種看起來有點(diǎn)骯臟的“政治”東西,在避免團(tuán)隊(duì)內(nèi)無止境的扯皮,以及穩(wěn)定那些隨時準(zhǔn)備跳槽的成員來說,都是相當(dāng)實(shí)用的。
3、難點(diǎn)代碼(關(guān)鍵需求)的開發(fā)
主程必須寫代碼,寫那些大家都認(rèn)為風(fēng)險大的代碼。
有的系統(tǒng)對于性能要求很高,他就必須去完成容易出性能問題的部分,比如IO操作或者設(shè)計(jì)數(shù)據(jù)庫索引。有些系統(tǒng)的需求非常飄忽,他就要去想辦法完成框架代碼或者腳本引擎,以便眾多小弟可以跟著產(chǎn)品人員疲于奔命。這種工作內(nèi)容會讓主程不必完全的讀過所有代碼,而能牢牢的“掌握”代碼,以免團(tuán)隊(duì)成員甩耙子的時候能充當(dāng)備胎。因?yàn)槿谌雸F(tuán)隊(duì)的代碼開發(fā),也是一個讓架構(gòu)設(shè)計(jì)從日常工作中真正控制系統(tǒng)的工作。而且主程代碼通常會被別人接觸,能直接教育其他團(tuán)隊(duì)成員,同時也能建立——威信。
4、救火和殺蟲
這個工作其實(shí)和代碼開發(fā)是一致的,如果沒有平日的開發(fā),通常緊急問題的解決也是比較難處理的。但是這個也有一個調(diào)試技巧的要求,比如要求會使用各種診斷工具。這些工具一般的開發(fā)人員可能會比較少使用。找問題的過程本身也可以提高團(tuán)隊(duì)其他人的技術(shù)水平。
二、培訓(xùn)
培訓(xùn)的工作應(yīng)該占用30%左右的工作時間。培訓(xùn)是穩(wěn)定團(tuán)隊(duì)人員最重要的手段。也是提高團(tuán)隊(duì)開發(fā)效率最有效的手段。工具、過程、制度、獎懲,這些都代替不了程序員一行行的去寫代碼,最直接的方法是讓他們做的更快更好,這些需要經(jīng)驗(yàn)和知識的積累。
1、代碼審查
關(guān)于代碼審查,有太多的論述。但是代碼審查還是一種“強(qiáng)迫”推行某種風(fēng)格或者技巧的手段,這是最真實(shí)的“控制”系統(tǒng)的手段。也是推廣知識和經(jīng)驗(yàn)最直接的手段。
一個人寫的代碼通常應(yīng)對的問題不會特別“廣泛”,因此只要審查其中一部分代碼,就能給大部分別的代碼帶來好處。
2、技術(shù)方案評審
什么事情應(yīng)該寫一個技術(shù)方案,然后進(jìn)行評審,這是一個關(guān)鍵的問題。
一般認(rèn)為開發(fā)時間在2周以上的單項(xiàng)工作應(yīng)該先做個方案。往往技術(shù)方案是系統(tǒng)架構(gòu)的完善和補(bǔ)充,或者是挑戰(zhàn)。所以主程的參與是非常必要的。
但是要注意不需要去做的太瑣碎,而是要提煉出“關(guān)鍵”的需求和“關(guān)鍵”的解決方案進(jìn)行評審,而這些“關(guān)鍵”往往不是功能,而是質(zhì)量上的需求,如這個系統(tǒng)的擴(kuò)展性,是否能方便后續(xù)開發(fā)等等。
也有可能在這些會議上會發(fā)生爭吵,但是決策人是主程的地位是不容動搖的。君子和而不同,每個程序員都可以擁有自己的看法,但是代碼必須能按方案運(yùn)行起來,主程必須經(jīng)常申明這點(diǎn)。
3、學(xué)習(xí)與講座
如果團(tuán)隊(duì)碰到問題,沒有新的方法和技術(shù)去解決,是不會提高開發(fā)效率的。就好像你用牛來耕地,不管用什么管理方法,都不會趕上機(jī)械化的速度。
而主程承擔(dān)著不斷突破自己的技術(shù)上限,介紹和推動團(tuán)隊(duì)使用更新的技術(shù)來解決問題的責(zé)任。抱殘守缺,思想僵化,最后會被團(tuán)隊(duì)成員所拋棄,而且也會讓團(tuán)隊(duì)的效能落后于業(yè)界,最后直接影響產(chǎn)品的生死。
每年學(xué)一門新語言,這個說法可能有點(diǎn)激進(jìn),但是這也是作為程序員應(yīng)該有的激情。
三、管理
管理等于權(quán)勢?管理等于溝通?管理等于文山會海?多年專業(yè)訓(xùn)練出來的技術(shù)人員如何去做管理?
管理的目標(biāo)是提高績效,如果和這個目標(biāo)無關(guān),而只是和“管理者”這個頭銜有關(guān)的事情,最好丟給別人去做,包括那個頭銜。
管理主要手段是創(chuàng)新:想出新的方法去解決問題,而不是繁雜的事務(wù)性工作!——一個專業(yè)秘書能比主程做的好一百倍。
技術(shù)工作的創(chuàng)新,最主要還是在技術(shù)工作里面,而不是跳出來說:做這個,做那個。
管理的事情如果超過10%的工作時間,等于說你更像一個項(xiàng)目經(jīng)理而非主程。
1、績效評定
以專業(yè)的意見來衡量別人的工作,這個負(fù)擔(dān)是無人能夠承擔(dān)的。這個工作往往是利益分配的一種手段。類似獎懲手段。這種管理方法已經(jīng)不是新事物了。
但是實(shí)際上技術(shù)人員對于績效往往持一定保留和曖昧的態(tài)度,因?yàn)檫@種事情難以很清晰的界定出來。需要判斷而非量度,才是績效的真正手段。
如果一定要打分,一共兩項(xiàng)足夠了:進(jìn)度、質(zhì)量,5分制即可。
更重要的事情是,告訴每個人主程的看法,告訴別人,怎樣做才是更好。或者告訴團(tuán)隊(duì),怎樣做才更有利于我們成功(發(fā)財(cái)、上市、贏得老板和客戶……)——把目標(biāo)清晰告訴團(tuán)隊(duì),發(fā)揮他們的主動性,是績效評定最重要的目標(biāo)。
2、需求評定
最讓技術(shù)人員頭疼的可能就是和客戶談判。這個事情實(shí)際上不應(yīng)該讓技術(shù)人員來傷心,有項(xiàng)目經(jīng)理就可以了。
而需求評定更多的是可行性的討論。主程如果參加每個需求評定,他要三頭六臂也搞不定,正確的做法應(yīng)該是具體開發(fā)的團(tuán)隊(duì)人員參加,而主程在開會前給與自己的意見,或者會后聽取參與者的總結(jié)。——這是了解別人做什么事的一個重要手段,但無需陷入太深,因?yàn)檫€有代碼評審和項(xiàng)目經(jīng)理的幫忙。
3、跨部門溝通
實(shí)在沒必要參加,能躲就躲,這是扯皮的天堂。讓項(xiàng)目經(jīng)理去吧,他們的專業(yè)技巧能讓這些事情更加有效。只要回來后讓項(xiàng)目經(jīng)理告訴你發(fā)生了什么事情就可以了。
4、進(jìn)度審核和任務(wù)分派
又是一個很有“權(quán)勢”的工作,實(shí)際上團(tuán)隊(duì)成員的情況大家都知道,決定誰應(yīng)該做什么事情并非需要很多時間去想的事情。所以大可以把方向性的意見告訴項(xiàng)目經(jīng)理,讓他去做。很多優(yōu)秀的開發(fā)者玩EXCELPROJECT之類的水平還不如只有一年工作經(jīng)驗(yàn)的秘書,別折騰自己了。
5、面試
如果真想幫忙,準(zhǔn)備一份有區(qū)分度的筆試題目吧。不靠譜的人太多,老板可不是花錢請你和他們聊天的。讓項(xiàng)目經(jīng)理去聊,不用擔(dān)心他們技術(shù)不強(qiáng),再不夠,也會比大多數(shù)面試者要牛X。他們搞不定的人,就是應(yīng)該雇傭的家伙。畢業(yè)生招聘怎么辦?只要看看他們課外活動是不是有搞些專業(yè)的事情就可以了,上進(jìn)心比別的東西都重要,HR會比主程看的更準(zhǔn),相信我。
6、各種會議
飯無好飯,會無好會,超過6個人的會議應(yīng)該堅(jiān)決抵制。如果你有一個程序等著你去寫,你一定無比痛恨這些會議,順應(yīng)你的內(nèi)心吧!上帝保佑你。
最后說說項(xiàng)目經(jīng)理的工作:
項(xiàng)目經(jīng)理就像下水道的清潔工,所有那些主程不愿意去做的事情,他們都彎下腰去認(rèn)真的把玩,實(shí)在是太偉大了。
既然如此,為何不讓他們擁有更好一點(diǎn)的頭銜呢?如果沒有他們?nèi)ヌ幚磉@些工作,任何一個主程都會被逼瘋掉,或者他們自己變成了項(xiàng)目經(jīng)理,讓團(tuán)隊(duì)損失了最強(qiáng)力的一臺代碼發(fā)動機(jī)。
一、進(jìn)度
1、指定工作計(jì)劃
2、進(jìn)度檢查和告警
3、工作總結(jié)和統(tǒng)計(jì)
二、資源
1、整合提供各種資源,如找DBA,IT,運(yùn)維人員,硬件,SVN權(quán)限,測試環(huán)境,福利,周末的活動……
2、面試:人員是最重要的資源,不是嗎?
3、資源談判:往往是和老板談判,讓別人明白現(xiàn)在的真實(shí)情況。又一個吃力不討好的差事,但是總需要人做。
三、溝通
1、需求評審:和需求方討價還價,項(xiàng)目經(jīng)理真是命苦啊……
2、組織會議或者用其他方式通知信息給所有人:小喇叭、大喇叭、全服廣播、世界頻道……
對于一個小型公司,職權(quán),頭銜,收益,往往會更加敏感。但是這些都不是讓項(xiàng)目失敗的理由。
一顆叫程序員的種子說:長大了我就是叫管理者的樹。這個錯誤的觀念只會讓這個種子永遠(yuǎn)無法發(fā)芽。
軟件開發(fā)是類似外科醫(yī)生的行業(yè),而不是血汗工廠,所以不需要手持皮鞭的經(jīng)理,而需要仁心仁術(shù)的神醫(yī)。
來源:本文內(nèi)容搜集或轉(zhuǎn)自各大網(wǎng)絡(luò)平臺,并已注明來源、出處,如果轉(zhuǎn)載侵犯您的版權(quán)或非授權(quán)發(fā)布,請聯(lián)系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點(diǎn)保持中立,對所包含內(nèi)容的準(zhǔn)確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點(diǎn)負(fù)責(zé),僅作分享之用,文章版權(quán)及插圖屬于原作者。
Copyright?2013-2024 JSedu114 All Rights Reserved. 江蘇教育信息綜合發(fā)布查詢平臺保留所有權(quán)利
蘇公網(wǎng)安備32010402000125
蘇ICP備14051488號-3技術(shù)支持:南京博盛藍(lán)睿網(wǎng)絡(luò)科技有限公司
南京思必達(dá)教育科技有限公司版權(quán)所有 百度統(tǒng)計(jì)