一向認(rèn)為軟件開發(fā)就像是在搭房子或者說是在構(gòu)建一座宏偉的大廈,當(dāng)然這根據(jù)工程的大小而定。其實(shí)細(xì)細(xì)想來軟件工程的很多地方都是借助于建筑方面的知識,就從“工程”這個詞來說就是從建筑學(xué)引進(jìn)的,類似的還有設(shè)計模式等概念也是來源于建筑學(xué)。如此說來軟件的開發(fā)和建造房屋一樣,一般是多人合作完成的。如果您非要自己動手蓋一個小平房也不是不可以,但請注意那一定是一個足夠小的小平房。
其實(shí)要說起團(tuán)隊(duì)開發(fā)讓人最頭疼的不是什么技術(shù)問題,而是隊(duì)員之間的合作問題。尤其是遇到矛盾重重的團(tuán)隊(duì),那項(xiàng)目的進(jìn)度一拖再拖將是家常便飯。團(tuán)隊(duì)開發(fā)絕不是架個SVN拉幾個有水平的程序員就可以開始的事情!需要注意很多方面才有可能出色的合作完成一項(xiàng)工程。
l 給力的項(xiàng)目經(jīng)理(項(xiàng)目組長)
首先,項(xiàng)目經(jīng)理(項(xiàng)目組長)必須全面的了解項(xiàng)目的需求,根據(jù)需求和組員們商討出一套合理的解決方案來。在這個過程中遇到不同的解決方案項(xiàng)目經(jīng)理(項(xiàng)目組長)要敢于拍板,敢于承擔(dān)責(zé)任。無論選擇的對錯都要比不選擇要強(qiáng),選擇時畏首畏尾只會令項(xiàng)目延期,而選擇錯誤大不了下次升級版本。一般說來在能實(shí)現(xiàn)功能的前提下,用戶更加關(guān)心完成的日期而不是性能。因?yàn)槊客弦环昼娪脩魧浖芊駥?shí)現(xiàn)的信心就減小一分。
其次,項(xiàng)目經(jīng)理(項(xiàng)目組長)要有霸氣。相信每個團(tuán)隊(duì)都可能會遇到不配合的隊(duì)員,對于這樣的隊(duì)員盡量為他分配一些靈活性小的工作。如果隊(duì)員嚴(yán)重影響合作那么就需要項(xiàng)目組長(項(xiàng)目經(jīng)理)出面了,讓你干嘛就干嘛,不要廢話,出了事我擔(dān)著!畢竟在一個項(xiàng)目中項(xiàng)目經(jīng)理最大,項(xiàng)目如果出了問題客戶或老板不會去責(zé)怪一個程序員,他會直接劈頭蓋臉的罵項(xiàng)目經(jīng)理(項(xiàng)目組長)。所以在項(xiàng)目中隊(duì)員有義務(wù)也有責(zé)任聽項(xiàng)目經(jīng)理(項(xiàng)目組長)的安排。這也是為什么項(xiàng)目經(jīng)理(項(xiàng)目組長)在招人的時候格外注重隊(duì)員的合作能力的原因(是否聽從安排也屬于合作能力的一種),招個不聽話的人是多么郁悶的事情。
l 敢于否定自己
在項(xiàng)目的設(shè)計階段,大家一起商討具體的解決方案。很多時候大家是為了面子而不愿意否定自己的解決方案。其實(shí)這很容易理解,大家都是從程序員走過來的,程序員的通病就是常常盲目欣賞自己的代碼,在軟件設(shè)計的時候依舊“本性”難易,對于自己的設(shè)計不忍拋棄。一旦別人說自己的設(shè)計的有問題,恨不得馬上和其大吵三百回合。爭論,對于軟件的設(shè)計絕對是好事,越爭論對軟件的需求、設(shè)計越清晰,“辯則明”就是這個道理。但是必要的時候(大多數(shù)人不肯定自己的時候)就應(yīng)該好好的想一想:爭論是因?yàn)槊孀舆€是因?yàn)樽约旱南敕ㄕ娴氖峭昝赖?、無懈可擊的?難道別人的想法真的是不可就要的、爛到不行的?如果是前者,無論你是誰(普通組員也好項(xiàng)目組長也罷)為了整個項(xiàng)目、為了團(tuán)隊(duì),請放下自己的面子,否定自己?。。?/span>
l 不要正面否定他人的意見
無論什么時候都不要正面否定組員的意見,就算你是項(xiàng)目組長(或者項(xiàng)目經(jīng)理)也不行!
在項(xiàng)目設(shè)計階段,當(dāng)組員為系統(tǒng)提出其他的見解的時候,如果你覺得合理那自不必說表示贊同即可。如果覺得不合理,你要做的僅僅是把你的觀點(diǎn)擺出來和他的觀點(diǎn)對比,讓團(tuán)隊(duì)所有人進(jìn)行討論、選擇,到底哪個更有利于軟件的實(shí)現(xiàn)。
一旦項(xiàng)目設(shè)計完成,無論組員有任何好的方案都不應(yīng)該采用?。?!這時候要做的只是記下來為以后升級系統(tǒng)做準(zhǔn)備,這也是為什么大公司的軟件(例如windows系統(tǒng))往往在上一個版本還未發(fā)行的時候下一個版本就已經(jīng)開始準(zhǔn)備了。很多時候開發(fā)人員就是在開發(fā)的過程中產(chǎn)生了更好的解決方案。好的解決方案——記錄下來下次系統(tǒng)升級就從些方面做起。
為什么設(shè)計完成后不能“完善”?
如果在項(xiàng)目設(shè)計完成后再去修改設(shè)計,那么很有可能對項(xiàng)目其他部分造成影響。整個系統(tǒng)經(jīng)過了長時間的設(shè)計可以說很少再有前后矛盾的地方。如果突然改變某一方面的設(shè)計,很大幾率會造成牽一發(fā)而動全身的結(jié)果,甚至因?yàn)檠刂@一處小小的改動走下去而使得整個軟件前后矛盾,最終導(dǎo)致推倒從頭再來的惡果。(還有什么比重頭再來更糟糕??。。?/span>
l 善于利用第三人避免“踢皮球”
不得不說的是任何詳細(xì)設(shè)計文檔,任何UML圖都不會把系統(tǒng)的各個細(xì)節(jié)照顧到。畢竟文檔以及UML僅僅是建模,一個大概的樣子而已。這樣一來難免會有細(xì)節(jié)部分沒有涉及到如果非常不幸,這些細(xì)節(jié)恰恰是在兩個開發(fā)者任務(wù)之間那就麻煩了。相互推諉責(zé)任,相互“踢皮球”是不可避免的,類似下面的話就會變成團(tuán)隊(duì)的主要語言。
A:“你的方法中怎么沒有……的數(shù)據(jù)處理啊,這樣傳給我的我還得再處理!”
B:“處理這個數(shù)據(jù)不應(yīng)該是你做的么?”
A:……
可能無論誰處理一下這個數(shù)據(jù)僅僅需要1個小時,但是爭論到底是誰的責(zé)任卻會花費(fèi)數(shù)小時,這也是導(dǎo)致團(tuán)隊(duì)開發(fā)進(jìn)度緩慢的原因之一。但是如果有另一個人在場(要是項(xiàng)目經(jīng)理最佳),無論第三人到底向著誰,這場“戰(zhàn)爭”雙方人員比例肯定是2:1。這樣一來對于整個項(xiàng)目來說會大大縮短不必要的爭論時間。
整個預(yù)期對話如下:
A:“你的***方法是不是沒有處理……數(shù)據(jù)呀?”
B:“這個數(shù)據(jù)處理應(yīng)該在你哪吧,C你說對么?”
C:“按道理來說,這應(yīng)該是B的責(zé)任,你看啊我是這么認(rèn)為的……”
A:“我也是這么認(rèn)為的,還有就是……,B你說呢?”
B:“好吧,我這就去加”(雖有一千個不愿意,雖有一萬個罵娘,但是……你懂得?。?/span>
l 溝通的方式無比重要:Change your words,change your world(點(diǎn)我呀)
要注意自己的說話方式,同樣的意思不同的表達(dá),效果不同。不用或少用第二人稱,要多用“我們”、 “咱們”、“您”或者直接用昵稱(*哥、*姐等等)之類的代詞開頭。試比較下面的句子
方式一:“你為什么不這么寫這個方法?”
方式二:“咱們?yōu)槭裁床贿@么寫這個方法?”
毫無疑問第一句帶有責(zé)怪的語氣,盡管你說的時候可能沒有這個意思,但是聽者會很容易這么認(rèn)為。如果再加上任務(wù)繁重、心情煩躁,那么這勢必會造成團(tuán)隊(duì)內(nèi)部的不和諧。
無論自己的心情是多么的不好,請使用禮貌用語!試比較如下不同的對話。
對話一:
A:“你的那個方法寫完了沒有啊,快一點(diǎn)??!哥等著測試呢!”
B:“哦”(TMD跟誰充哥呢,慌你妹,趕死??!就不給你寫?。?/span>
對話二:
A:“*哥(*姐)咱們的那個**方法實(shí)現(xiàn)了沒有呀,拜托稍微快一點(diǎn)啊,你那一搞定我這就基本可以完工了,完事兒咱一起去喝茶啊。”
B:“好的呀,馬上啊~~”
一樣的意思兩種不同的表達(dá)方式,感受就截然不同。第一種很難讓人接受,正常的人聽了多少會不好受,雖然括號里面的話并沒有說出口,但是那已經(jīng)影響到了團(tuán)隊(duì)內(nèi)部的和諧氛圍。要盡量多用第二種那沁人心脾的話語才能使團(tuán)隊(duì)更有戰(zhàn)斗力!
其實(shí)關(guān)于禮貌用語方面中國人普遍做的不好,很多人認(rèn)為大家都是自己人,那樣說話未免太虛假,恰恰相反正因?yàn)槭亲约喝怂圆鸥有枰鹬乇舜?!從接觸的外國信息(例如外文、美劇)來看,在國外無論是不認(rèn)識的人之間,還是親的不能再親的親人之間都是非常尊敬對方的。雖說中國是什么“禮儀之邦”但是國內(nèi)外對中國人禮貌方面評價普遍不高。我想這也可能是為什么中國造不出大型軟件(操作系統(tǒng)、數(shù)據(jù)庫等等)的原因之一吧。缺乏友好的溝通,組員之間彼此不服氣、整個團(tuán)隊(duì)矛盾重重、相互使絆,那這個團(tuán)隊(duì)還合作個磷?。。?!
以上幾方面是自己在合作時候的感受,希望可以幫助您的團(tuán)隊(duì)更好的合作,請牢記:沒有凝聚力的團(tuán)隊(duì)最終的結(jié)果必是“食盡鳥投林,落了片白茫茫大地真干凈!”