軟件需求層次理論

jopen 9年前發布 | 9K 次閱讀 軟件
 

作為一名產品經理,為了首先識別出最有價值的特性,我希望在待辦事項列表中排定特性的優先級。

但是,對客戶和用戶而言,什么有價值?業務人員告訴我們,從前,決定將哪些特性包含在下一個版本中非常容易。而現在,軟件幾乎成為每個人日常生活 的一部分。如果客戶和用戶工作在一個為人熟知的業務環境里,那么關于什么最有價值這個問題非常容易回答。但是,在一個松散的、完全個性化的市場中,我甚至 不知道客戶是誰,我怎么知道什么有價值?

價值絕不僅僅是可用。價值關乎質量和情感。高質量的產品比低質量的產品更有價值。質量模型有若干種,比如,基于可靠性、效率、安全性和可維護性的 CISQ質量模型。但是,由于這些質量模型沒有包含情感因素,所以它們無法完全解釋為什么一個應用讓人滿意、受人歡迎,而另一款類似的應用卻沒有。為了理 解對用戶而言什么讓軟件有價值,我們需要一個增強的質量模型。如果某個東西滿足了我的個人需求,它就是有價值的。這似乎顯而易見,但這有用嗎?

在待辦事項列表中查找最有價值的特性時,它能給我一些指導嗎?我甚至都不知道我的客戶是誰,我怎么知道他們的個人需求?

這時,心理學可能會有用。在20世紀中葉,亞伯拉罕·馬斯洛提出了需求層次理論——人類動機論。這個需求層次也許可以映射到軟件質量方面的層次。這樣,我們就可以得到一個完整的軟件質量模型,用于滿足未知客戶的個人需求。

軟件需求層次理論

圖1:馬斯洛需求層次到軟件質量方面的映射

在馬斯洛需求層次理論中,生理需求是最基本的需求。例如,睡眠和食物需求。在軟件質量上下文中,基本需求是軟件可以在客戶的設備上使用和操作。在 Kano模型中[1],這些基本需求稱為“必需特性(Mandatories)”、“基線特性”或者“應達質量(Must-be Quality)”。(關于其它排定待辦事項優先級的方法,請看下文。)如果軟件在功能上滿足需求,并且性能也不錯,那么客戶已經可以對軟件質量有個大致 的感受。

基本需求的上一級是安全需求。在這個模型的需求層次中,并不是說只有低一級的需求得到百分百的滿足后才會出現更高級的需求。通常,只要低一級需求 得到最低限度的滿足,就足以產生更高水平的新需求。另一方面,一個人不可能無限地滿足單個需求。如果你休息好了,也吃飽了,那么更多的睡眠和食物不會再是 最能激勵你的需求。

談及軟件質量,這意味著,只有軟件可以在客戶設備上運行,并按照客戶意圖執行任務,健壯性、安全和可理解性才會提上日程。另外,這還意味著,如果 他或她的功能需求已經滿足,但更高級的需求沒有滿足,那么功能的增加可能不會為客戶帶來更高級的質量體驗。對于一個潛在的客戶而言,功能是核心。但對于使 用軟件的客戶而言,功能已經成為既定的事實。通常,他或她反而會期待新版本帶來其它更高級的屬性。

除了健壯性和使用安全外,安全需求還包括可理解性。如果用戶覺得簡單易用可理解,那么就不會害怕錯誤和失敗。另外,無障礙可達也屬于這一類需求。

當物理和安全需求至少在某種程度上得到了滿足,社交需求才會出現。軟件在客戶的社交圈中是否受到歡迎和認可可能會變得更加重要。這可能會引發額外 的特性需求,如直接發布到社交媒體、推薦或等級系統,或者在Web商店中包含一個聊天室,在購買特定的產品前,用戶可以在那里討論產品的優點和不足。常 常,產品是市場領導者這樣一個事實比功能完整性更重要。即使其它供選方案更合適,也只會成為第二選擇。之所以會這樣,部分也是出于安全需求的考慮。如果用 戶可以從社區或社交網絡中找到軟件方面的幫助,那么他或她會覺得更安全。

但是,情況也可能恰好相反。有些人希望通過不使用市場領導者的產品將自己和他人區分開來。為了與眾不同,即使是一定的質量損失也可以接受。為了將 你的產品與市場領導者的產品區分開來,你可能會努力在更高級的需求類別上變得更好,即使你的產品沒有包含市場領導者提供的所有低級需求。

你可能會注意到這樣一個事實,這個例子中的模型并不是一個完美的層次。一方面,基本需求必須得到一定程度的滿足,高級需求才可以發揮作用。另一方面,對客戶而言,高級需求常常更有價值,這可能導致客戶推遲基本需求,設法從滿足部分高級需求中獲益。

下一步,在社交需求之上,馬斯洛看到了個人需要,他將之歸結為“尊重”。這個領域不僅涉及權力、自主和自由,還包含聲譽、認可和尊敬。對于軟件質 量和價值,這意味著他們能夠做一些沒有這個軟件或一項特定特性就沒辦法做的事情,以及一些可以提升他們的地位或開闊他們的眼界的事情——既酷又可以讓個人 需求得到滿足的事情。這個模型的第五層,也是最后一步,留給了自我實現(馬斯洛后來重新定義了他的模型,并增加了一步自我超越)。人們認為,一個可以讓用 戶按自己的方式做事并實現自己的想法的軟件,或者是一個可以培養用戶創造力的軟件,比一個只專注于狹窄的解決方案空間的軟件更有價值。連接或協作特性,如 移動應用和云服務的“分享”特性,或者桌面應用程序的“導入/導出”特性,可能屬于“尊重”或“自我實現”的類別,因為它們經常使用戶超出單個設備上單個 應用程序的限制,創建他或她自己的工作流(參見下面的例子)。

