軟件工程師團(tuán)隊(duì)建設(shè)隨筆

團(tuán)隊(duì)建設(shè)是軟件項(xiàng)目能否高質(zhì)量、高效率研發(fā)和交付的基礎(chǔ),沒(méi)有好的團(tuán)隊(duì)建設(shè),項(xiàng)目有可能進(jìn)展緩慢,質(zhì)量低下,進(jìn)而造成交付日期延誤和用戶體驗(yàn)差等后果。所以一個(gè)好的團(tuán)建建設(shè)對(duì)公司和個(gè)人而言都是一項(xiàng)必須要重視的內(nèi)容,對(duì)提升公司的業(yè)務(wù)、個(gè)人的能力和團(tuán)隊(duì)的戰(zhàn)斗力提升都有至關(guān)重要的作用。
對(duì)于公司而言,我們的團(tuán)隊(duì)建設(shè)至關(guān)重要,要想把項(xiàng)目打造成公司的一面旗幟、一個(gè)標(biāo)桿、一把利刃,我們要努力搞好團(tuán)隊(duì)建設(shè),好的團(tuán)隊(duì)文化可以成倍的提升團(tuán)隊(duì)的戰(zhàn)斗力、創(chuàng)造力和生產(chǎn)力。
首先我們可以設(shè)定一個(gè)最基本的約束或者邊界,在約束或邊界內(nèi),個(gè)人以及團(tuán)隊(duì)可以自由發(fā)揮,挖掘潛能和發(fā)揮個(gè)人創(chuàng)造力,如果超過(guò)邊界那就表示不認(rèn)同公司的文化或者規(guī)則了,這時(shí)候領(lǐng)導(dǎo)就要對(duì)該員工進(jìn)行談話以糾正。
參考前人經(jīng)驗(yàn),我們可以主要設(shè)定以下3個(gè)約束:
1、 最終的評(píng)價(jià)標(biāo)準(zhǔn)取決于對(duì)產(chǎn)品線的貢獻(xiàn)
貢獻(xiàn)是第一要素,績(jī)效是建立在對(duì)項(xiàng)目真正的貢獻(xiàn)之上的,帶來(lái)了什么是最關(guān)鍵的,我們的貢獻(xiàn)是提高對(duì)業(yè)務(wù)的直接輸出,或者提高研發(fā)生產(chǎn)力,或者幫助他人解決難題或提升能力,或者提升團(tuán)隊(duì)建設(shè)等。
2、 以正確的方式做事
不接受低質(zhì)量的代碼,寫有靈魂的代碼,好品味是一個(gè)合格軟件工程師的標(biāo)配。
3、 要有技術(shù)目標(biāo)
這點(diǎn)要求我們的研發(fā)人員要有對(duì)技術(shù)和代碼的追求。如果一個(gè)人只是把工作當(dāng)成一個(gè)任務(wù),只是將代碼堆積起來(lái)完成功能,然后就吊兒郎當(dāng)不管不顧,這樣的人很危險(xiǎn),對(duì)團(tuán)隊(duì)來(lái)說(shuō)也很危險(xiǎn),他不僅自己不上進(jìn),進(jìn)而帶來(lái)一個(gè)壞的風(fēng)氣影響了別人:我吊兒郎當(dāng)照樣很好,這樣就會(huì)拉低別人的積極性,造成惡性循環(huán)。如果一個(gè)人對(duì)技術(shù)這件事本身缺乏熱情,這樣的人只會(huì)關(guān)注績(jī)效和工資,而不關(guān)注如何更有效率的做事。
這三點(diǎn)可以說(shuō)在任何一個(gè)積極進(jìn)取的IT公司的文化和發(fā)展的基石,沒(méi)有這三點(diǎn)公司未必發(fā)展不好,但是未必能利刃出鞘,打出一手好牌。
在這三點(diǎn)之上每個(gè)研發(fā)團(tuán)隊(duì)可以定義自己的規(guī)則以適應(yīng)自己團(tuán)隊(duì)發(fā)展的需要。
好的團(tuán)隊(duì)建設(shè)我總結(jié)了以下幾點(diǎn):
1、 建立代碼審查制度
所有的代碼都可以被code review。代碼審查能夠發(fā)現(xiàn)低質(zhì)量的代碼,這對(duì)我們團(tuán)隊(duì)的每個(gè)人都是一個(gè)促進(jìn),促進(jìn)我們寫高質(zhì)量的代碼,而高質(zhì)量的代碼又能提升研發(fā)效率和應(yīng)對(duì)需求變化的靈活性,又能促進(jìn)我們自己本身技術(shù)的提升。時(shí)間長(zhǎng)了之后就在團(tuán)隊(duì)內(nèi)部形成這樣一個(gè)文化:以寫低質(zhì)量的代碼為恥,同時(shí)大家又能自發(fā)的發(fā)現(xiàn)項(xiàng)目中低質(zhì)量的代碼,促進(jìn)代碼質(zhì)量不斷的提升。有的員工看到一處別人寫的一處代碼正好能用上,他就隨手拷過(guò)來(lái),以后凡是能用到這段代碼的地方都拷過(guò)來(lái),也不管這些代碼是干什么用的,或者為什么這些代碼要這樣寫,反正能實(shí)現(xiàn)既定的功能,導(dǎo)致項(xiàng)目中導(dǎo)出充斥著這樣很惡心的代碼,有時(shí)候還會(huì)導(dǎo)致代碼性能低下,這樣的情況應(yīng)該堅(jiān)決杜絕。
2、 建立合理分工制度
當(dāng)需求來(lái)臨時(shí),leader要分配任務(wù),這時(shí)候組員不可以對(duì)leader說(shuō)NO;如果leader覺(jué)得哪塊功能不好需要重構(gòu)或者改善,將任務(wù)分配給組員時(shí),組員不可以說(shuō)NO??傊?,組員要服從leader的分配。話又說(shuō)回來(lái),leader有時(shí)候也有分配不合理的時(shí)候,實(shí)在超出組員的能力范圍或者組員實(shí)在有難言之隱,這時(shí)候組員不要直接拒絕,可以心平氣和的和leader商量,如果和leader商量無(wú)果,再找更高的領(lǐng)導(dǎo)協(xié)商解決。如果組員發(fā)現(xiàn)leader故意刁難的話,可以直接找上級(jí)領(lǐng)導(dǎo)反饋。如果leader發(fā)現(xiàn)組員寫低質(zhì)量的代碼,leader有權(quán)要其改善代碼,如果組員有異議可以找上級(jí)領(lǐng)導(dǎo)反饋。組員如果有好的建議或者好的技術(shù)實(shí)現(xiàn),可以和leader商量對(duì)代碼進(jìn)行改善,如leader不同意,組員覺(jué)得點(diǎn)子很好,棄之可惜,可以找上級(jí)領(lǐng)導(dǎo)反饋??偨Y(jié)起來(lái):leader和組員都要有主人翁意識(shí),要有責(zé)任感,將自己負(fù)責(zé)模塊當(dāng)成一個(gè)產(chǎn)品,以提高產(chǎn)品質(zhì)量為榮,主動(dòng)積極的參與進(jìn)來(lái),而不是實(shí)現(xiàn)功能后就一推了之。還要明確自己的責(zé)任和義務(wù),做到分工明確。
3、 建立分享的氛圍
IT行業(yè)技術(shù)日新月異,變化之快讓人咋舌。每個(gè)人的精力有限,不可能每種技術(shù)都學(xué)的很深很廣。團(tuán)隊(duì)的每個(gè)人都有自己擅長(zhǎng)的或者別人不知道的知識(shí),這時(shí)候可以拿出來(lái)分享。有的人不愿意分享,怕分享了之后別人學(xué)會(huì)了自己的技術(shù)超越自己。其實(shí)這是一種錯(cuò)誤的認(rèn)識(shí)。分享也是一種提升,在分享的過(guò)程中你可以給別人講解,在你教別人的過(guò)程中你自己又會(huì)有新的領(lǐng)悟和更深刻的體會(huì),技術(shù)會(huì)進(jìn)一步鞏固和提升,這對(duì)自己和他人來(lái)說(shuō)一個(gè)雙贏的結(jié)果。在分享和學(xué)習(xí)的過(guò)程中,別人會(huì)變的更優(yōu)秀,而你自己也會(huì)變的更優(yōu)秀,和優(yōu)秀的人在一起工作只會(huì)更加優(yōu)秀,這是一個(gè)正能量不斷疊加的過(guò)程,值得大力推崇。我們可以建立一個(gè)分享文件歸檔中心,每個(gè)人的好的建議和分享的內(nèi)容可以放在歸檔中心,團(tuán)隊(duì)的任何一個(gè)人可以隨時(shí)翻閱,溫故而知新。如果有的人分享的東西確實(shí)很好,對(duì)團(tuán)隊(duì)的每個(gè)人都很實(shí)用,可以安排一定的時(shí)間(一節(jié)課)讓其給我們培訓(xùn),這樣的提升是很大的。
4、 建立學(xué)習(xí)的氛圍
技術(shù)的日新月異對(duì)IT從業(yè)者來(lái)說(shuō)是一種考驗(yàn)也是一種挑戰(zhàn),考驗(yàn)的是我們的耐力,挑戰(zhàn)的是我們的學(xué)習(xí)能力。如果一個(gè)軟件工程師在從不學(xué)習(xí)的情況還能屹立終身不倒,那只能說(shuō)“從目前為止還沒(méi)出現(xiàn)過(guò)”。我們應(yīng)該在團(tuán)隊(duì)中建立一種工程師文化,不要把自己當(dāng)成碼農(nóng),永遠(yuǎn)只在碼代碼,而是把自己當(dāng)成一個(gè)工程師,一個(gè)對(duì)技術(shù)和知識(shí)有追求的工程師。人人都應(yīng)該不斷的學(xué)習(xí),把自己從初級(jí)工程師變成中級(jí)工程師再變成高級(jí)工程師到最后變成架構(gòu)師或者專家,俗話說(shuō):一個(gè)不想當(dāng)專家的程序猿不是一個(gè)好的架構(gòu)師。
這是一種文化:仰望星空,人人都向著那座叫“架構(gòu)師”的巔峰披星戴月,日月兼程。
5、 建立鼓勵(lì)的氛圍
如果員工提出一個(gè)好的建議,改善了代碼質(zhì)量或產(chǎn)品質(zhì)量,提升了項(xiàng)目的技術(shù)水平,我們要對(duì)其進(jìn)行鼓勵(lì)和褒獎(jiǎng)。領(lǐng)導(dǎo)的鼓勵(lì)是必不可少的,如果一個(gè)員工付出的很多,領(lǐng)導(dǎo)視而不見(jiàn)或者永遠(yuǎn)不說(shuō)出來(lái),也會(huì)對(duì)員工造成一些困擾,好像自己付出的努力沒(méi)有得到肯定,時(shí)間一長(zhǎng)可能會(huì)挫敗他的積極性。適當(dāng)?shù)墓膭?lì)可以提升員工工作的熱情,讓他參與感更強(qiáng),情緒更積極,更能推動(dòng)團(tuán)隊(duì)文化的建設(shè)。此外,一方面你要表示自己看到了員工做的貢獻(xiàn)、在意他的貢獻(xiàn),另一方面你又要避免激勵(lì)過(guò)度而導(dǎo)致事情變質(zhì),把自發(fā)的行為變成了為激勵(lì)去做一件事情。
6、 建立溝通的氛圍
溝通能力在架構(gòu)師技術(shù)棧上排第二,由此可見(jiàn)溝通能力是多么的重要。那么對(duì)于一個(gè)團(tuán)隊(duì)而言,溝通自不必多說(shuō),康威定律即可說(shuō)明一切:設(shè)計(jì)系統(tǒng)的組織,其產(chǎn)生的設(shè)計(jì)和架構(gòu)等同于組織間的溝通結(jié)構(gòu),連架構(gòu)設(shè)計(jì)都要和溝通結(jié)構(gòu)匹配,所以加強(qiáng)溝通建設(shè)必不可少。其實(shí)溝通是貫穿于以上所說(shuō)的幾點(diǎn)的。溝通涉及的方面很多,包括項(xiàng)目各個(gè)階段各個(gè)不同設(shè)計(jì)人員的溝通,而在研發(fā)團(tuán)隊(duì)內(nèi)部,主要就是研發(fā)人員之間的溝通了,我們不應(yīng)該打壓大家發(fā)言的積極性,而應(yīng)該鼓勵(lì)大家發(fā)表意見(jiàn)的激情,對(duì)技術(shù)、研發(fā)、管理、領(lǐng)導(dǎo)、安排甚至娛樂(lè)都可以提意見(jiàn)和建議,好的可以采納。這樣大家就有一種存在感,對(duì)公司對(duì)項(xiàng)目的積極性也會(huì)提升。
7、 建立民主的氛圍
規(guī)則的制定不應(yīng)該由領(lǐng)導(dǎo)一手包辦,而是要團(tuán)隊(duì)員工共同參與,民主討論制定出來(lái),這樣符合共同利益。還有,給與每個(gè)員工自由發(fā)揮的空間。如果一個(gè)任務(wù)他能自己搞定的話,那就讓他自己去發(fā)揮,如果有任何問(wèn)題的話,在代碼審查階段可以發(fā)現(xiàn),但是這是建立在你對(duì)這個(gè)人能力充分信任的基礎(chǔ)上,如果這個(gè)人給你一貫的印象就是寫爛代碼,那么絕對(duì)不可以讓他自由發(fā)揮的,這只會(huì)導(dǎo)致代碼越來(lái)越爛。在平時(shí),如果研發(fā)工作確實(shí)完成,而且也沒(méi)有BUG修復(fù)任務(wù),這時(shí)候個(gè)人不要白白浪費(fèi)時(shí)間,要學(xué)習(xí),學(xué)習(xí)底層、語(yǔ)言、軟件開發(fā)或者項(xiàng)目管理知識(shí)都可以,只要能提升個(gè)人能力和對(duì)團(tuán)隊(duì)有益的都可以,學(xué)完之后可以分享和教別人。
8、 價(jià)值觀的建設(shè)
愿景,包含了我們對(duì)未來(lái)的期待,讓人激情澎湃,但又富含挑戰(zhàn)。團(tuán)隊(duì)的愿景建立在公司的愿景之上,公司的愿景建立在領(lǐng)導(dǎo)的決策之上。有了一個(gè)良好的愿景,我們?nèi)w團(tuán)隊(duì)人員就可以為了一個(gè)共同的目標(biāo)而努力奮斗,向著同一個(gè)目標(biāo)進(jìn)發(fā),團(tuán)隊(duì)成員都擰成一股繩,像一支飛翔的箭,向著遠(yuǎn)方飛去,直插靶心,一個(gè)沒(méi)有共同目標(biāo)的團(tuán)隊(duì)就像一盤散沙沒(méi)有凝聚力。其實(shí)好的愿景給與團(tuán)隊(duì)成員一個(gè)希望、一個(gè)信心的源泉、奮斗的動(dòng)力以及一個(gè)安定的依靠,有了力量的源泉,員工才會(huì)認(rèn)同企業(yè),認(rèn)同團(tuán)隊(duì),才有了長(zhǎng)久干下去的希望,才會(huì)付出努力把事情做好。舉例來(lái)說(shuō),當(dāng)年馬云為什么能拉來(lái)23個(gè)人和他一起創(chuàng)業(yè),不離不棄,主要就是馬云給他們描述了一個(gè)宏偉的藍(lán)圖,一個(gè)充滿希望的愿景,而馬云絕不像搞傳銷那樣滿嘴忽悠,馬云自己也是被這種藍(lán)圖和能量驅(qū)動(dòng),所以大家都滿懷希望的跟他干,事實(shí)證明他是對(duì)的。還有一點(diǎn),就是要讓大家認(rèn)識(shí)到,認(rèn)真做好事情是公司對(duì)每個(gè)員工最基本的要求,不認(rèn)真做事是不鼓勵(lì)甚至要受批評(píng)的。

