我喜歡團隊中的成員的技能是能相互補,這麼一來,可以解決、處理不同的問題。另一方面,我也很喜歡團隊中的成員在特質上也是互補的。例如,有些人對事物的預測總是比較樂觀,就像是對開發時程、對實作的技術難度總是覺得樂觀,但相反地,也有一些人總是預測的比較保守。又好比,有些人擅長細節性的事務,可以把一些事情思考的很細緻,但卻不見得擅長全面性的觀察或規劃。而在團隊中有不同類型的人存在,能夠彼此互補,發揮更好的加乘作用。所以說,成員的特質若是足夠廣泛,其實常常能帶來好處。

不過即使如此,我對於一些時常持有某些負面心態的人,通常是敬而遠之。通常,你會希望團隊中的成員在心態上都是比較正面的,而某些負面心態下的想法,是很難起什麼作用,也沒辦法形成互補的效應。

悲觀與樂觀
一般我們會在軟體開發的過程中看到那些負面的心態呢?首先是在時程上的負面態度。對時程保守不算壞事,因為它可以提醒那些對時程樂觀的人,可千萬別樂觀過了頭。團隊中有對時程樂觀的人,也有對時程保守的人,兩邊的想法均衡一下所得到的中道,往往就是最後的真實結果。但是,保守和悲觀是兩回事。在以前的工作經驗中,偶而會遇到一些總是對時程很悲觀的同事,而且他們通常不只對時程悲觀,對是否能夠完成工作,也同樣悲觀。

所以在他們的眼中,對於討論中或是即將被指派的工作,時常會站在「很難完成」或甚至「無法完成」的觀點。即使覺得可行,也會對完成工作的時程極度的悲觀。有些人會有這種想法像是天生的特質,也有些人看起來是不願意承擔責任。他們寧可把時程估計得很長,避免自己無法如預期的完成工作時,因而招來指責。

「相信工作能完成」以及「相信目標能達成」是團隊中每個人都應該要有的信念,但是,有很意思的,有時候,還是會碰到那種喜歡在團隊中散布悲觀氣氛及消息的人。例如,「啊,問題很多啦,這個產品一定沒辦法做出來」或「這個專案絕對無法準時上線,我早就說過還有一堆問題」之類的對話或耳語,其實對團隊的士氣都難免造成傷害,甚至間接造成其他人同樣的悲觀化。

負面的心態影響團隊士氣
相信專案可以務實完成,是軟體開發團隊中要共同具備的信念之一。這並不是說專案設定了一個不務實的時程,或百分百無法達成的目標時,還盲目洗腦,讓成員相信可以達到,它應該是建立在一個務實的基礎上。專案進行難免有風險,但是若能在務實的基礎上評估完成的範圍及時程,那麼往往當你相信能完成時,通常完成的機會就高;相反地,若是你心裡一直想著無法完成,那麼往往最後就是招致失敗。這就像是一個「自我實現的預言」一樣。

團隊合作應該要有一個高昂的士氣,成員相信目標能達成,並且推動進度、勇往直前。當然,讓大家都能相信這個目標,而且鼓舞大家,是團隊領導者的責任,他就應像是個傳教士,有責任及義務讓每個人明白達成目標的意義以及可行性,團隊的開發目標就是他要傳的道。另一方面,無法認同團隊目標的人留在團隊裡只會造成傷害,失敗主義時常能擴散開來,最後拖跨整個團隊。

保守的心態其來有自
另外,只想確保安全的保守也是一個負面心態,這件事通常會發生在對時程的預估。在時程上採取極度保守態度的人,是因為他們不願意承擔錯失時程時的代價,當一個開發人員錯過工作時程的期限時,有時候,甚至時常會招來負面的指責或評價。這使得有些開發人員開始在時程的估計及承諾上趨向保守。

保守不見得是個壞事,它能平衡過度的樂觀和激進。但是,只是想確保自身安全無虞的保守,卻不可取。有些人在被要求估算時程時,總是將真實的估計值再乘以二或三,但真實的估計值反倒和實際生產力接近。可是為了自保,不論是在時程的估計或承諾上,都採取了十分保守的態度。最後實際的結果會是什麼呢?事實上,常常「自我實現的預言」會再度發威,最後工作完成的時間點落在最保守的估計上(甚至有時還延遲),等於真實生產力完全都被浪費掉了。

想確保自身安全的保守心態一方面源自於人格特質,另一方面也和團隊領導者或組織的文化相關。倘若,領導者或團隊文化不鼓勵成員挑戰,反而對於願意承諾時程但卻錯失的成員給予負面的對待,那麼很容易造成回饋的效應,使得團隊中的成員更不願意承諾,也更在心態上趨向保守。因此,團隊的領導者或文化的導引者應該創造一個允許犯錯的空間,讓大家願意接受挑戰,因為大家知道即使沒有挑戰成功,也不會帶來負面的結果。

過於被動,只做自己被分派到的事情,也會影響整個開發進度

另外「本位主義」也是一個令人不喜歡的負面心態。嚴格來說,「本位主義」下的人都會稱職的完成自己份內該完成的工作,但是,他們也不會越過這個範圍,也就是說,他只做他被規定、指派要做的事。但是軟體開發工作是環環相扣,不同的角色彼此之間不僅是相互合作,也是相互支援,而有互補的作用。但是,對一個「本位主義」的人說,別人如何他並不在意,只要他在工作責任上無懈可擊沒有缺失即可。

舉個例子來說,規劃產品的產品經理提出了開發的規格,開發人員明知規格中有未詳慮之處,到了實作階段會有問題,但是,基於本位主義,也不主動提醒,等到實際進入開發階段時,甚至完成有問題的開發之後,才雙手一攤「原來的規格就有問題,所以實作出來就是這樣,這並不是我的問題」。這就是典型的「本位主義」。

你不見得可以歸咎於他,但是他的本位心態把事情帶向更糟糕的局面。倘若他可以在一開始就指出規格上的問題,產品的規畫者就有機會在未有任何實作之前,就修正規格或是補足規格中所不全之處。而所有的修改愈早開始做,代價愈小。但將彌補這個錯誤的工作拖延到最後關頭,所以付出的成本就大多了,這就是本位主義帶來的傷害。

人非聖賢,開發團隊中的每個人都有可能犯錯,「團隊」的精神和意義即在透過合作,得到更多的生產力,同時也互相補足可能犯錯之處,而本位主義的想法,讓這種互相 「cover」 的可能性消失了。

怨氣沖天無助於解決事情,同樣影響士氣
本文最後要談的負面心態就是抱怨。現實的開發通常並不完美,自己會犯錯、別人也會。但好的態度應該是正面積極的來檢視所發生的問題,大家一起合作解決。而不是在檯面上或是檯面下不斷抱怨,像是抱怨剛接手的程式碼寫得糟糕,甚至用嘲諷的語氣來描述。

這並不是說抱怨不好,但只是抱怨或無止盡地持續抱怨,一點都不健康。就像接手一團爛碼,抱怨是人之常情,但是既然現實如此,也就正面積極一點來面對,看看怎麼逐步改善品質。其他人也不想整天看著、聽著抱怨,是吧?

本文中略談了負面的開發者心態,最後我想說的是,軟體開發是一件有創造性、挑戰性的工作,常持正面態度於工作中,可以讓這個工作更有樂趣,也讓自己的工作投入更有活動力。

專欄作者

熱門新聞

Advertisement