需求變更控制有哪些先進技術?
需求變更是軟體開發人員心中永遠的痛。
每次需求變更,軟體開發人員就無條件接收,實施軟體更改,頻繁的變更絕對會讓軟體開發人員欲生欲死。難道就沒有什麼辦法來控制需求變更嗎?降低變更對軟體專案的影響,減少變更,甚至杜絕變更,這些美好的願望有可能實現嗎?
需求變更控制,不僅在於變更發生之後怎麼應對,更重要的是做好需求分析和管理,在專案早期做好需求開發,將需求變更的源頭儘可能地消滅,才是解決需求變更問題之道。
下面的一些優秀實踐有可能幫助你達成願望:
-
使用聯合應用設計來收集最初需求
聯合應用設計可以讓使用者更早地接觸到將來交付的軟體產品,因此可以幫助使用者確定自己想要的軟體使用需求,如果前期收集的所有需求都是使用者真正想要的,那麼使用者就不會在軟體開發過程中提出需求變更了。
-
對質量需求,使用質量功能展開
質量需求是很難定量地描述。不能定量地描述就無法有效地設計和測試。QFD也許是一個有益的幫助手段。通過質量功能展開,可以把使用者的質量需求轉化為設計要求。鑑於它在健壯設計體系中發揮的巨大作用,相信它也會給軟體質量需求的分析和確認帶來幫助。
-
對於安全性分析和安全漏洞預防使用安全專家
除了質量需求,安全性需求也不是很好表述清楚。如果在分析安全性需求時有安全專家在場,可能會更容易把需求定義清楚。
-
對於新軟體的主要功能使用原型開發
有些軟體功能只是使用者的奇思妙想,這類功能使用者和開發人員都沒有類似的實物,這種情況下最好要先開發出軟體原型,軟體開發人員通過原型不斷和使用者確認,這樣可以幫助使用者儘快確定原本停留在想象中的功能需求。
-
通過挖掘遺留應用,以獲取新專案的需求和業務規則
對於有些使用者不能說清楚的需求,可以通過分析遺留的類似軟體的功能,幫助使用者確認新的需求。
-
讓使用者參與敏捷專案開發
採用敏捷的開發方式,讓使用者更多地參與到專案中來,完成一部分需求,就讓使用者確認一部分需求,也會大大減少後期需求的變更。
-
確保需求被清楚地表示,並且很容易理解
需求的描述要滿足可讀性、準確性的要求,這有助於軟體開發人員與使用者對需求達成一致理解,避免因歧義而產生的需求變更。
-
使用者和供應商雙方都是用正規的需求審查
使用者和開發方應採取正規的需求評審對需求進行確認。
-
建立一個客戶供應商聯合變更控制委員會
使用者要理解,需求變更未必都是對使用者有利的。有些變更,雖然會給使用者使用上帶來些許便利,但可能同時影響軟體的穩定性。所以,每次需求變更,使用者應當徵求開發者的意見,通過使用者和開發方的聯合評審。
-
為特定功能的變更,選擇對應領域裡的專家
一些專業性很強的功能,它的需求分析和變更都需要有對應領域的專家的加入,以免出現南轅北轍的事情。
-
確保需求的可跟蹤性
需求管理非常重要的實踐——需求跟蹤。通過需求跟蹤,可以確定需求的狀態,輔助控制需求的變更。
-
需求變更的多版本分割
需求的變更必須要做好版本控制。也許變更之後的結果證明還是原來的方案更合適,如果沒有版本控制,就悔之晚矣。
-
使用自動化需求分析工具
藉助自動化需求分析工具,可以避免一些不該出現的人工錯誤的發生,可以縮短變更的工期。
總之,使用聯合應用設計,仔細需求分析,需求審查以及圓形可以使需求過程在技術和管理控制之下。
參考書目:《軟體工程最佳實踐》