總結(jié):
其實(shí)說(shuō)了這么多,一個(gè)團(tuán)隊(duì)的建設(shè)是建立在正能量不斷疊加的基礎(chǔ)上,不管對(duì)于技術(shù)、學(xué)習(xí)、寫代碼、研發(fā)、管理和溝通等各個(gè)方面,不要讓壞味道一直持續(xù)下去(壞味道:是指一個(gè)事情或者事物一直處于消極、怠慢、墮落以致最終損毀的狀態(tài)),如果在任何一個(gè)環(huán)節(jié)發(fā)現(xiàn)壞味道,我們要去努力改善甚至去除壞味道,建立在民主和開放的基礎(chǔ)上,每個(gè)人都有責(zé)任和義務(wù)這么做。在良性循環(huán)上,正能量不斷疊加,我相信團(tuán)隊(duì)的效率會(huì)越來(lái)越高,技術(shù)會(huì)越來(lái)越好,交付能力越來(lái)越好。
關(guān)于績(jī)效考核
軟件開發(fā)工作很難量化,比如用代碼行數(shù)來(lái)評(píng)估的話,就會(huì)造成員工故意寫很長(zhǎng)的代碼,比如用BUG數(shù)量,這也不準(zhǔn)確,有時(shí)候BUG數(shù)量受項(xiàng)目緊急程度、需求調(diào)研程度、溝通程度、對(duì)業(yè)務(wù)的理解程度等影響,比如評(píng)估代碼難易程度,有的時(shí)候開始的時(shí)候代碼很簡(jiǎn)單,但是隨著需求迭代加深,代碼的編寫越來(lái)越難,而且這種開發(fā)周期綿綿不斷,很難用時(shí)間或者技術(shù)能力去評(píng)估,這些都不足以體現(xiàn)一個(gè)人的編碼能力。真正的編碼能力其實(shí)leader最清楚。
即使量化辦法可以量化每個(gè)人的工作量,但是個(gè)人一些無(wú)形的能力也是至關(guān)重要的。比如,有的人有擅長(zhǎng)方面和一些其他方面的技術(shù)儲(chǔ)備,雖然在目前的開發(fā)中沒(méi)有充分發(fā)揮出來(lái),但是對(duì)項(xiàng)目后面的發(fā)展有很大幫助,或者在未來(lái)的開發(fā)中能發(fā)揮作用;一個(gè)人為了完成工作加班加點(diǎn)的工作和為了讓項(xiàng)目少一點(diǎn)BUG和風(fēng)險(xiǎn),對(duì)項(xiàng)目的關(guān)注細(xì)致入微,這也是一種無(wú)形的資產(chǎn),能減少很多不必要的麻煩,和一些做事吊兒郎當(dāng)和馬虎總出錯(cuò)的員工而言就是一種很大的能力差距了。還有的人為了項(xiàng)目盡快進(jìn)展,主動(dòng)溝通和協(xié)商解決,和一些事不關(guān)己高高掛起的員工而言就是一種能力的差距了。以上列舉的種種,都是量化考核所不能體現(xiàn)出來(lái)的。我的觀點(diǎn)是綜合評(píng)估(對(duì)每個(gè)人的硬實(shí)力和軟實(shí)力綜合評(píng)價(jià))和量化考核結(jié)合。為什么要出綜合評(píng)估,每個(gè)研發(fā)人員都有對(duì)應(yīng)的硬實(shí)力(技術(shù)水平)和軟實(shí)力(主動(dòng)能力、溝通能力、辦事效率等),硬實(shí)力對(duì)個(gè)人貢獻(xiàn)大,軟實(shí)力對(duì)團(tuán)隊(duì)貢獻(xiàn)大。如果一味的重視硬實(shí)力而不重視軟實(shí)力,將形成一種失衡的文化,給員工造成一種假象:我只要技術(shù)牛逼就可以了,其他可以無(wú)所謂,這對(duì)團(tuán)隊(duì)來(lái)說(shuō)是非常不利的。所以呢,我們綜合評(píng)估一個(gè)人要從多方面進(jìn)行考核,這樣更公平,優(yōu)秀的人才會(huì)更優(yōu)秀。
我們可以從以下三個(gè)方面進(jìn)行評(píng)估:
1、 綜合評(píng)估
我們可以每半年或者三個(gè)月進(jìn)行一次績(jī)效評(píng)估工作,這樣的評(píng)估工作可以持續(xù)幾天。
評(píng)估的時(shí)候所有的leader和領(lǐng)導(dǎo)都參加,自己的leader對(duì)自己人進(jìn)行打分和評(píng)估,然后大家討論,看是否公平,討論之后出一個(gè)綜合評(píng)估結(jié)果。評(píng)估的標(biāo)準(zhǔn),我們可以出一個(gè)評(píng)估的打分細(xì)則,按照細(xì)則進(jìn)行打分。
評(píng)估可以從以下幾個(gè)方面進(jìn)行:
1、工作態(tài)度
2、軟件質(zhì)量 (bug的等級(jí)和個(gè)數(shù),回歸次數(shù),重要模塊系數(shù))
3、工作難易度 (功能性,可靠性,易使用性,高效性,可維護(hù)性和可移植性,功能點(diǎn)數(shù),復(fù)雜度)
4、工作效率/能力 (完成百分比,工作經(jīng)驗(yàn))
5、主動(dòng)性
6、溝通能力
7、程序規(guī)范程度(文檔和注釋清晰度以及規(guī)范程度)
2、 量化評(píng)估
如果有量化考核標(biāo)準(zhǔn)的話,可以納入考核體系
3、最終評(píng)估
將綜合評(píng)估和量化考核結(jié)合,出一個(gè)最終評(píng)估,該評(píng)估就是該員工年度評(píng)審結(jié)果。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容