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