對軟件質量的傳統理解主要是基于生理和安全需求。相比之下,當今軟件的質量模型應該基于完整的需求層次。因為在我們的生活中,軟件進入了越來越多 的個人和私人領域,除了安全和隱私外,對于軟件質量,一些社交和個人方面的新需求開始發揮作用。在用戶看來,可用性、健壯性以及恰當的功能都是理所當然 的。實際上,缺少這些基本的屬性通常會在應用商店或社交網絡上招致不友好的評論。

這種趨勢不只是在消費者市場上顯而易見。事實上,我們所有人一直都是軟件消費者,這也塑造著我們對于商業軟件的預期。軟件必須有用,而且不需要一個深入、冗長的用戶手冊學習過程,現如今,這被視為是理所當然的,對任何軟件的成敗都至關重要。

那么,這如何用于排定優先級呢?在《谷歌軟件測試之道》一書中[2],James Whittacker等人提出一種名為ACC的測試計劃和風險評估技術,其中A、C、C分別為“屬性(Attribute)”、“組件 (Component)”和“能力(Capacity)”。其思想是生成一個矩陣,一個軸表示承諾的產品屬性,另一個軸表示產品組件。在矩陣的單元格中填 入組件的能力,降低組件無法滿足已承諾屬性的風險。例如,如果市場部門承諾產品用戶可以快速找到搜索項,那么這可能就會使搜索引擎具備在一個給定的小時間 窗口內返回結果的能力。這個思想啟發了我,我可以使用類似的方法,根據產品特性所能滿足的馬斯洛人類需求種類的多少來排定其優先級。我將這種方法稱為 NFC方法。NFC代表“需求(Need)”、“特性(Feature)”、“能力(Capacity)”。在這個模型中,一個軸表示需求種類,另一個軸 表示需要排定優先級的特性,生成一個類似ACC的矩陣,矩陣單元格描述特性滿足需求的方式。與只滿足低級需求的特性相比,滿足更高級需求的特性會獲得更高 的優先級——前提是更基礎的產品特性至少已經得到了部分的滿足。

下面是一個例子。比如說有一個移動應用,用戶可以用它傳真文檔。該應用自己有一個基礎的編輯器,而作為產品經理,你必須決定是否在編輯器中包含更 高級的特性,是否增加一個允許用戶在發送前從發件箱中刪除傳真的功能,或者是否允許接收其它應用通過它們的“分享”功能發送的文檔。表1是由上述內容得出 的NFC矩陣。

軟件需求層次理論

表1:特性如何服務用戶需求?

表1顯示,接收其它應用發送的文檔滿足了最高級的需求,使用戶可以做沒有這項功能就無法做的事。這也許還能提高用戶的地位(我能做某件事,而你不 能)。這兩種能力都可以滿足人的尊重需求。根據表1中列出的特性能力,作為產品經理,你可能會賦予“接收文檔”最高的優先級,“增強編輯器”次之,而“從 發件箱刪除”是第三個最有價值的特性。雖然“增強編輯器”和“從發件箱刪除”均滿足安全需求,但因為“增強編輯器”額外滿足了生理需求,而“從發件箱刪 除”僅能滿足安全需求,所以“增強編輯器”比“從發件箱刪除”更有價值。在排定待辦事項列表中特性的優先級時,作為產品經理,你的工作是根據馬斯洛的需求 層次理論,考慮待辦事項列表中的特性如何滿足用戶的需求。在更低級的需求充分滿足的情況下,總是為滿足最高級需求的特性賦予最高的優先級。

還有一些其它的技術可以用于排定待辦事項的優先級,其中許多是基于業務價值或風險的。要了解更多其它有關排定待辦事項優先級的方法,你可能會希望 看下Mike Cohn在敏捷2008大會上就這個主題所做的演講[5]。“驗證學習(validate learning)”[4]是一種排定優先級的精益創業方法。這項技術根據最高市場風險選擇特性。市場風險最高的特性最先在產品中構建并推向市場,所獲得 的經驗用于選擇下一個特性。

根據Kano模型[1]進行分析是其中一個最著名的排定待辦事項優先級的方法。Kano模型非常適用于分類從客戶訪談(客戶之聲[3])中獲得的品質屬性(興奮、期望、不滿意、必備,等等)。它側重于分析用戶的滿意度,而不是從一般意義上預測對客戶而言什么可能有價值。

我的想法和由此產生的NFC方法是一種排定特性優先級和預測用戶滿意度的理論方法,應該總是通過訪談真實用戶、試驗和測試來補充使用這種方法得出 的結論。但我相信,當需要找出在客戶和用戶看來最有價值的特性時,你甚至都不認識他們,這些想法和NFC方法可以提供一個良好的開端和指導。

延伸閱讀

[1] Kano模型

[2]James Whittaker,Jason Arbon,Jeff Carollo.《谷歌軟件測試之道》,2012,培生教育出版集團.

[3] 客戶之聲

[4] 驗證學習

[5]Mike Cohn. 產品待辦事項優先級排序 .

關于作者

軟件需求層次理論 Manfred R?tzmann 是E-Post Development公司質量保證部門的負責人。該公司總部位于德國柏林。在加入E-Post Development之前,他是Hypoport AG的一名產品經理,這是一家總部位于柏林的互聯網公司,提供金融服務。他骨子里是一名軟件開發人員,從很早開始就一直關注敏捷軟件開發以及構建高質量軟 件的工具和實踐。他是“*Software Testing and Internationalization*”一書的作者之一。他已經寫了若干文章,并且經常在有關質量和敏捷軟件開發的大會上演講。

查看英文原文: The Hierarchy of Needs

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!