本文在騰訊內(nèi)部論壇被瀏覽達(dá)7347次互站,收藏615次琅轧,評(píng)論幾百條炸枣,曾經(jīng)是討論最熱烈的項(xiàng)目管理文章之一律歼。作為作者本身民镜,感覺(jué)這個(gè)話題可以討論的范圍非常大,希望能有更多朋友一起切磋探索技術(shù)團(tuán)隊(duì)的管理之道险毁。
資深程序員是團(tuán)隊(duì)中最強(qiáng)大的生產(chǎn)力制圈,但往往被不合理的工作安排浪費(fèi)掉。因此作為一個(gè)團(tuán)隊(duì)的技術(shù)的“頭”畔况,必須要有明確清晰的認(rèn)識(shí)离唐,把主要的事務(wù)性工作剝離出來(lái)。并且放棄大量的管理“權(quán)力”问窃,以提高團(tuán)隊(duì)開(kāi)發(fā)質(zhì)量和效率為最主要的目標(biāo)去安排自己的工作。一般來(lái)說(shuō)技術(shù)總監(jiān)其實(shí)會(huì)被要求做事實(shí)上是2個(gè)職位的工作:主程完沪、項(xiàng)目經(jīng)理(技術(shù)化)
因此必須明確此兩個(gè)職位的工作任務(wù)分割域庇。然后把項(xiàng)目經(jīng)理的工作嵌戈,安排給另外一個(gè)人做,當(dāng)然其職稱(chēng)可能同樣也得叫“技術(shù)總監(jiān)”或“主程”听皿,總之聽(tīng)起來(lái)越牛X越好熟呛。
而真正的主程(技術(shù)總監(jiān))則應(yīng)該投身于盡量多的技術(shù)工作中。而最重要的工作則是開(kāi)發(fā)——生產(chǎn)代碼和文檔尉姨。
主程的工作:
一庵朝、開(kāi)發(fā)
從來(lái)沒(méi)有一個(gè)資深的外科醫(yī)生會(huì)放下手術(shù)刀,而轉(zhuǎn)到手術(shù)室外面指手畫(huà)腳又厉。一個(gè)資深的程序員也不應(yīng)該離開(kāi)代碼和文檔的編寫(xiě)九府,而只是做做架構(gòu)圖。作為對(duì)一個(gè)復(fù)雜系統(tǒng)的負(fù)責(zé)人覆致,必須親手領(lǐng)導(dǎo)和參與建造侄旬,才能有足夠的能力去負(fù)擔(dān)起這個(gè)責(zé)任。因此需要至少使用60%的時(shí)間來(lái)參與開(kāi)發(fā)的工作煌妈,并且建議從一開(kāi)始上班就開(kāi)始儡羔,雖然早上的效率很低,但是跟任何艱巨工作都一樣:萬(wàn)事開(kāi)頭難璧诵。在你好不容易等待電腦慢吞吞的打開(kāi)了所有的IDE汰蜘、需求文檔、參考資料之宿、工作計(jì)劃這堆要命的東西之后族操,你就邁出了最重要的一步,你會(huì)發(fā)現(xiàn)你不在需要在網(wǎng)上看微博和聊QQ來(lái)提振開(kāi)始工作的激情澈缺,而會(huì)被某一個(gè)優(yōu)化代碼的靈感而激勵(lì)坪创,或者被一個(gè)復(fù)雜而有趣的問(wèn)題所吸引,從而更快的能投入到開(kāi)發(fā)中姐赡。堅(jiān)持打開(kāi)電腦做的第一件事是打開(kāi)IDE軟件莱预,是這一切最重要的一步。
開(kāi)發(fā)的工作內(nèi)容包括有:
1.提出非功能性需求
一般來(lái)說(shuō)功能需求總是讓開(kāi)發(fā)人員焦頭爛額的主要原因项滑。但是實(shí)際上很多項(xiàng)目死在發(fā)布之后依沮,卻是因?yàn)樾阅堋a(chǎn)品質(zhì)量枪狂、擴(kuò)展性危喉、二次開(kāi)發(fā)效率等非功能性需求沒(méi)認(rèn)真去解決而導(dǎo)致的。主程作為經(jīng)驗(yàn)最豐富的成員州疾,必須要利用自己曾經(jīng)的經(jīng)驗(yàn)和教訓(xùn)(在這里教訓(xùn)往往比經(jīng)驗(yàn)重要)辜限,提出那些自己折騰自己的“非功能性需求”,來(lái)保障整個(gè)項(xiàng)目在發(fā)布后不會(huì)轟然倒塌严蓖。這是個(gè)吃力不討好的工作薄嫡,因?yàn)槔习搴涂蛻敉粫?huì)抱怨技術(shù)人員在玩弄把戲氧急,騙取更多的資源或者杞人憂天。如何說(shuō)服這些家伙也許不是主程的工作毫深,但是主程必須要以高度的責(zé)任心把問(wèn)題放到臺(tái)面上來(lái)吩坝。溝通的工作也許讓項(xiàng)目經(jīng)理去做會(huì)更好,他們有一整套如何威逼利誘老板和客戶的戲法哑蔫。
2.設(shè)計(jì)和修正軟件架構(gòu)
軟件架構(gòu)設(shè)計(jì)至關(guān)重要钉寝,而且工作繁重。不畫(huà)圖紙就敢開(kāi)工的技術(shù)人員要么是天才要么是笨蛋闸迷。對(duì)于團(tuán)隊(duì)來(lái)說(shuō)嵌纲,架構(gòu)在分工合作、避免風(fēng)險(xiǎn)稿黍、提高質(zhì)量等多個(gè)方面有無(wú)可替代的作用疹瘦。架構(gòu)要避免成為空洞的文檔,最重要的一步是有人來(lái)掌控和實(shí)施巡球。而主程主持設(shè)計(jì)和修正的架構(gòu)言沐,并且親手實(shí)施,讓團(tuán)隊(duì)中的腹誹之徒完全無(wú)法避開(kāi)酣栈,否則代碼將無(wú)法運(yùn)行险胰!所謂設(shè)計(jì)和修正架構(gòu),并不意味所有的文檔應(yīng)該一個(gè)人寫(xiě)矿筝,而是指這個(gè)架構(gòu)的每個(gè)環(huán)節(jié)起便,都是經(jīng)過(guò)主程決策同意的。當(dāng)然最好這些文檔能盡量由他撰寫(xiě)窖维,對(duì)于“菜鳥(niǎo)”團(tuán)隊(duì)來(lái)說(shuō)榆综,輸出這種文檔本身就意味著“權(quán)勢(shì)”,有助于主程建立個(gè)人威信——這種看起來(lái)有點(diǎn)骯臟的“政治”東西铸史,在避免團(tuán)隊(duì)內(nèi)無(wú)止境的扯皮鼻疮,以及穩(wěn)定那些隨時(shí)準(zhǔn)備跳槽的成員來(lái)說(shuō),都是相當(dāng)實(shí)用的琳轿。
3.難點(diǎn)代碼(關(guān)鍵需求)的開(kāi)發(fā)
主程必須寫(xiě)代碼判沟,寫(xiě)那些大家都認(rèn)為風(fēng)險(xiǎn)大的代碼。有的系統(tǒng)對(duì)于性能要求很高崭篡,他就必須去完成容易出性能問(wèn)題的部分挪哄,比如IO操作或者設(shè)計(jì)數(shù)據(jù)庫(kù)索引。有些系統(tǒng)的需求非常飄忽琉闪,他就要去想辦法完成框架代碼或者腳本引擎迹炼,以便眾多小弟可以跟著產(chǎn)品人員疲于奔命。這種工作內(nèi)容會(huì)讓主程不必完全的讀過(guò)所有代碼颠毙,而能牢牢的“掌握”代碼斯入,以免團(tuán)隊(duì)成員甩耙子的時(shí)候能充當(dāng)備胎拿霉。因?yàn)槿谌雸F(tuán)隊(duì)的代碼開(kāi)發(fā),也是一個(gè)讓架構(gòu)設(shè)計(jì)從日常工作中真正控制系統(tǒng)的工作咱扣。而且主程代碼通常會(huì)被別人接觸,能直接教育其他團(tuán)隊(duì)成員涵防,同時(shí)也能建立——威信闹伪。
4.救火和殺蟲(chóng)
這個(gè)工作其實(shí)和代碼開(kāi)發(fā)是一致的,如果沒(méi)有平日的開(kāi)發(fā)壮池,通常緊急問(wèn)題的解決也是比較難處理的偏瓤。但是這個(gè)也有一個(gè)調(diào)試技巧的要求,比如要求會(huì)使用各種診斷工具椰憋。這些工具一般的開(kāi)發(fā)人員可能會(huì)比較少使用厅克。找問(wèn)題的過(guò)程本身也可以提高團(tuán)隊(duì)其他人的技術(shù)水平。
二橙依、培訓(xùn)
培訓(xùn)的工作應(yīng)該占用30%左右的工作時(shí)間证舟。培訓(xùn)是穩(wěn)定團(tuán)隊(duì)人員最重要的手段。也是提高團(tuán)隊(duì)開(kāi)發(fā)效率最有效的手段窗骑。工具女责、過(guò)程、制度创译、獎(jiǎng)懲抵知,這些都代替不了程序員一行行的去寫(xiě)代碼,最直接的方法是讓他們做的更快更好软族,這些需要經(jīng)驗(yàn)和知識(shí)的積累刷喜。
1.代碼審查
關(guān)于代碼審查,有太多的論述立砸。但是代碼審查還是一種“強(qiáng)迫”推行某種風(fēng)格或者技巧的手段掖疮,這是最真實(shí)的“控制”系統(tǒng)的手段。也是推廣知識(shí)和經(jīng)驗(yàn)最直接的手段仰禽。一個(gè)人寫(xiě)的代碼通常應(yīng)對(duì)的問(wèn)題不會(huì)特別“廣泛”氮墨,因此只要審查其中一部分代碼,就能給大部分別的代碼帶來(lái)好處吐葵。
2.技術(shù)方案評(píng)審
什么事情應(yīng)該寫(xiě)一個(gè)技術(shù)方案规揪,然后進(jìn)行評(píng)審,這是一個(gè)關(guān)鍵的問(wèn)題温峭。一般認(rèn)為開(kāi)發(fā)時(shí)間在2周以上的單項(xiàng)工作應(yīng)該先做個(gè)方案猛铅。往往技術(shù)方案是系統(tǒng)架構(gòu)的完善和補(bǔ)充,或者是挑戰(zhàn)凤藏。所以主程的參與是非常必要的奸忽。但是要注意不需要去做的太瑣碎堕伪,而是要提煉出“關(guān)鍵”的需求和“關(guān)鍵”的解決方案進(jìn)行評(píng)審,而這些“關(guān)鍵”往往不是功能栗菜,而是質(zhì)量上的需求欠雌,如這個(gè)系統(tǒng)的擴(kuò)展性,是否能方便后續(xù)開(kāi)發(fā)等等疙筹。也有可能在這些會(huì)議上會(huì)發(fā)生爭(zhēng)吵富俄,但是決策人是主程的地位是不容動(dòng)搖的。君子和而不同而咆,每個(gè)程序員都可以擁有自己的看法霍比,但是代碼必須能按方案運(yùn)行起來(lái),主程必須經(jīng)常申明這點(diǎn)暴备。
3.學(xué)習(xí)與講座
如果團(tuán)隊(duì)碰到問(wèn)題悠瞬,沒(méi)有新的方法和技術(shù)去解決,是不會(huì)提高開(kāi)發(fā)效率的涯捻。就好像你用牛來(lái)耕地浅妆,不管用什么管理方法,都不會(huì)趕上機(jī)械化的速度汰瘫。而主程承擔(dān)著不斷突破自己的技術(shù)上限狂打,介紹和推動(dòng)團(tuán)隊(duì)使用更新的技術(shù)來(lái)解決問(wèn)題的責(zé)任。抱殘守缺混弥,思想僵化趴乡,最后會(huì)被團(tuán)隊(duì)成員所拋棄,而且也會(huì)讓團(tuán)隊(duì)的效能落后于業(yè)界蝗拿,最后直接影響產(chǎn)品的生死晾捏。每年學(xué)一門(mén)新語(yǔ)言,這個(gè)說(shuō)法可能有點(diǎn)激進(jìn)哀托,但是這也是作為程序員應(yīng)該有的激情惦辛。
三、管理
管理等于權(quán)勢(shì)仓手?管理等于溝通胖齐?管理等于文山會(huì)海?多年專(zhuān)業(yè)訓(xùn)練出來(lái)的技術(shù)人員如何去做管理嗽冒?
管理的目標(biāo)是提高績(jī)效呀伙,如果和這個(gè)目標(biāo)無(wú)關(guān),而只是和“管理者”這個(gè)頭銜有關(guān)的事情添坊,最好丟給別人去做剿另,包括那個(gè)頭銜。管理主要手段是創(chuàng)新:想出新的方法去解決問(wèn)題,而不是繁雜的事務(wù)性工作雨女!——一個(gè)專(zhuān)業(yè)秘書(shū)能比主程做的好一百倍谚攒。技術(shù)工作的創(chuàng)新,最主要還是在技術(shù)工作里面氛堕,而不是跳出來(lái)說(shuō):做這個(gè)馏臭,做那個(gè)。
管理的事情如果超過(guò)10%的工作時(shí)間讼稚,等于說(shuō)你更像一個(gè)項(xiàng)目經(jīng)理而非主程位喂。
1.績(jī)效評(píng)定
以專(zhuān)業(yè)的意見(jiàn)來(lái)衡量別人的工作,這個(gè)負(fù)擔(dān)是無(wú)人能夠承擔(dān)的乱灵。這個(gè)工作往往是利益分配的一種手段。類(lèi)似獎(jiǎng)懲手段七冲。這種管理方法已經(jīng)不是新事物了痛倚。但是實(shí)際上技術(shù)人員對(duì)于績(jī)效往往持一定保留和曖昧的態(tài)度,因?yàn)檫@種事情難以很清晰的界定出來(lái)澜躺。需要判斷而非量度蝉稳,才是績(jī)效的真正手段。如果一定要打分掘鄙,一共兩項(xiàng)足夠了:進(jìn)度耘戚、質(zhì)量,5分制即可操漠。更重要的事情是收津,告訴每個(gè)人主程的看法,告訴別人浊伙,怎樣做才是更好撞秋。或者告訴團(tuán)隊(duì)嚣鄙,怎樣做才更有利于我們成功(發(fā)財(cái)吻贿、上市、贏得老板和客戶……)——把目標(biāo)清晰告訴團(tuán)隊(duì)哑子,發(fā)揮他們的主動(dòng)性舅列,是績(jī)效評(píng)定最重要的目標(biāo)。
2.需求評(píng)定
最讓技術(shù)人員頭疼的可能就是和客戶談判卧蜓。這個(gè)事情實(shí)際上不應(yīng)該讓技術(shù)人員來(lái)傷心帐要,有項(xiàng)目經(jīng)理就可以了。而需求評(píng)定更多的是可行性的討論烦却。主程如果參加每個(gè)需求評(píng)定宠叼,他要三頭六臂也搞不定,正確的做法應(yīng)該是具體開(kāi)發(fā)的團(tuán)隊(duì)人員參加,而主程在開(kāi)會(huì)前給與自己的意見(jiàn)冒冬,或者會(huì)后聽(tīng)取參與者的總結(jié)伸蚯。——這是了解別人做什么事的一個(gè)重要手段简烤,但無(wú)需陷入太深剂邮,因?yàn)檫€有代碼評(píng)審和項(xiàng)目經(jīng)理的幫忙。
3.跨部門(mén)溝通
實(shí)在沒(méi)必要參加横侦,能躲就躲挥萌,這是扯皮的天堂。讓項(xiàng)目經(jīng)理去吧枉侧,他們的專(zhuān)業(yè)技巧能讓這些事情更加有效引瀑。只要回來(lái)后讓項(xiàng)目經(jīng)理告訴你發(fā)生了什么事情就可以了。
4.進(jìn)度審核和任務(wù)分派
又是一個(gè)很有“權(quán)勢(shì)”的工作榨馁,實(shí)際上團(tuán)隊(duì)成員的情況大家都知道憨栽,決定誰(shuí)應(yīng)該做什么事情并非需要很多時(shí)間去想的事情。所以大可以把方向性的意見(jiàn)告訴項(xiàng)目經(jīng)理翼虫,讓他去做歹篓。很多優(yōu)秀的開(kāi)發(fā)者玩EXCELPROJECT之類(lèi)的水平還不如只有一年工作經(jīng)驗(yàn)的秘書(shū)初烘,別折騰自己了。
5.面試
如果真想幫忙,準(zhǔn)備一份有區(qū)分度的筆試題目吧么抗。不靠譜的人太多盲厌,老板可不是花錢(qián)請(qǐng)你和他們聊天的前联。讓項(xiàng)目經(jīng)理去聊喇勋,不用擔(dān)心他們技術(shù)不強(qiáng),再不夠别凤,也會(huì)比大多數(shù)面試者要牛X劈愚。他們搞不定的人,就是應(yīng)該雇傭的家伙闻妓。畢業(yè)生招聘怎么辦菌羽?只要看看他們課外活動(dòng)是不是有搞些專(zhuān)業(yè)的事情就可以了,上進(jìn)心比別的東西都重要由缆,HR會(huì)比主程看的更準(zhǔn)注祖,相信我。
6.各種會(huì)議
飯無(wú)好飯均唉,會(huì)無(wú)好會(huì)是晨,超過(guò)6個(gè)人的會(huì)議應(yīng)該堅(jiān)決抵制。如果你有一個(gè)程序等著你去寫(xiě)舔箭,你一定無(wú)比痛恨這些會(huì)議罩缴,順應(yīng)你的內(nèi)心吧蚊逢!上帝保佑你。
最后說(shuō)說(shuō)項(xiàng)目經(jīng)理的工作:
項(xiàng)目經(jīng)理就像下水道的清潔工箫章,所有那些主程不愿意去做的事情烙荷,他們都彎下腰去認(rèn)真的把玩,實(shí)在是太偉大了檬寂。既然如此终抽,為何不讓他們擁有更好一點(diǎn)的頭銜呢?如果沒(méi)有他們?nèi)ヌ幚磉@些工作桶至,任何一個(gè)主程都會(huì)被逼瘋掉昼伴,或者他們自己變成了項(xiàng)目經(jīng)理,讓團(tuán)隊(duì)損失了最強(qiáng)力的一臺(tái)代碼發(fā)動(dòng)機(jī)镣屹。
一圃郊、進(jìn)度
1.指定工作計(jì)劃
2.進(jìn)度檢查和告警
3.工作總結(jié)和統(tǒng)計(jì)
二、資源
1.整合提供各種資源女蜈,如找DBA描沟,IT,運(yùn)維人員鞭光,硬件,SVN權(quán)限泞遗,測(cè)試環(huán)境惰许,福利,周末的活動(dòng)……
2.面試:人員是最重要的資源史辙,不是嗎汹买?
3.資源談判:往往是和老板談判,讓別人明白現(xiàn)在的真實(shí)情況聊倔。又一個(gè)吃力不討好的差事晦毙,但是總需要人做。
三耙蔑、溝通
1.需求評(píng)審:和需求方討價(jià)還價(jià)见妒,項(xiàng)目經(jīng)理真是命苦啊……
2.組織會(huì)議或者用其他方式通知信息給所有人:小喇叭、大喇叭甸陌、全服廣播须揣、世界頻道……
對(duì)于一個(gè)小型公司,職權(quán)钱豁,頭銜耻卡,收益,往往會(huì)更加敏感牲尺。但是這些都不是讓項(xiàng)目失敗的理由卵酪。一顆叫程序員的種子說(shuō):長(zhǎng)大了我就是叫管理者的樹(shù)。這個(gè)錯(cuò)誤的觀念只會(huì)讓這個(gè)種子永遠(yuǎn)無(wú)法發(fā)芽。軟件開(kāi)發(fā)是類(lèi)似外科醫(yī)生的行業(yè)溃卡,而不是血汗工廠溢豆,所以不需要手持皮鞭的經(jīng)理,而需要仁心仁術(shù)的神醫(yī)塑煎。
關(guān)注PHP技術(shù)大全沫换,成長(zhǎng)不止一點(diǎn)點(diǎn)!
分享出去最铁,讓知識(shí)地帶無(wú)限蔓延讯赏!