實戰(zhàn):持續(xù)交付中的業(yè)務(wù)分析作者 夏潔 發(fā)布于 2011年8月5日 分享 |
在需要頻繁交付、不斷收集用戶反饋,、擁抱變化,、追求業(yè)務(wù)敏捷的項目中,軟件的開發(fā)和交付是迭代式進行的。在這樣的項目團隊中,,BA(業(yè)務(wù)分析師)通常需要在一個開發(fā)迭代開始之前完成該迭代開發(fā)任務(wù)的分析,。但在特殊情況下,從收集客戶需求到將功能細節(jié)傳達給開發(fā)團隊的周期會縮短到一至兩天,。BA可以用于思考和分析的時間遠遠少于可以預(yù)先做出所有設(shè)計的瀑布式項目,。 相關(guān)廠商內(nèi)容那么在這樣的敏捷項目中,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ù)的進行審核,、匯算和出具報告的業(yè)務(wù)流程,;逐步替換其目前已遠遠不能滿足業(yè)務(wù)和性能需求的遺留系統(tǒng)。 該系統(tǒng)主要有兩類用戶,,一類是ABC公司客戶方被派往不同國家工作的雇員(以下簡稱Mary),,這些雇員使用該系統(tǒng)填入報稅需要的數(shù)據(jù)。另一類用戶是ABC公司的稅務(wù)咨詢師(以下簡稱Kim),,負責(zé)審核,、處理Mary提交的數(shù)據(jù)。 BA在該項目中面臨的主要挑戰(zhàn)
識別業(yè)務(wù)價值業(yè)務(wù)分析的重要性在于首先做正確的事情,。理解客戶的業(yè)務(wù),關(guān)注需求背后的價值可以幫助項目團隊在軟件的設(shè)計方面做出正確的選擇,。 而我們面臨的困難是,,客戶提出的需求,往往都是直接的軟件功能,,而不是需要解決的業(yè)務(wù)問題,。如果BA只專注于針對客戶需要的功能進行系統(tǒng)分析,就喪失了幫助客戶優(yōu)化解決方案以及改進業(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)劣,。
在該用戶故事的兩種不同表述中,,由于第一種表述只說明了需要的功能,,沒有說明業(yè)務(wù)價值,在功能設(shè)計時,,我們可能會將“行程統(tǒng)計數(shù)據(jù)”的內(nèi)容設(shè)計的過于詳細而造成浪費,,使用戶不明白此功能的意圖。而第二種表述的業(yè)務(wù)目標(biāo)就非常明確,,可以幫助我們更加容易地設(shè)計出適合的解決方案,。 此外,BA在了解客戶的業(yè)務(wù)問題時,,最好請客戶提供一些真實案例/場景來證實其觀點并加深自己的理解,。 避免分析錯誤在實際工作中,我們發(fā)現(xiàn)有以下兩個方面的分析工作容易被BA忽略,而做出錯誤的決定,。
在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)的同事,,并利用郵件豐富的功能進行結(jié)果的跟蹤,。而新上線的消息功能達不到郵件的所有要求,所以增加了他們的工作難度,。此外,,由于Mary對這個功能的青睞,發(fā)送消息的數(shù)量遠遠超過了在使用遺留系統(tǒng)時發(fā)送郵件的數(shù)量,,超過了客戶想提高Mary的滿意度而在短期內(nèi)所能承受的代價,。 在遇到以上問題時,我們與客戶一同分析,,提出了折中的解決方案,,花費了較少的代價將消息系統(tǒng)和客戶的郵件進行集成,同時幫助客戶制定了對此項業(yè)務(wù)流程改進和配套IT解決方案的藍圖,。 理清需求優(yōu)先級在頻繁上線的項目中,,其中一個重要的實踐是確定需求的優(yōu)先級,使得重要的功能能夠先被開發(fā)出來投入使用以便及時收集用戶反饋,。一般的做法是要求客戶排好需求優(yōu)先級,,然后與項目相關(guān)成員一同制訂迭代開發(fā)和上線計劃。但由于客戶決策方所處角色以及思維角度的局限性,,對優(yōu)先級的評定可能存在盲目,。建議BA 參照以下價值維度幫助客戶對優(yōu)先級進行評定。 從客戶價值維度分析需求優(yōu)先級需求價值維度分析圖
技術(shù)風(fēng)險對優(yōu)先級的影響除了來自客戶方面的決定因素,,我們還應(yīng)考慮技術(shù)實現(xiàn)方面的影響,。如果一些技術(shù)風(fēng)險較高的功能可以先進入開發(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)容達成一致,,使得客戶在評定需求優(yōu)先級時可以快速、準(zhǔn)確地做出判斷,。同時,,通過對價值維度的分析,我們將有機會清晰地了解到功能優(yōu)先級高或低的原因,,以便我們能夠準(zhǔn)確地編制項目開發(fā)和上線計劃,,并合理地劃分用戶故事范圍。 借助價值維度分析,,管理客戶期望值 有些客戶的決策人可能會依據(jù)自己的喜好劃分優(yōu)先級,,這對于項目能夠按目標(biāo)成功交付造成一定的風(fēng)險。此外,,客戶在功能的設(shè)計和驗收階段也容易對單個功能追求完美,,造成額外工作量,增加項目范圍,。而這部分額外工作可能并不合理或者價值較低,。長期如此,,團隊在開發(fā)過程中將逐漸偏離項目目標(biāo)。如果能借助優(yōu)先級維度對這些額外需求進行分析,,則可以提供更有說服力的依據(jù),,幫助客戶做出正確決定,達成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ù)分析中參與度很低,由此造成了如下問題:
而ThoughtWorks的開發(fā)人員由于在業(yè)務(wù)分析中的參與度較高,,則有效地避免了以上問題,。 開發(fā)人員如何參與分析開發(fā)人員是軟件功能的實現(xiàn)人員,對方案的實現(xiàn)工作量有較準(zhǔn)確的估計,。在明確項目目標(biāo)或業(yè)務(wù)問題后,,BA如果能夠和開發(fā)人員一同分析解決方案,將更有效地為客戶找到兼顧成本和效果的方案,。 在收集到客戶需求后,,BA可根據(jù)業(yè)務(wù)價值對需求進行分析,判斷客戶提出的功能或解決方案是否能很好地滿足該業(yè)務(wù)價值或要解決的業(yè)務(wù)問題,;或者按照自己的理解設(shè)計出滿足該業(yè)務(wù)價值的功能或解決方案,。 完成上述工作之后,BA應(yīng)與開發(fā)人員就需求和業(yè)務(wù)價值進行充分溝通,,驗證功能實現(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)。
解決此類問題,,可采取以下方法:
不要忽略測試人員在業(yè)務(wù)分析中的貢獻由于測試人員所處角度和對細節(jié)的關(guān)注,往往可以發(fā)現(xiàn)一些功能細節(jié)的設(shè)計漏洞,。所以在用戶故事進入開發(fā)前,,BA與質(zhì)量保證人員對相關(guān)業(yè)務(wù)價值進行充分溝通,會在功能進入開發(fā)之前為BA創(chuàng)造更正設(shè)計缺陷的機會,。 做為質(zhì)量保證人員,,如果充分了解功能背后的業(yè)務(wù)價值,,相對于只了解功能需求,將可以寫出更加完善的測試用例,,提高測試覆蓋率,。這會為交付高質(zhì)量的軟件把好最后一道關(guān)。 結(jié)語業(yè)務(wù)分析是困難的,,特別是我們面對未知領(lǐng)域的時候,。如果只是簡單地按照客戶的具體需求進行軟件開發(fā),那么我們交付給客戶的價值將非常有限,。然而識別業(yè)務(wù)價值,、幫助客戶分析需求優(yōu)先級、保障團隊協(xié)作,,將有效提升團隊對軟件的設(shè)計能力,,解決客戶真正的業(yè)務(wù)問題,交付更大價值,。 作為一名業(yè)務(wù)分析人員,,當(dāng)您在嘗試以上實踐時,可能會發(fā)現(xiàn)自己對客戶業(yè)務(wù)的理解變得更加深刻,。在與客戶的溝通中,也能夠更加容易地提出有價值的問題以及建議,,從而提升客戶對項目團隊的信任,,為成功交付項目打下良好基礎(chǔ)。 *注:“客戶價值維度”的概念由ThoughtWorks咨詢師李光磊提出,。在此對李光磊表示感謝,。 感謝張凱峰對本文的審校。 給InfoQ中文站投稿或者參與內(nèi)容翻譯工作,,請郵件至[email protected],。也歡迎大家加入到InfoQ中文站用戶討論組中與我們的編輯和其他讀者朋友交流。 |
|
來自: 知識儲備庫_wu... > 《我的圖書館》