軟體開發專案範圍定義方法
說到專案管理,定義專案範圍是定義專案目標後,下一個關鍵的步驟。缺乏清晰且明確的範圍,會對專案後續管理造成不良的影響。本文會針對軟體開發專案,檢討專案的特性,由於而衍生定義範圍的方法,另外還有不先定義範圍,但照運行專案的方法。
何謂專案範圍及定義的困難
按照美國專案管理協會PMI所定義的專案範圍是:
專案範圍就是定義哪些工作應該包括在專案內,哪些不應該包括在內。
所謂包括在內的意思就是專案需要完成或者解決的事或問題。例如安裝某某系統、客製化修改某某功能等可算是軟體開發專案的一部份。當然在教科書上看似理所當然的內容,要在現實中實施並不容易。例如如果才能知道那些東西應該包括在專案之中?又有什麼東西是不應該包含在內?而且一般來說於專案的最開始,專案範圍很大概率只有需要系統的名稱,或者只有一些需要客製化的功能的名稱等。這種過於模糊的範圍並不能對專案造成很大的約束,專案的工作會因為用戶各種天馬行空的想像而增加專案所需的工作量。要知道應該如何才能定義清晰軟體開發專案的範圍,則必需先了解專案的特性
軟體開發專案的特性
軟體開發專案有一個跟其他種類專案十分不同的特性,它是一種重度跟業務綑綁的專案。意思是如果專案需要有清晰的範圍,需要重度了解業務相關的內容,例如客戶現在的業務流程、需要處理的資料的內容、他們面對的痛點有那些等。以上的困難必然會因為客戶的不同而有所差異。
要了解上述的內容,各位可以先想像一下,我們為何會決定使用一款軟體?原因會否是為了解決或改善某些事情的處理?例如記錄資料由使用筆記簿(實體)書寫的記錄改為把資料輸入至excel。再進一步改善的話可能使用某個系統來輸入、查詢並修改資料。以上資料處理的方式注定跟我們會如何處理資料及需要處理什麼資料是密不可分的。而不同人處理資料的方法幾乎不可能完全相同,因此在定義專案範圍時必需考慮上述的特性才能完成。
由於專案於最初的階段,並未跟系統使用者了解他們工作詳情。因此範圍是不可能作任何收斂的。最多只能收斂至系統或功能名稱而已。熟識軟體開發的人會清楚,項目主要的工作量取決於需要建立的邏輯的數量和複雜性。因此即使是同一個管理功能,為了滿足不同的邏輯,需要投入的資源必然並不盡相同。專案經理應該如何才能控制專案於範圍之內,讓專案不會超出預算,這就來到如何為專案定義範圍了。
軟體開發專案如何定義範圍
由於軟體開發專案的特性,其複雜性和不確定性主要存在於實施軟體的邏輯上,而且系統要對應的可能性也可以無限延伸。對於一個固定總價合約的專案來說,如果管理不善,很可能難以控制專案範圍,最終導致用戶不斷提出各種要求而難以作出阻止,或希望在跟用戶協商是否實施提出要求的時候沒有基線協助討論何謂範圍內或範圍外。
對於這種類型的專案,唯一且最好的方法就是一份詳盡且通過雙方審核同意的《系統規格說明書》了。該說明書需要明確的列出所有需求收集時收集回來的用戶需求。對於每一個或一組的用戶需求,明確跟用戶表達系統將如何滿足他們,並讓他們了解將會如何使用系統來處理日常工作。在雙方對系統的處理方式和邏輯達成共識後,把相關的邏輯記錄於系統規格說明書內,明確地把達成共識的關於系統的操作流程和邏輯作為驗收條件記錄在案。這能成為未來系統驗收時雙方的基礎,也能把範圍收斂至只需實施文件上記錄的內容。
由於《系統規格說明書》如此重要,一位有軟體開發和業務經驗的業務分析師就顯得十分重要。他需要帶領和引導開發團隊設計符合需求的軟體方案。如若文件中的邏輯沒有考慮異常情況的處理,或資料處理邏輯並不完善,則可能會導致專案於實施期間需要加插開發缺失或缺陷的邏輯,因而影響工期和專案成本。
不完整定義專案範圍來實施專案的方式
由於軟體開發專案以業務為導向的特性,因此需要業務用戶重度參與才能設計出一個平衡業務需求和專案限制的軟體。如果專案並沒有合資格的業務分析師,不能完整地把系統所有的邏輯都編寫成文件,那專案應該如何執行呢?
現實中還有另一個不使用上述說明書的方法,而這個方法完美貼合業務參與的特性的,它就是敏捷式開發。
敏捷式開發的意思不是快速地把系統開發出來,而是不繼地交付一部份系統給用戶使用。於專案的最初期,它不需要清晰的定義《系統規格說明書》,這種專案管理方式是跟客戶清晰的定義專案實施的時間。例如在專案最初就跟客戶約定專案為期三個月,而開發團隊約定每兩週給予部份系統功能給用戶檢視和使用。於這三個月期間,只要用戶對系統有什麼具體的需求,都能直接向開發團隊提出。而開發團隊於期間內致力滿足客戶的一切要求,務求讓客戶滿意及能實際解決他們所面對的問題。
敏捷式開發對於開發團隊來說,把思考和設計詳盡的系統規格切分開多個較為細小的部份。這無疑減低這項工作的困難程度,也能讓開發團隊集中於開發有價值的系統給客戶而非把時間浪費在文書上。另一方向,對於業務單位來講,也能減低他們在需求開發過程中,可能因為一時沒想起需沒有和開發團隊談及,或其後因業務流程的轉變衍生的需求更改的顧慮。
專案範圍定義是專案管理的基礎
專案經理必須要學會如何定義專案範圍,也必須能判斷團隊所提供的內容是否完整,並能夠採用成為實施專案的基礎。
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!
- 来自作者
- 相关推荐