馬興敏 宿媛媛 陳燕


摘要:隨著軟件產品開發復雜度日益增長,越來越多的軟件公司開始采用ASD方法。ASD方法雖能高效高質地完成產品需求開發,但無法保證產品具有最佳的用戶體驗。文章針對ASD方法這一缺陷,通過引入以用戶為中心的用戶體驗設計相關理論,完善ASD流程,在不降低效率和質量的前提下,提高產品的用戶體驗。
關鍵詞:用戶體驗;ASD; Scrum流程
1 ASD概述
近年來,敏捷軟件開發(Agile Software Development,ASD)方法被越來越多的軟件公司采用,來應對系統開發過程中日益增長的復雜度。ASD能夠保證快速且高質量地實現用戶需求,但是用戶對產品的情感反映被嚴重忽略,即不能保證產品與用戶間建立良好的情感關聯。
與此同時,用戶體驗理念開始逐漸被設計領域從業者所接受,并被不斷優化演進。1988年設計理論專家唐納德.諾曼[1]提出以用戶為中心的設計(User-Centered Design,UCD)理念,自此這種思維方式逐漸成為用戶體驗設計領域的主流趨勢。UCD采用更加人性化的方法,使用戶參與甚至主導產品或系統的設計過程,此種思維方式極大地增強了用戶體驗。
本文將以用戶為中心的用戶體驗設計引入敏捷開發方法,并在此基礎上優化了敏捷開發流程,一定程度上改善了上述ASD方法面臨的問題,獲得了更好的用戶體驗。
2 以用戶為中心的用戶體驗模型
用戶體驗指用戶在使用特定的產品、系統或服務時的態度和情感。一個好的用戶體驗不僅能夠提升客戶的忠誠度及轉化率,而且可以提高公司運作效率及品牌影響力。但是用戶體驗具有主觀性,這也正是用戶體驗設計的難點所在。基于此,杰西·加瑞特[2]在2000年提出了用戶體驗設計模型。這個模型包含5個要素:戰略、范圍、結構、框架、表現。
其中,戰略層主要用于界定用戶群、用戶需求及目標;范圍層主要用于將需求分類、分級,轉化為對應的功能和內容;結構層主要任務是創建概念模型;框架層主要用于確定詳細的界面外觀、導航和信息設計;表現層將內容、功能和美學匯集到一起產生最終設計。該模型中的上層要素與下層要素具有雙向約束,從而在整體上保持一致性。
用戶體驗模型要求在模型的每一個層次中都要把用戶列入考慮范圍,讓用戶由參與者轉變為共同設計者。這種理念最大的優點是根據用戶會如何使用產品來進行設計的優化,而不是強迫用戶改變使用習慣來適應產品。
3 ASD流程
ASD是從1990年開始逐漸引起廣泛關注的一系列新型輕量級軟件開發方法,其最初目的是為了應對軟件開發過程中業務需求不明確或頻繁變化的問題[3]。ASD包含了多個具體的開發方法。本文主要研究的是Scmm開發流程,如圖1所示。Scrum是ASD中最富有成效且應用范圍最廣的幾種方法學之一,推崇限時迭代、持續集成和發布[4]。
Sprint是Scrum流程中的基本開發單元,每一個Sprint周期都以一個Sprint計劃會議作為開始,以一個Sprint演示和總結會議作為結束,然后迭代進行下一個Sprint周期,直到實現所有的業務需求。具體的流程步驟如下。
(1)通過Sprint計劃會議從產品需求列表(ProductBacklog)中選擇合適的需求作為本次Spring周期的目標(Sprint Backlog)。
(2)通過每日站立會議(Daily Scrum Meeting)總結昨天的工作、計劃今天的任務并匯總風險問題。
(3)通過單元測試、持續集成、版本管理等進行代碼的開發測試工作。
(4)通過Sprint演示和總結會議向客戶展示已完成工作,并總結此次Sprint周期的工作。
(5)重復步驟(1)一(4),直到實現所有產品需求。
4 基于用戶體驗的ASD流程
Scrum敏捷開發流程通過迭代的Sprint周期及一系列高效率的會議,保證了在軟件開發過程中能夠迅速應對用戶模糊及多變的需求。但是,Scrum僅要求用戶參與到軟件開發流程中,并沒有一個有效的機制確保產品具有良好的用戶體驗。
4.1 引入用戶體驗設計模型
針對上述問題,本文引入以用戶為中心的用戶體驗設計模型,以保證產品具有良好的用戶體驗。
將Scrum敏捷開發以市場和需求雙因素驅動的特性調整為以用戶體驗、市場、需求三因素驅動,以保證產品具有良好的用戶體驗。用戶體驗設計模型要求自下而上地建設,因此可將模型的5個層次按相應次序放到Scrum流程中,具體分析如下。
首先是戰略層和范圍層。這兩層主要任務是明確產品目標及需求。開發團隊需要在開發階段之前確定好產品目標及用戶需求,因此這兩層的建設應保證在Sprint計劃會議之前完成。
其次是結構層。這一層的主要任務是進行交互設計和信息架構。這一層面應在確定Sprint Backlog之后,但應當在進行實際開發測試之前,以便接下來的開發測試有合適的概念模型作為參考依據。
最后是框架層和表現層。這兩層的主要任務是進行信息設計、界面和導航設計。在經過前面3個層面的建設后,團隊只需要在搭建好的架構及交互框架下進行功能或信息的展示及視覺的優化,因此這一層面應當在Sprint開發測試階段進行。
通過將以用戶為中心的用戶體驗設計模型融入Scrum流程中,保證了所有的用戶體驗要素均被關注且合理配置,極大地彌補了傳統Scrum敏捷開發流程對用戶體驗關注不夠的缺陷。
4.2 流程描述
由以上分析可得基于用戶體驗的ASD流程,如圖2所示。
流程步驟描述如下。
(1)通過戰略層和范圍層的建設獲取產品目標及需求,并由相關人員以此為基礎對產品需求列表進行完善。
(2)通過Sprint計劃會議從產品需求列表中選擇合適需求作為本次Spring周期的目標。
(3)通過結構層建設確定每個Sprint Backlog的概念模型,用于表示產品交互特性或信息展示結構。
(4)通過每日站立會議總結昨天的工作、計劃今天的任務、調整偏離結構層概念模型的設計,并匯總問題風險。
(5)通過單元測試、持續集成、版本管理等進行代碼的開發測試及框架層與表現層的建設工作,并通過收集分析用戶的反饋優化框架層與表現層。
(6)通過Sprint演示和總結會議向客戶展示已完成工作,并總結此次Sprint周期的工作。
(7)重復步驟(1)—(6),直到實現所有產品需求。
5 結語
通過引入以用戶為中心的用戶體驗設計理念,本文對傳統的敏捷開發流程進行了研究及優化,提出了新型的基于用戶體驗的敏捷開發流程,解決了傳統敏捷開發方法忽略用戶體驗的問題。在以后的項目開發過程中對所提出流程進一步完善,是下一步研究的重點。
[參考文獻]
[1]唐納德·諾曼.設計心理學[M].梅瓊,譯北京:中信出版社,2005.
[2]杰西·加瑞特.用戶體驗的要素:以用戶為中心的Web設計[M].范曉燕,譯.北京:機械工業出版社,2008.
[3]趙劍冬,林健.敏捷方法在軟件項目開發中的實踐[J].計算機工程與設計,2007(12):2272-2274.
[4]施瓦伯.Scrum敏捷項目管理[M].李國彪,譯北京:清華大學出版社,2007.