實戰(zhàn):持續(xù)交付中的業(yè)務(wù)分析
作者 夏潔 發(fā)布于 2011年8月5日
分享
|
在需要頻繁交付、不斷收集用戶反饋、擁抱變化、追求業(yè)務(wù)敏捷的項目中,軟件的開發(fā)和交付是迭代式進(jìn)行的。在這樣的項目團隊中,BA(業(yè)務(wù)分析師)通常需要在一個開發(fā)迭代開始之前完成該迭代開發(fā)任務(wù)的分析。但在特殊情況下,從收集客戶需求到將功能細(xì)節(jié)傳達(dá)給開發(fā)團隊的周期會縮短到一至兩天。BA可以用于思考和分析的時間遠(yuǎn)遠(yuǎn)少于可以預(yù)先做出所有設(shè)計的瀑布式項目。
相關(guān)廠商內(nèi)容
InfoQ誠聘:內(nèi)容/商務(wù)策劃編輯、資深商務(wù)經(jīng)理等
敏捷與精益開發(fā)的現(xiàn)狀與未來
Sybase在線研討會:云時代的列式數(shù)據(jù)庫——Sybase IQ15.3新特性(8月22日 周一)
阿里巴巴、淘寶、大眾點評等知名網(wǎng)站背后的架構(gòu)故事
最前沿的開發(fā)&運維之道
那么在這樣的敏捷項目中,BA如何能夠適應(yīng)這種交付模式,完成高質(zhì)量的業(yè)務(wù)分析,協(xié)同團隊為客戶交付高價值的軟件呢?
項目背景
ABC公司是一家知名的國際性會計師事務(wù)所,業(yè)務(wù)規(guī)模龐大,分支機構(gòu)遍布全球170多個國家。
ThoughtWorks受邀對其“全球派遣服務(wù)(International Assignment Service)”業(yè)務(wù)部門提供IT解決方案,以及軟件系統(tǒng)的開發(fā)。該系統(tǒng)包括收集其客戶的全球派遣雇員的報稅數(shù)據(jù),以及管理ABC公司稅務(wù)咨詢師對這些數(shù)據(jù)的進(jìn)行審核、匯算和出具報告的業(yè)務(wù)流程;逐步替換其目前已遠(yuǎn)遠(yuǎn)不能滿足業(yè)務(wù)和性能需求的遺留系統(tǒng)。
該系統(tǒng)主要有兩類用戶,一類是ABC公司客戶方被派往不同國家工作的雇員(以下簡稱Mary),這些雇員使用該系統(tǒng)填入報稅需要的數(shù)據(jù)。另一類用戶是ABC公司的稅務(wù)咨詢師(以下簡稱Kim),負(fù)責(zé)審核、處理Mary提交的數(shù)據(jù)。
BA在該項目中面臨的主要挑戰(zhàn)
該項目為分布式開發(fā),ABC公司的決策方在美國,而ThoughtWorks的開發(fā)團隊在中國,溝通反饋周期有時較長。 由于ABC公司對用戶體驗的重視,需要頻繁交付軟件,以便收集用戶反饋并及時調(diào)整解決方案和后續(xù)開發(fā)計劃。這大大縮短了從收集需求、開始分析到進(jìn)入開發(fā)的周期,增加了分析中出現(xiàn)缺陷的風(fēng)險。 當(dāng)開發(fā)過程中發(fā)現(xiàn)問題時,無法馬上與客戶取得溝通,開發(fā)進(jìn)度可能會受到影響。
識別業(yè)務(wù)價值
業(yè)務(wù)分析的重要性在于首先做正確的事情。理解客戶的業(yè)務(wù),關(guān)注需求背后的價值可以幫助項目團隊在軟件的設(shè)計方面做出正確的選擇。
而我們面臨的困難是,客戶提出的需求,往往都是直接的軟件功能,而不是需要解決的業(yè)務(wù)問題。如果BA只專注于針對客戶需要的功能進(jìn)行系統(tǒng)分析,就喪失了幫助客戶優(yōu)化解決方案以及改進(jìn)業(yè)務(wù)流程的機會。
如何尋找業(yè)務(wù)價值?
以敏捷開發(fā)方法中的用戶故事為例,找出客戶要解決的業(yè)務(wù)問題的一個簡單辦法是,用以下方式概括每個用戶故事的內(nèi)容:
As…(角色),I want to…(完成什么樣的功能),So that…(解決什么問題,帶來什么價值)
“So that…”說明了該故事的業(yè)務(wù)價值,即要解決的業(yè)務(wù)問題。準(zhǔn)確的尋找業(yè)務(wù)價值將有利于我們設(shè)計出最適合的“I want to”,這很可能優(yōu)于客戶直接提出的功能要求。
需要注意的是,不要把解決方案或功能當(dāng)成該用戶故事的價值。以ABC公司業(yè)務(wù)系統(tǒng)中的一個用戶故事為例,BA對該需求業(yè)務(wù)價值的了解程度將直接影響到解決方案的優(yōu)劣。
作為(As…)
我想要
(I want to…)
以便
(So that…)
是否闡明了價值?
Mary
即時瀏覽我的行程統(tǒng)計數(shù)據(jù)
了解我在各個國家或地區(qū)停留的時間以及從事的活動
否
Mary
即時瀏覽我的行程統(tǒng)計數(shù)據(jù)
我可以迅速地檢查我所輸入的在各國家或地區(qū)停留時間及從事活動的數(shù)據(jù)是否正確(以保證我可以依照法律要求提交準(zhǔn)確的報稅數(shù)據(jù))
是
在該用戶故事的兩種不同表述中,由于第一種表述只說明了需要的功能,沒有說明業(yè)務(wù)價值,在功能設(shè)計時,我們可能會將“行程統(tǒng)計數(shù)據(jù)”的內(nèi)容設(shè)計的過于詳細(xì)而造成浪費,使用戶不明白此功能的意圖。而第二種表述的業(yè)務(wù)目標(biāo)就非常明確,可以幫助我們更加容易地設(shè)計出適合的解決方案。
此外,BA在了解客戶的業(yè)務(wù)問題時,最好請客戶提供一些真實案例/場景來證實其觀點并加深自己的理解。
避免分析錯誤
在實際工作中,我們發(fā)現(xiàn)有以下兩個方面的分析工作容易被BA忽略,而做出錯誤的決定。
客戶要求實現(xiàn)某些現(xiàn)有業(yè)務(wù)流程或遺留系統(tǒng)的功能
例如,客戶需求的功能,是當(dāng)前遺留系統(tǒng)中已經(jīng)使用多年、且未收到過任何抱怨的功能。所以客戶和BA往往認(rèn)為這個功能是合理的,忽略了深入的分析和思考。而這種思考不全面而做出的決定可能會與可以預(yù)見的新功能產(chǎn)生沖突。
在ABC公司的遺留系統(tǒng)中,用來收集報稅數(shù)據(jù)的問卷內(nèi)容是通過excel表來維護(hù)的,而Mary在前臺也是通過下載excel問卷,填寫完畢后再上傳。
在新開發(fā)的系統(tǒng)中,問卷被改為在線方式,并輔助以其他必要功能提升Mary的用戶體驗和滿意度。但由于客戶方的員工都是財務(wù)背景出身,非常 喜歡使用excel表,而之前用excel表維護(hù)問卷內(nèi)容也被證明是非常有效的,所以客戶堅持在新系統(tǒng)中延用這種方式。經(jīng)過仔細(xì)的分析,我們發(fā)現(xiàn)在針對提 高M(jìn)ary用戶體驗的新功能上線后,使用excel表維護(hù)問卷內(nèi)容將大大增加維護(hù)的工作量及錯誤率,而這與項目的相關(guān)目標(biāo)背道而馳。 ThoughtWorks在列舉了問題的細(xì)節(jié)后,說服客戶采用了新的解決方案。
客戶要求利用新的IT系統(tǒng)改變當(dāng)前的業(yè)務(wù)流程
客戶發(fā)現(xiàn)目前的業(yè)務(wù)流程有不合理的地方,希望在新的IT系統(tǒng)里直接改變這些流程。如果不經(jīng)過仔細(xì)的分析,這種做法可能會很危險,業(yè)務(wù)流程的 盲目改變可能會對一部分用戶造成麻煩,為客戶實施該軟件形成強大阻力。那么了解清楚目前這些流程存在的價值和原因事關(guān)重要,從而可以幫助我們?yōu)榭蛻籼峁┛?學(xué)的、逐步優(yōu)化其流程的IT解決方案。
在ABC公司的業(yè)務(wù)流程中,Kim和Mary之間的一些交流是通過郵件來完成的。這里存在兩個業(yè)務(wù)風(fēng)險:1)Kim和Mary交流的重要信息被散落在各自的郵件里,系統(tǒng)無法記錄,在遇到法律問題時,難以劃分責(zé)任;2)Kim和Mary可能會使用郵件發(fā)送一些保密性較強的內(nèi)容,如果發(fā)錯,后果不堪設(shè)想。
在開發(fā)新系統(tǒng)時,客戶要求我們增加了一個消息功能,使Kim和Mary之間的交流可以方便地在系統(tǒng)內(nèi)部完成。該功能上線后,很好地化解了這兩個業(yè)務(wù)風(fēng)險,同時收到了Mary這類用戶的良好反饋。然而這對該會計師事務(wù)所在某些國家分支機構(gòu)里的Kim這類用戶的工作卻帶來了不小的影響。由于之前使用郵件系統(tǒng),Kim可以將Mary的郵件轉(zhuǎn)發(fā)給相關(guān)的同事,并利用郵件豐富的功能進(jìn)行結(jié)果的跟蹤。而新上線的消息功能達(dá)不到郵件的所有要求,所以增加了他們的工作難度。此外,由于Mary對這個功能的青睞,發(fā)送消息的數(shù)量遠(yuǎn)遠(yuǎn)超過了在使用遺留系統(tǒng)時發(fā)送郵件的數(shù)量,超過了客戶想提高M(jìn)ary的滿意度而在短期內(nèi)所能承受的代價。
在遇到以上問題時,我們與客戶一同分析,提出了折中的解決方案,花費了較少的代價將消息系統(tǒng)和客戶的郵件進(jìn)行集成,同時幫助客戶制定了對此項業(yè)務(wù)流程改進(jìn)和配套IT解決方案的藍(lán)圖。
理清需求優(yōu)先級
在頻繁上線的項目中,其中一個重要的實踐是確定需求的優(yōu)先級,使得重要的功能能夠先被開發(fā)出來投入使用以便及時收集用戶反饋。一般的做法是要求客戶排好需求優(yōu)先級,然后與項目相關(guān)成員一同制訂迭代開發(fā)和上線計劃。但由于客戶決策方所處角色以及思維角度的局限性,對優(yōu)先級的評定可能存在盲目。建議BA 參照以下價值維度幫助客戶對優(yōu)先級進(jìn)行評定。
從客戶價值維度分析需求優(yōu)先級
需求價值維度分析圖
價值維度
說明
愿景目標(biāo)
該功能點是否契合項目的愿景和業(yè)務(wù)目標(biāo)?
與項目目標(biāo)的契合程度越高者優(yōu)先級越高
時間限制
客戶的業(yè)務(wù)是否有一定的時間表?
如果該功能點必須在某時間點前投入使用,則該需求必須被排入相應(yīng)時間的發(fā)布計劃中
市場賣點
該功能點是否是吸引特定目標(biāo)用戶的賣點?
如果客戶的資金存在問題或者需要市場的快速認(rèn)可,則可以考慮將該需求列為高優(yōu)先級
有無替代方案
該功能點有無方便的替代方案?
如果有簡單易行的替代方案,則該需求的優(yōu)先級較低
客戶內(nèi)部政治因素
該功能點是否存在客戶內(nèi)部的政治因素?
例如某功能只對小部分用戶提供價值,但會決定客戶內(nèi)部某個重要組織對這個項目的投資和評價,則可以考慮將該需求列為高優(yōu)先級
投資收益
該功能點的開發(fā)成本和客戶所能獲得的收益是否匹配?
例如客戶某工作流程浪費了一個小組人員大量時間,但對其他部門或工作環(huán)節(jié)無影響。如果開發(fā)相應(yīng)的軟件功能造成的投入大于客戶在一定時期內(nèi)可以節(jié)省的資金,則該需求的優(yōu)先級較低
技術(shù)依賴性
其他需求是否依賴于該功能點?
如果依賴于這個功能點的需求優(yōu)先級高,那么該功能的優(yōu)先級應(yīng)更高
技術(shù)風(fēng)險對優(yōu)先級的影響
除了來自客戶方面的決定因素,我們還應(yīng)考慮技術(shù)實現(xiàn)方面的影響。如果一些技術(shù)風(fēng)險較高的功能可以先進(jìn)入開發(fā)階段,則問題會盡早地被暴露。開發(fā)人員在項目早期解決這些問題會有利于開發(fā)成本的節(jié)約。所以除以上客戶價值維度外,應(yīng)再參考以下矩陣來權(quán)衡需求的優(yōu)先級。
需求優(yōu)先級矩陣
客戶價值維度和需求優(yōu)先級矩陣并不是優(yōu)先級高低的計算器,而是與客戶以及團隊溝通交流的工具。不同項目的影響維度也會有所不同。由于各項因素的復(fù)雜性,客戶價值維度和技術(shù)風(fēng)險因素需綜合考慮,不可以權(quán)重來計算。BA可以與客戶對以上因素的內(nèi)容達(dá)成一致,使得客戶在評定需求優(yōu)先級時可以快速、準(zhǔn)確地做出判斷。同時,通過對價值維度的分析,我們將有機會清晰地了解到功能優(yōu)先級高或低的原因,以便我們能夠準(zhǔn)確地編制項目開發(fā)和上線計劃,并合理地劃分用戶故事范圍。
借助價值維度分析,管理客戶期望值
有些客戶的決策人可能會依據(jù)自己的喜好劃分優(yōu)先級,這對于項目能夠按目標(biāo)成功交付造成一定的風(fēng)險。此外,客戶在功能的設(shè)計和驗收階段也容易對單個功能追求完美,造成額外工作量,增加項目范圍。而這部分額外工作可能并不合理或者價值較低。長期如此,團隊在開發(fā)過程中將逐漸偏離項目目標(biāo)。如果能借助優(yōu)先級維度對這些額外需求進(jìn)行分析,則可以提供更有說服力的依據(jù),幫助客戶做出正確決定,達(dá)成BA和項目經(jīng)理對客戶期望值的有效管理,從而降低交付風(fēng)險。
發(fā)揮團隊其他成員在業(yè)務(wù)分析中的作用
在頻繁交付的項目中,如果BA獨自承擔(dān)業(yè)務(wù)分析工作,難免會出現(xiàn)疏漏。ThoughtWorks曾與ABC公司的IT部門合作完成其業(yè)務(wù)系統(tǒng)的一些集成工作。在合作過程中發(fā)現(xiàn),ABC公司IT部門的開發(fā)人員在業(yè)務(wù)分析中參與度很低,由此造成了如下問題:
BA需要寫大量需求文檔,故從需求分析到軟件交付的周期較長 設(shè)計缺陷的發(fā)現(xiàn)滯后 在需要頻繁交付的情況下,解決方案質(zhì)量較差,方案優(yōu)化能力較弱
而ThoughtWorks的開發(fā)人員由于在業(yè)務(wù)分析中的參與度較高,則有效地避免了以上問題。
開發(fā)人員如何參與分析
開發(fā)人員是軟件功能的實現(xiàn)人員,對方案的實現(xiàn)工作量有較準(zhǔn)確的估計。在明確項目目標(biāo)或業(yè)務(wù)問題后,BA如果能夠和開發(fā)人員一同分析解決方案,將更有效地為客戶找到兼顧成本和效果的方案。
在收集到客戶需求后,BA可根據(jù)業(yè)務(wù)價值對需求進(jìn)行分析,判斷客戶提出的功能或解決方案是否能很好地滿足該業(yè)務(wù)價值或要解決的業(yè)務(wù)問題;或者按照自己的理解設(shè)計出滿足該業(yè)務(wù)價值的功能或解決方案。
完成上述工作之后,BA應(yīng)與開發(fā)人員就需求和業(yè)務(wù)價值進(jìn)行充分溝通,驗證功能實現(xiàn)的可行性,同時積極探尋更優(yōu)方法。如果開發(fā)人員提出符合業(yè)務(wù)價值的不同方案,BA則可以要求開發(fā)人員提供一些關(guān)于開發(fā)工作量、方案優(yōu)劣、技術(shù)風(fēng)險方面的比較數(shù)據(jù),從而幫助自己有效地與客戶溝通并挑選最佳方案。甚至可以根據(jù)分析結(jié)果幫助客戶調(diào)整該需求的優(yōu)先級。對于技術(shù)難度和風(fēng)險較高的功能點,建議邀請資深開發(fā)人員參與討論。
與開發(fā)人員溝通中遇到的挑戰(zhàn)與解決方法
由于上述方法需要與開發(fā)人員大量溝通,有些BA在應(yīng)用以上實踐時也遇到了以下挑戰(zhàn)。
開發(fā)人員缺少參與業(yè)務(wù)分析的熱情
在ThoughtWorks,大多數(shù)開發(fā)人員都喜歡積極思考、主動為業(yè)務(wù)分析提供幫助,大大減少了需求分析上的漏洞。然而在ABC公司的 IT部門中,開發(fā)人員很少主動為業(yè)務(wù)分析出謀劃策,尤其是團隊中資歷較淺的成員,甚至不愿意參與解決方案的討論。團隊成員的優(yōu)勢沒有得到充分發(fā)揮,開發(fā)人 員只管按需求埋頭苦干,結(jié)果功能和解決方案的問題往往在測試或者驗收階段才暴露出來,不可避免地造成了浪費。
站在開發(fā)人員成長的角度,從ThoughtWorks實踐來看,積極地理解業(yè)務(wù)、思考解決方案能夠更快地提高技術(shù)能力。故此BA可以找出一些實際案例,協(xié)同項目經(jīng)理與團隊各成員進(jìn)行溝通,鼓勵大家積極參與業(yè)務(wù)分析,逐步形成開發(fā)人員與BA協(xié)作的良好氛圍。
開發(fā)人員容易就客戶需求或解決方案產(chǎn)生爭論
開發(fā)人員在積極參于分析的過程中,有時會對軟件功能的價值吹毛求疵,在細(xì)節(jié)上與BA產(chǎn)生較多爭論,使BA在應(yīng)付開發(fā)人員的問題以及與客戶求證答案之間疲于奔命。
解決此類問題,可采取以下方法:
BA在收集需求時,盡可能充分地了解客戶要解決的業(yè)務(wù)問題,以便能夠快速回答開發(fā)人員的問題 面對開發(fā)人員對解決方案的質(zhì)疑時,應(yīng)保持良好的心態(tài),清楚地了解開發(fā)人員顧慮的問題和原因 如果自己掌握的信息確實不能證明現(xiàn)行方案的合理性時,協(xié)同開發(fā)人員,找到更優(yōu)方案并與現(xiàn)行方案進(jìn)行優(yōu)缺點比較 將新舊方案與客戶溝通,則可快速幫助客戶做出判斷
不要忽略測試人員在業(yè)務(wù)分析中的貢獻(xiàn)
由于測試人員所處角度和對細(xì)節(jié)的關(guān)注,往往可以發(fā)現(xiàn)一些功能細(xì)節(jié)的設(shè)計漏洞。所以在用戶故事進(jìn)入開發(fā)前,BA與質(zhì)量保證人員對相關(guān)業(yè)務(wù)價值進(jìn)行充分溝通,會在功能進(jìn)入開發(fā)之前為BA創(chuàng)造更正設(shè)計缺陷的機會。
做為質(zhì)量保證人員,如果充分了解功能背后的業(yè)務(wù)價值,相對于只了解功能需求,將可以寫出更加完善的測試用例,提高測試覆蓋率。這會為交付高質(zhì)量的軟件把好最后一道關(guān)。
結(jié)語
業(yè)務(wù)分析是困難的,特別是我們面對未知領(lǐng)域的時候。如果只是簡單地按照客戶的具體需求進(jìn)行軟件開發(fā),那么我們交付給客戶的價值將非常有限。然而識別業(yè)務(wù)價值、幫助客戶分析需求優(yōu)先級、保障團隊協(xié)作,將有效提升團隊對軟件的設(shè)計能力,解決客戶真正的業(yè)務(wù)問題,交付更大價值。
作為一名業(yè)務(wù)分析人員,當(dāng)您在嘗試以上實踐時,可能會發(fā)現(xiàn)自己對客戶業(yè)務(wù)的理解變得更加深刻。在與客戶的溝通中,也能夠更加容易地提出有價值的問題以及建議,從而提升客戶對項目團隊的信任,為成功交付項目打下良好基礎(chǔ)。
*注:“客戶價值維度”的概念由ThoughtWorks咨詢師李光磊提出。在此對李光磊表示感謝。
感謝張凱峰對本文的審校。
給InfoQ中文站投稿或者參與內(nèi)容翻譯工作,請郵件至editors@cn.infoq.com。也歡迎大家加入到InfoQ中文站用戶討論組中與我們的編輯和其他讀者朋友交流。