在軟件開發(fā)的傳統(tǒng)瀑布模型中,需求分析的第一個階段也是最重要的階段。這個階段包括以最清楚的形式搜集與客戶要求和定義有關(guān)的信息以及希望產(chǎn)品解決的問題。
這種分析包括了解客戶的商業(yè)背景和限制、產(chǎn)品必須執(zhí)行的功能、它必須實(shí)現(xiàn)的性能水平、以及它必須兼容的外部系統(tǒng)。用來了解這些問題的技巧包括客戶面談、使用情況和軟件特性“購物清單”。分析結(jié)果一般以正式需求規(guī)范的形式呈現(xiàn),并作為下一個步驟的輸入。
至少,這是它理論上的應(yīng)用情況。實(shí)際上,這個理論模型存在著許多問題,這些問題可能給分析過程的其它步驟造成延遲或連鎖性錯誤。本文討論項(xiàng)目經(jīng)理在這個階段中遇到的一些常見問題,并提出可能的解決方案。
問題1:客戶并不(確切地)知道他們需要什么
在需求分析階段,可能最常見的問題就是客戶對于他們的需要僅有一個模糊的概念,而要由你提出合適的問題、進(jìn)行必要的分析,把這個不確定的概念轉(zhuǎn)化成一個正式文本化的軟件需求規(guī)范;這個規(guī)范反過來又可用作一個項(xiàng)目計(jì)劃和工程結(jié)構(gòu)的基礎(chǔ)。
要解決這個問題,你應(yīng)當(dāng):
- 確保在項(xiàng)目開始之初,你用了足夠的時間來了解項(xiàng)目的目標(biāo)、交付成果和范圍。
- 確定客戶所使用的任何假設(shè),用批評的眼光評估項(xiàng)目給終端用戶可能帶來的好處和風(fēng)險(xiǎn)。
- 嘗試為項(xiàng)目寫出一份具體的遠(yuǎn)景陳述,包括它提供的特殊功能或給用戶帶來的好處,以及希望它解決的所有商業(yè)問題。
- 讓客戶閱讀、考慮并同意前面完成的軟件需求規(guī)范,調(diào)整他們的期待,保證雙方充分理解項(xiàng)目交付成果。
問題2:需求在項(xiàng)目進(jìn)行過程中發(fā)生改變
軟件開發(fā)項(xiàng)目中遇到的第二個問題是,隨著項(xiàng)目的發(fā)展,在第一階段定義的需求發(fā)生了變化。隨著開發(fā)不斷取得進(jìn)展,軟件原型得以確定,這時客戶能夠更加清楚的發(fā)現(xiàn)原始計(jì)劃中存在的問題并做出必要的糾正,于是需求也因而改變。需求發(fā)生改變還可能是因?yàn)橥獠凯h(huán)境的變化要求改造原始的商業(yè)問題,并因此有必要開發(fā)一個與最初建議的解決方案全然不同的解決方案。優(yōu)秀的項(xiàng)目經(jīng)理意識到這些可能性,并往往制定了后備計(jì)劃來應(yīng)對這些變化。
要解決這個問題,你應(yīng)當(dāng):
- 為變更請求的收集、分析和組合制定一個定義明確的過程,保證你的客戶知道他/她的切入點(diǎn)。
- 為每個開發(fā)階段設(shè)定轉(zhuǎn)折點(diǎn),超過這個轉(zhuǎn)折點(diǎn)就不允許進(jìn)行某些改變——例如,一旦一個模塊完成75%,就不允許進(jìn)行重大改變。
- 保證向所有股東清楚地通報(bào)變更請求(和變更批準(zhǔn)),以及進(jìn)行變更的根本原因,因而還要對主項(xiàng)目計(jì)劃進(jìn)行更新。
問題3:客戶的時間表不合理
我們常常聽到客戶這樣說:“這是一個非常緊迫的任務(wù),我們需要項(xiàng)目在X周內(nèi)完成?!背R姷腻e誤就是,沒有進(jìn)行詳細(xì)分析,并了解項(xiàng)目的范圍以及完成項(xiàng)目所必需的資源,就同意客戶的要求。未經(jīng)討論就同意不合理的時間表,你實(shí)際上在給客戶造成傷害:項(xiàng)目很有可能被延期(因?yàn)椴豢赡馨磿r完成),或存在質(zhì)量問題(因?yàn)槟阍谮s工,沒有進(jìn)行適當(dāng)?shù)臋z驗(yàn))。
要解決這個問題,你應(yīng)當(dāng):
- 把項(xiàng)目需求規(guī)范轉(zhuǎn)化成一個項(xiàng)目計(jì)劃、詳細(xì)的任務(wù)和各階段所需的資源,并為最佳情況、一般情況和最差情況建立模型。
- 保證項(xiàng)目計(jì)劃考慮到有效資源的限制,并為檢測和質(zhì)量檢驗(yàn)保留足夠的時間。
- 與客戶討論最終期限問題,用你計(jì)劃草案中的數(shù)據(jù)為你的陳述提供證據(jù)。如果你的計(jì)劃是合理的,則很有可能隨后的談判會極為成效,并對雙方有利。
問題4:溝通客戶、工程師和項(xiàng)目經(jīng)理間存在的隔閡
通常,客戶和工程師之間由于背景差異以及理解技術(shù)條款的不同方式,他們無法進(jìn)行有效地溝通。這可能導(dǎo)致混亂和嚴(yán)重的溝通問題;因此,項(xiàng)目經(jīng)理的一項(xiàng)重要任務(wù)——特別是在需求分析階段——就是保證雙方能夠準(zhǔn)確了解交付成果以及必須完成的任務(wù)。
要解決這個問題,你應(yīng)當(dāng):
- 在每次會議上做記錄,并向整個項(xiàng)目團(tuán)隊(duì)分發(fā)這些記錄。
- 注意用詞一致。從一開始就列出一份你要使用的名詞術(shù)語表,保證所有股東都有一份,并堅(jiān)持使用這些術(shù)語。
問題5:開發(fā)團(tuán)隊(duì)并不理解客戶組織的政治策略
Bolman和Deal這兩位學(xué)者認(rèn)為一位高效的項(xiàng)目經(jīng)理是一個把組織看作一個“競爭舞臺”的人,它理解權(quán)力、沖突、談判和聯(lián)盟的重要性。這樣的經(jīng)理不僅熟悉運(yùn)作和職能任務(wù),他或她還認(rèn)識到為通用目標(biāo)制定議程、建立觀點(diǎn)一致的聯(lián)盟以及向抗拒性的經(jīng)理說明一個特定職位合法性的重要性。
在給大型組織執(zhí)行大型項(xiàng)目時,這些技巧尤其重要,因?yàn)樾畔⒊37稚⒃诟魈?,因此需求分析往往會受到信任問題、內(nèi)部利益沖突和信息低效這些因素的阻礙。
要解決這個問題,你應(yīng)當(dāng):
- 審查現(xiàn)有的網(wǎng)絡(luò),確定你需要的信息和可能擁有這些信息的人。
- 培養(yǎng)同盟,發(fā)展關(guān)系,并系統(tǒng)地考慮你在組織內(nèi)的社會資產(chǎn)。
- 以符合他們自己經(jīng)歷的方式說明問題,說服客戶組織內(nèi)的反對者。
- 使用初始訪問/支撐點(diǎn)來推動議程。
- 希望上述討論能夠讓你意識到需求分析階段存在的可能缺陷,并提供一些避免這些缺陷的指導(dǎo)方法。祝你好運(yùn)!