軟件項目如何控制需求蔓延
發布時間:2016/5/16 9:31:00
對于一名項目經理來說,做出讓客戶滿意的產品是我們的終極目標。但實際情況會是這樣嗎?現實,我們在項目開發過程中會遇到各種問題。
需求范圍不明確
合同中規定的內容往往都是模糊不清的,需求不明確,或者只有幾行說明,而且還可能有大斷的套話、官話。對于項目參與者往往對客戶業務不一定了解,如果對客戶真正想要的需求沒有真正了解,往往會導致后期無何止的修改。
需求理解不一致
我們經常會遇到,按照客戶書面上記錄的需求進行開發后,客戶卻并不認可,而實際情況,客戶對自己寫的書面內容也并無異議。原因是對同樣的內容客 戶的理解與我們的理解不同。例如,需求中寫道:“購物后付款”,開發人員開發出來的是用戶選擇好商品進入購物車直接付款。而客戶實際想要的是到購物車付款 前先向客戶發送一條短信驗證碼,讓購買人二次確認無誤后再付款。同樣的文字,對細節的理解可能就是不同的,但實現的細節客戶提供的需求里可能根本就沒有 提。
有些需求并沒有直接寫出來
中國人喜歡儒家思想,話多為隱晦而不直白的說出,客戶提的多是自己期望解決的需求,而對于最基本需求往往不說,因為他認為你就應該有。如做一款手機,手機打電話的功能客戶是不用說的;再如,智通面包機,做面包的功能也是不需要說的,他只會說如何智能法。
項目結束前客戶總有提不完的需求
客戶總是會在結項前提出各種需求,前期沒有討論過的各種需求都會在這個時候冒出來,讓項目被動受制。這種情況原因一般有兩種,一種是在項目開發 過程中沒有與客戶充分的溝通。另一種就是客戶生怕項目一結束付款,你們就不會再很好的支持我們了。那么所有需求不論重要與否,你都要在結束前給我做完。
項目經理無條件的遷就客戶
雖然項目成功的標志是客戶滿意度,但無條件的遷就客戶最終可能導致項目預算超期或時間超期,反而會導致項目失敗。客戶在提一條新需求時可能自己 都沒有想清楚,也可能只是他的靈光一現,許多需求可能只是冗余需求。客戶往往不懂程序,隨便說出的需求,可能讓我們付出很大的代價。
溝通不順暢,老吳以前做項目時也經常遇到對計算機一點不懂的客戶,他們的許多想法根本無法實現,跟他解釋他又很難理解,最后弄得好像我們什么都做不了似的。對于這種客戶有時會讓我們有種無力感。
一個項目的成功需要多方面原因,人力資源、需求范圍、項目成本、進度控制、質量監督、風險監控、資源采購、干系人溝通,每個方面出問題都可能會導致項目的失敗,所以項目管理也要有一套系統的管理辦法。對于無邊界的需求蔓延,我們應該怎么辦?
上面我們已經提到了可能導致需求的不可控原因,哪我們來說下具體可操作的解決辦法吧。
確定項目范圍
項目一定要有清晰的目標、準確的方向,大海航行靠舵手,項目經理要有把撐好項目范圍的能力,盡量把項目需求讓所有項目干系人(范圍相關的所有 人)知曉,尤其要得到客戶的認可,必要時要讓用戶確認。以前經常聽有的項目經理說:“需求最后一定要讓客戶領導簽字”,老吳本人認為這有點難度,以前我做 政府類項目時哪個領導愿意簽字的,誰愿意背這個責任,還有真要有必要需求增加時,簽了字如何增加,客戶會有一百個不愿意。如果你真有這能力,能弄到客戶簽 字哪對項目是極大的幫助。
多問問為什么
對于客戶每提出的新需求,我們盡量多了解他的目的是什么,多問、多想,當我們知道客戶的終極目標時,我們就可以主導客戶需求了。同時,我們了解了客戶提此需求的目的后也有利于我們對需求的更好把握,不至于項目需求出現偏差。
需求理解要一致
項目經理要對項目進行跟進和監控,需求要很好的貫徹到每個人,不要出現理解偏差。記得看過一篇圖文的短文,大致意思是客戶想要的產品、項目經理 理解的產品、設計人員設計的產品、開發人員要做成的產品、開發人員最后做出來的產品、測試人員看到的產品都不一致。每個人在信息傳遞過程中讓需求不斷出現 損耗和變形。需求理解的一致性是項目成功的基礎,在項目管理的各個階段,要讓所有相關人正確的了解和把握需求。
要讓客戶參與到項目的各個階段
項目經理要拉著客戶參與到項目的各個階段,需求分析、總體設計、詳細設計、編碼、測試,要讓客戶參與到項目的每個階段,并隨時讓客戶了解和提出 自己的真實想法。這樣就不會導致項目在最后時客戶提出各種需求,變被動為主動。尤其是在需求分析和設計階段,當整理完需求文檔和設計文檔時,一定要請客戶 一起參與評估,以避免需求理解不一致,需求范圍不確定等問題。我們以前常提敏捷軟件開發方法,敏捷開發又不至于項目出現更大問題的辦法就是讓客戶隨時參與 項目的各個階段,讓客戶與我們的項目管理人員一起把關。
要讓客戶對需求進行確認。當多次與客戶確認需求后,盡量讓客戶簽字認可,如不能簽字也盡量讓客戶方領導在正式場合當面確認。
這樣的好處有:
可以有效的控制需求,當客戶再有想加的需求時總不至于那么理直氣壯;
如客戶真要加需求時,我們可以因需求變更而提出一定的經濟補償;
如果需求增加了,項目經理可以憑借著簽字在公司內部規避自己的責任,畢竟客戶以前是認可的,這回再提增加需求,就不是項目經理能力范圍了,可以請領導出面;
有了客戶確認的需求,項目組可以放心的去完成項目,以減少需求變更所帶來的影響。
做好服務,要讓客戶信任我們
客戶之所以在項目結束前盡量讓我們把所有能想到的做好,有時還提出各種刁難,就是怕我們在項目結束后就不能很好的給予支持了。對于公司和團隊, 我們要建立完整的服務機制,要讓用戶看到我們的服務。如果客戶對我們公司和團隊認可了,相信以后的服務過程中有了問題,我們還會及時處理,那么客戶會允許 我們把部分非核心需求放到將來處理的。信任是種力量,讓客戶信任我們就要始終如一的做好服務。
做好需求變更機制
有時需求的變更是不可避免的,當發生需求變更時,我們要有一定的需求變更機制。首先要冷靜看待需求的變更,與客戶溝通好,要對需求變更的工作內 容、工作量進行評估、因變更所產生的費用、針對需求變更提出的方案,并填寫需求變更文件讓客戶簽字,要讓客戶知道需求變更對項目產生的影響,對于需求的變 更客戶也要承擔一定的責任(時間或經濟)。
條條大路通羅馬
對于客戶提出的需求,不要一味的遷就,客戶永遠是對的的思想在項目開發過程中不一定正確。項目成功的標志應該是在規定的時間內利用有效的資源完 成項目并使客戶滿意,為了一味滿足客戶的需求,而使項目進度超期、預算超期都不能算成功的項目。當客戶提出一個不好解決的需求時,我們只要了解客戶的目 的,幫助客戶分析后應該可以找出其它同樣能達到相應效果的方案來,并讓客戶知道他的方案會給項目帶來什么樣的影響,客戶還是會接受我們意見的,這樣比與客 戶直接沖突要理智。
綜合以上,項目需求的管理是一個復雜的過程,它涉及到項目所有相關人的利益。有效的避免與客戶的沖突,多給客戶一些中肯的意見。同時,也要讓客 戶參與到項目的各個階段,要讓客戶了解項目的各個過程,讓客戶了解我們公司和團隊,建立起信任度,在有信任的前提下做事,友好的溝通,會讓我們工作起來更 加舒暢。 (項目管理者聯盟)
更多內容詳細咨詢:http://www.ziasteelmills.com/