前言
至去年11月份從合伙創業中跳出來,已經快半年了,期間負責做了一個java項目。由於是C#轉java,許多技術知識需要邊學習邊使用,對項目整體、團隊成員代碼質量把控的精力
就沒有輕車熟路的C#玩的的那么嗨了。以至於,出現團隊成員注釋掉現有業務代碼實現新業務代碼的嚴重情況發生。現在項目階段性結束,來聊聊大多程序員家庭缺少的基礎能力:
團隊協作、遵守團隊規范。
何為優秀的程序員?
在網上搜索優秀程序員,出來一大堆優秀程序員所具有的特征:愛學習、掌握多種語言、有一定的文檔功底、代碼設計夠靈活、會經常備份、注意安全性等。很少提到責任、團隊合作、
溝通、團隊規范。在公司招聘考核項目中,也很少會涉及到團隊合作。很少會詢問前任公司代碼質量管理方面的問題。難道團隊合作與遵守團隊規范真的只是一個優秀程序員的佩純嗎?
非也,俗話說:眾人拾柴火焰高。工作中我們身在團隊,互相團結、積極向前發展,一個團隊,沒有團結的力量,企業的整體進步會需要付出更大努力。不怕虎生兩翼,就怕人起二心。
如果團隊人員代碼風格各異,隨意使用插件,代碼風格也迥異,最后出來的項目就是四不像,后期擴展與維護成本會呈幾何倍數遞增。只有懂得團結協作、遵守團隊規范的人,
才能明白團結協作對自己、對別人、對整個企業團隊的意義,才會把團結協作當成自己的一份責任,才是一個優秀的程序員。
為何會有大量的獨奏家存在?
就我所見、朋友談及,當前程序員大家庭很少會有團隊意識較強的優秀人員存在。造成這個結果的原因也較多,但是主要原因還是可以歸納的:
1、微小企業為生存掙扎,無多余或者不願付出為提高代碼質量所產生的成本。
2、許多程序員多數輾轉於各種中小企業之間,而中小企業都是靠業務驅動,對代碼質量要求不高,沒有較完善的代碼規范文檔和重視技術質量的企業文化,程序員逐漸養成習慣。
3、程序員也是人,是人就會唯利是圖。在團隊中過於為了表現自己而特立獨行,反而造成不好后果。
4、程序員專業從大學到工作,接觸社會的面就比較單一。以至於造成情商低,智商高的假象,最后得到社會大眾的公認。
5、程序員大多出自寒門子弟,社交基礎低,社會交際機會少。在社交中多受到情商低,智商高的熏陶,最終養成自行其是的風格。
6、技術管理人員不願意浪費精力去干得罪人的事情,且無法堅持實施團隊規范制度。
如何培養團隊合作能力?
最省事、直接的方式就是換血。把無培養價值的人員從團隊中剔除,招聘更優秀的程序員,讓新鮮血液影響整個團隊。話很超,可能會被很多同行臭罵,但是優秀的程序員效率更高,
相比一般程序員,效率的差距可能會出現好幾倍的差距。而且,優秀的程序員會更多的考慮項目整體影響,會主動交流,實現的功能BUG也會少很多。實際情況中,剔除這個辦法一般很難行得通,
畢竟都是人,關系不會搞得很死。如果換血行不通,就只有加強公司內部人才培養和建立完善的制度,並堅持執行制度。
許多公司技術領導時常抱怨現今程序員越來越多,但是想招到一個優秀的程序員缺難上加難,所以公司在招聘人員的時候都喜歡讓信得過的成員內推或者自己培養人才。培養人才無非3種:
第一種:招聘實習生,手把手的教;第二種:建立完善的代碼規范制度和審查制度,並嚴格實施;第三種:按期開培訓課程和技術座談會,讓每個成員都了解項目業務及技術構成,讓每個成員
都有參與感。
建立完善的代碼規范制度和審查制度:對代碼命名、架構分層、業務分塊做詳細的文檔規范。在代碼審查上,要求成員做交叉走查,並對走查的功能做優缺點評價;項目技術負責人按時對
成員代碼做抽查。許多同學認為這個有個毛用,真真實施起來,都是應付了事。我也知道是應付,但是這個制度會營造出一個謹慎編碼的氛圍,長時間下來,會或多或少的讓成員代碼風格一致,
並養成謹慎編碼的好習慣。
按期開培訓課程和技術座談會:這個值最好的辦法。按期讓項目主要負責人或成員講解項目業務和技術架構相關的知識。在座談會期間,讓每個人員對整個項目的業務和架構都有所了解,
讓每個人員都參與到項目技術改進上,在培養團隊意識,加強團隊凝聚力的同時,也讓代碼框架更加完善。
總結
團隊協作和遵守團隊規范的能力是一個優秀程序員必備的能力。一個公司想要大量擁有這種人才,減少成本靠招聘很難辦到。唯一的辦法就是打造相應的企業文化,通過企業文化營造出團隊合作
重要性的氛圍,改善程序員的意識,讓之養成習慣。