1. 程式人生 > >程式開發團隊---組建團隊篇

程式開發團隊---組建團隊篇

    我近期的文章都是一些讀後感,主要觀點來自於溫伯格大師,我只是用自己的語言來重新嘮叨一下,爭取做到短小精悍,爭取能讓同行們用最短的時間獲得最佳的學習效果。 我念大學的那幾年,IT行業湧現出求伯君、樑肇新王江民、王志東等等一些非常NBProgrammers,那個年代似乎崇尚個人英雄主義,但隨著時間的飛逝,軟體系統的規模日益增大,再NB的程式設計師也不可能單獨完成,程式英雄基本上不再出現,即使有過,也好象阿蒙這樣充其量就是一個滿腹牢騷怨天尤人的悲情角色,在阿蒙日以繼夜地進行反思之時,KingSoft公司的WPS Office 2005研發團隊莫明其妙地獲得了“2005·ZHTV珠海經濟年度人物”的大獎,阿蒙不才,冥思苦想之後還是找不到他們對珠海的經濟作過哪些貢獻? 廢話少說,言歸正傳! “一支程式開發團隊之所以成立,是為了承擔並完成某項由任何個人都無法獨立完成的任務”。在我看來,這是對程式開發團隊一個比較貼切的定義,通常在軟體企業裡,會有若干支開發團隊,它們因某一專案或產品而存在,專案完成了,團隊也隨之解散,程式設計師在各個團隊中得到不斷地學習與提高,除了技術能力,還有溝通能力、交際能力、協作精神等等,所以鄙人認為,團隊工作比孤軍奮戰更有助於個人的成長。
在現代的軟體企業中,分工合作正成為企業中一種工作方式的潮流而逐漸被更多的公司所提倡。因為只有團隊合作,才能將複雜的事情變得簡單,將簡單的事情變得容易,使做事的效率倍增,可以說,團隊合作正推動企業向簡單化、專業化、標準化的方向發展。在軟體這個特殊的行業,更需要如此,國內的軟體企業長不大,出不了好的產品,第一大原因就是管理,第二大原因可能就是沒有一個出色的團隊。 組建團隊的目的是希望通過最小的代價獲得最佳的開發效果。因此我們儘可能找到出色的程式設計師,並根據他們的特點與優點,進行適當的分工,團隊成員間需要相互補充,才能更好地實現團隊協作的功能。眾所周知,人與人的合作,不是人力的簡單相加,而是要複雜和微妙得多,溫伯格在這一方面總結了一個大致的規律:“由
3名程式設計師組成的團隊,只能夠完成1名能力相當的程式設計師所完成之工作量的2倍。另外,如果每個開發組分別由3名程式設計師組成,那麼基於同樣的原因,3個這樣的開發組協作完成的工作量,將是單個開發組的2倍,或者說是單個程式設計師所能夠完成的工作量的4倍。因此,假設某個工程由單個程式設計師需要8個月才能完成,如果我們希望在4個月內得到結果,那麼我們就需要派上3名程式設計師;而如果我們希望在2個月內完成工作,就必須分配出9名程式設計師。” 想想看,是不是有一定的道理?但這不是絕對的,在專案的程序中,有太多太多不確定的因素隨時出現,我們大多的專案總不能按時完成。剛開始做專案計劃時我們總喜歡一廂情願地將開發過程中的所有條件都設想為最好的,但在實際的開發過程中,總會冒出一些亂七八糟的事情,有人生病了,有個嘔氣了,有人離職了,有
PC總有故障,有一些BUG花太多的時間…… 能在一個出色的團隊中工作是一件很幸運很開心的事情,你不僅學到很多的知識,而且系統的成功開發也讓你很有成就感。那麼如何來組建程式開發團隊呢? 溫伯格認為:首先規劃出程式的理想結構,然後按照最優的方式,選取最合適的人選來承擔對應的工作。阿蒙非常贊同這個觀點,下面就讓我用一個EXAMPLE來闡述一下。阿蒙曾在一家通訊技術公司工作,負責過《GSM無線網路路測系統》的開發管理工作,整個系統的程式結構如下圖所示:   這是一個結構簡單的系統,但涉及到很多方面的技術與知識,資料從採集到解碼至顯示是一個看上去同時的過程,通常會採用三個執行緒進行分別處理,並做好多執行緒的同步問題。 首先對開發經理的要求很高,他必須富有開發經驗,而且在多執行緒技術、GSM網路優化技術、串列埠程式設計、圖形程式設計、GIS程式設計等方面必須有一定的經驗,才能很好地控制整個團隊的開發程序,做到“分得出去收得回來”,並對各個模組之間的介面進行正確的定義。 對其他程式的要求分別如下所示: 資料採集程式設計師:熟悉串列埠程式設計,對於GSM專業測試手機以及GPS進行很好的控制,保證資料採集的完整性與及時性; 資料解碼程式設計師:熟悉GSM協議以及各引數的含義,此人要求要細心,思考要嚴密,保證資料分析與解碼的正確性; 時域圖程式設計師:熟悉影象程式設計,對於各種資料能以使用者所喜歡的方式進行影象顯示,保證顯示的快速性與美觀性; 地理化程式設計師:熟悉MAPX程式設計,瞭解電子地圖,對於各種引數資料能在電子地圖上形象顯示軌跡; 報表程式設計師:呵呵,不說你也知了。 當然,除了以上所列的程式設計師,整個團隊還包括專案經理、產品經理、測試工程師等等,各個小組或成員之間最關鍵的就是溝通,並且大家都喜歡自已所負責的工作,不要犯類似“將一個GIS程式設計高手拿去搞資料採集”的錯誤,呵呵,當然除了瞭解每個成員的技術特點,他們的性格、態度、習慣等等也是我們要考查的一些因素。 古人云:人心齊,泰山移。我們也常說:“團結就是力量”。這個時代,個人英雄越來越少,這個時代更需要優秀的團隊。只有優秀的團隊使一個組織或一個企業朝著更高更遠的目標不斷邁進。 關注阿蒙下一篇文章《程式開發團隊---目標篇》