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