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