幾個月前,公司委派我負(fù)責(zé)一個難啃的骨頭式軟件開發(fā)項目。公司把我從一線開發(fā)設(shè)計組調(diào)到項目需求組,主要負(fù)責(zé)客戶需求調(diào)研、確認(rèn)和溝通的管理工作。對于此項工作我原來認(rèn)為壓力并不大,因為對于軟件開發(fā)的需求調(diào)研我可謂輕車熟路,加之自己有一線開發(fā)和設(shè)計的經(jīng)驗,工作起來應(yīng)該會是一帆風(fēng)順的。但沒有想到的是才過了一個月左右,我卻發(fā)現(xiàn)自己陷入了溝通管理的困境之中。
在我的多年開發(fā)經(jīng)驗中,我深知道溝通不當(dāng)不僅會造成需求失真,而且還會給項目帶來嚴(yán)重的成本損害,甚至?xí)?dǎo)致項目失敗。例如,如果需求在一開始就不明確,項目將會無可避免的面臨不斷的變更,從而導(dǎo)致工期滯后和成本倍增,并最終可能導(dǎo)致項目失敗。而且任何一個需求分析上的錯誤,都將會在以后的項目工作中要付出50-100倍的代價來補(bǔ)償。因此,在項目的開始階段時,我先在項目需求組內(nèi)召開了2次頭腦風(fēng)暴會議,然后帶著問題到該客戶各部門進(jìn)行實地調(diào)研需求。在經(jīng)過艱苦的實地考察和了解后,總結(jié)出一份詳細(xì)的需求調(diào)查報告。但是在開發(fā)組進(jìn)行開發(fā)的一個月后,客戶方又提出了對需求的重大更改。由于客戶堅持更改,開發(fā)組只好調(diào)整了開發(fā)計劃。在之后的6個月里,由于客戶新的變更還是會不斷的提出,頻繁的需求變更最終使該軟件開發(fā)項目不得不以宣布項目失敗而收尾。
在總結(jié)和反思項目失敗的原因時,我意識到自己在處理需求溝通管理時犯了一個很大的錯誤。按照一般的軟件開發(fā)項目規(guī)律,客戶方應(yīng)該有一個項目統(tǒng)一的接口人,開發(fā)方的需求調(diào)研組只需要與該客戶接口人交接和溝通就行。這樣不但可以避免與客戶方的多頭溝通,而且可以保證開發(fā)方的根本利益。但是本項目的客戶方根本就沒有一個統(tǒng)一的項目接口人,使到我們項目需求組在涉及到需求確認(rèn)或變更時,都需要和客戶方的多個部門進(jìn)行不斷的溝通和確認(rèn)。最慘的是這種多頭溝通不但沒有獲得客戶高層領(lǐng)導(dǎo)的認(rèn)可,而且多頭溝通的結(jié)果往往是相互重復(fù)或相互矛盾的。在我意識到是自己陷入了與客戶溝通管理的泥潭之中時,但卻已經(jīng)回天無力了。
什么是開發(fā)項目的溝通管理泥潭?
軟件開發(fā)項目的失敗有很多是由于需求混亂和溝通不良造成的。簡單的說,就是溝通對于軟件開發(fā)項目來說有著特殊意義。在成功的項目中人們可能感受不到溝通所起的重要作用,但在失敗的項目反思中卻往往提到溝通不暢的危害,而且也往往把溝通不良作為是項目成功路上的最大攔路虎。因此,在軟件開發(fā)項目的需求調(diào)研中,有效的溝通管理顯得尤為重要。這是因為項目需求混亂和多頭溝通的原因也許有很多,但是這些問題往往是由于溝通管理不當(dāng)所造成的。
(1)溝通接口管理不清晰,需求易呈現(xiàn)多樣性
在這個失敗的項目中,給我最大的經(jīng)驗教訓(xùn)是:如果項目的溝通接口管理不清晰,就會形成多頭溝通和多頭意見,導(dǎo)致許多該提出的需求反而未能得到有效提出,或提出了許多相互矛盾的需求。這里所說的溝通接口管理包括雙方的溝通接口人員的責(zé)任管理,也包括雙方不同層面接觸時的溝通接口計劃的管理。
對于需求簡單的軟件開發(fā)項目來說,相對的與項目需求有關(guān)的部門和人員也只有幾個,直接溝通就很容易弄清楚真實需求。而對于相對復(fù)雜的開發(fā)項目來說,各部門和人員的需求也相對的復(fù)雜和繁多,而且可能都是緊密聯(lián)系的,在流程上一環(huán)扣一環(huán)。當(dāng)任何一個環(huán)節(jié)出現(xiàn)問題時都將影響到其它子項目需求的實現(xiàn),也可能導(dǎo)致整個項目的失敗。而且,子項目需求越多,需求的相互影響就越復(fù)雜。
(2)溝通傳遞層次太多,是深陷溝通泥潭的主因
在這個項目的需求調(diào)研中,客戶方的組織結(jié)構(gòu)對溝通效果影響之大也是我之前所沒有想到的,這也是陷入需求溝通泥潭的重要原因之一。由于客戶的組織