需求管理,為何如此重要?
隨著工業產品智能化的不斷提高,產品中搭載的軟件數量也呈現爆發增長的態勢。而軟件的迭代速度要遠高于硬件的迭代,隨著敏捷型的軟件開發模式被越來越多的制造商采用,如何管理高速迭代中的各種軟件已經成為各大廠商都在面臨的一大挑戰。
ALM(Application Lifecycle Management)應用生命周期管理理念可以幫助企業建立完整的軟件研發架構,梳理軟件研發流程,管控中間過程交付物及其質量,降低企業的管理成本,從而降低整個軟件供應鏈的成本。
而在軟件研發過程當中,需求是一切的基石,合理可控的需求管理能夠令后續的開發、配置、測試、變更等環節更加清晰和明確。
本文我們將從需求管理出發,介紹需求管理的重要性,以及ALM中需求管理主要做什么。
比如市場調研部門提出做一款游戲,他們的需求是:
|
對抗與合作 |
|
主角具備成長性 |
|
通過戰斗可以獲得隨機性物品提高主角能力 |
|
清晰的勝負機制 |
|
多種皮膚提供給玩家新鮮感 |
操作簡單
我們腦海中想的可能是這樣:
但實際情況里每一個語句都有很多種解釋,舉個例子,“主角具有成長性”和“隨機物品提高主角能力”,這兩項是否可以合并為一項,那么“隨機物品提高主角能力帶來成長”完全可以成為一個賣點。
順著這個思路往下走,我們將需求簡單化,去掉三座防御塔,讓勝負更清晰,只保留一個老家,隨后我們看到的游戲可能就成了這樣:
很顯然,上圖中的游戲元素雖然也能對應客戶的原始需求,但無論再如何努力,再如何根據市場反饋進行調整,我們距離提出需求的初衷依舊相去甚遠,基本可以宣告項目失敗。
在實際工作中當然不會出現如此巨大的差異性后果,但在各行業同質化嚴重,差異化競爭越發苛刻的今天,任何一個理解上的細微偏差,都可能讓企業蒙受無謂的巨大損失,需求管理也隨之顯得愈發重要。
正是因為如此,我們傳統印象中慢工出細活的制造業其實也正在悄然接受時代的變化,眾多的汽車、手機、醫療器材、家用電器、通信設備等等企業逐漸將注意力聚焦在需求,在軟件,在ALM。
舉個大家有直觀感受的例子,讓我們把目光投入炙手可熱的汽車行業。為了讓“汽車產品具有獨特的酷炫外觀”這樣的需求可以被理解為“車身采用流線型的設計”而不是“在車頂加兩根標志性的天線”,在需求管理端我們至少要做兩步:
首先,是從前到后的需求分解分配過程,需要對文檔進行逐層分解。Aspice等級認證或者ISO26262功能安全標準認證對文檔層級劃分都有對應的要求,一般而言,企業會選擇在最佳實踐的基礎上進行增減。文檔層級定義好之后,對文檔內容進行條目化的管理,以便對不同層次的需求條目進行逐條對應,在需求端即形成完整的追溯關系鏈。
其次,是從后到前的測試驗證過程,需要確保需求文檔中提到的要求件件有著落。測試用例對前期完善的需求進行全面覆蓋,確保提出的需求中所有應該測試的點都能夠被測試到。最終通過測試結果,將測試通過率、測試覆蓋度等信息反饋到需求端。
從需求逐層分解到測試用例逐條追溯需求,再從測試用例覆蓋需求到數據監控測試完成度和需求被驗證通過率,實現需求本身的分解和測試閉環。這是ALM最基礎的需求管理理念,可以參考如下的Data Model。
一個完整的ALM解決方案應該包括需求管理、測試管理、問題和變更管理、配置管理、項目規劃和項目管理、質量保證等內容,我們所提供的ALM解決方案就是這樣一個全功能一體化的平臺,同時其優越的開放性還保證了平臺與其他工具之間有非常好的集成性能。
受限于篇幅,本文主要介紹需求的重要性和通用的管理理念,更多關于ALM的信息和更前沿的ALM資訊,我們會在網站和公眾號中持續更新。