以真實「商場停車」業務切入 需求分析

2021-10-09 16:25:49 字數 3476 閱讀 7715

不管是傳統開發模式還是時下推崇的敏捷開發模式,都要從源頭——業務需求開始著手,缺少了需求獲取分析環節或本環節做的不夠好,由此造成的錯誤會隨著軟體迭代的步伐,逐步被放大,近而造成巨大的損失。有時金錢成本尚可接受,但由此造成的時間成本、機會成本則是無法估量的。

為什麼選取"商場停車業務"作為需求原型呢,有兩個考量:一是場景熟知度比較高,業務理解上不存在很大障礙;二是能將我們所要表達的微服務特性融入進去,業務複雜度較低,便於上手開發,門檻太高反而不利於技術實踐。

下面隨著課程的步伐,一步一步深入進去吧。

相信大家經常去商場購物,不管你有沒有停過車,商場的停車場不會是個陌生的存在,本次實操就是以商場停車收費為業務原型開展。業務需求相對簡單(實際業務要比案例中功能更複雜),主要是要能通過簡單的業務功能掌握到我們關心的微服務技術棧即可。

主要干係人就是商場物業管理部,提出的原始需求如下:

使用者手機號繫結商場的系統,在裡面新增車輛,每天到商場附近時可以簽到,領取積分,積分可以用於兌換限量的商場優惠券,也可以兌換洗車券,在停車場指定位置洗車。

使用者可以通過系統開通 vip 停車月卡,出入停車場時,無須額外付費。可以充值為月卡延期,充值時,為使用者贈送一定數量的積分,可以做為正常積分使用。充值後,使用者可以收到充值通知。

若使用者未開通月卡,出場時,必須在系統裡支付停車費用後,才能出場。費用多少按停車場約定的計費規則來計算。繳費後,使用者能收到繳費通知。

使用者進停車場前,能實時看到可用停車位數量。

在系統後台,可以看到使用者的支付流水、充值流水,車位使用情況等

業務場景很清晰,也比較常見(實際場景中,本系統應當與其它系統打通,資料共享,便於資料分析、統計挖掘等,實際功能同樣比這個更複雜些),本次就以如上的簡單需求,結合微服務技術棧,來一次從 0 到 1 的完整性開發實踐。

scrum 敏捷開發實踐,在國內應用的時間也不算短,不少企業已經成功應用於產品迭代開發中,本次實戰會融入敏捷思想,來指導這次的微服務開發實戰。本文的需求分析工作多數情況下是由 po(產品經理)完成。

按傳統的瀑布研發模式來走,流程大致時需求分析,輸出需求分析文件,而後進行概要設計、詳細設計(資料庫設計),並輸出對應的文件,後續再進行編碼工作。

敏捷中提倡可工作的文件高於詳盡的文件,所以無須嚴格按照傳統的模組輸出一堆文件,能表述清楚、能與團隊成員正確傳達即可。

基於原始需求,由 po 輸出使用者故事列表形成需求池 product backlog,每個迭代中從中按優先順序順序,放入不同的迭代中形成 sprint backlog,同時分解故事為任務(故事的粒度要比任務粗,是一組功能的組合),由組員一起將任務工作量估算並認領。任務工作量彙總後,就形成了當前迭代的總工作量,基於燃盡圖,隨著時間的延長以及工作進度的推進,可以清晰的從燃盡圖中看到任務的完成情況。可以借助於看板,將故事任務以不同色塊的 3m 便利貼貼在白板上,畫出待辦列表、進行中列表、已完成列表,任務完成後由組員調整位置。

(**於敏捷中文網)

為了提高工作效率,一般會借助對應的敏捷開發工具完成,比如 teambition、jira、禪道等等,裡面針對敏捷的各個環節都有很好的支援,相信能幫助大家節省不少成本。

依據原始停車需求,整合分析後可歸集為六個業務模組:

會員,會員資訊(主要是姓名、手機號、生日),車輛資訊(主要車牌資訊),月卡資訊(充值一定金額後,指定區間內免支付出入場,針對商場的工作人員或辦公區的白領),簽到資訊

停車場資源,車位(車輛停靠車位後,系統自動打標,可用車位扣減,停車場入口可用車實時更新)、道閘(基礎資料,真實場景中涉及到崗亭值班人員安排,裝置維護等)

積分,會員到達商場後簽到領取積分(如簽到一次可免費停車 2 小時,超出部分,以計費規則為準)。積分可兌換商場優惠券、洗車券。

計費,計費規則,車輛進場(記錄車輛入場時間,開始計費)、出場扣費(出場時識別車牌,依計費規則,支付停車費,分臨時車與月卡車兩種,臨時車現場收費,月卡車做有效期判定是符合條件後再出場)

財務,車輛出入的支付流水,會員月卡充值費用,收入統計

訊息,車輛出場支付訊息,會員充值訊息

兌換洗車券後,停車場內洗車消費

以上述需求歸集情況,羅列幾個代表性的使用者故事,取代傳統的需求文件。約定:商場停車系統以下簡稱為系統

作為乙個普通使用者,我希望可以使用手機號繫結手機號,並錄入車輛資訊,以便於可以離場時支付費用,接受支付結果通知。

作為乙個系統使用者,我希望可以開通停車場月卡,同時可額外獲得積分,以便於在離場時無須額外支付,快速通過。

作為乙個系統使用者,我希望可以通過系統日常簽到,得到積分,以便於可以兌換商場優惠券或停車場洗車券。

作為乙個普遍使用者/系統,我希望可以在進入停車場前,識別可用車位數,以便我做出相應的決策。

作為乙個系統月卡使用者,為月卡充值時收到消費通知,同時得到額外的積分。

作為乙個系統使用者,離場時需要按計費規則支付對應的停車費,並接收支付通知。

作為乙個系統管理使用者,我希望可以看到所有場內車位的使用情況、使用者的支付流水、會員月卡的充值流水。

基於以上故事,將故事拆解成較細的任務,拿第乙個 user story 舉例。

1.1 商場系統中繫結手機號,通過手機驗收碼,確定是本人手機。

1.2 完善個人資訊,可以儲存個人姓名、生日等資訊

1.3 錄入車輛車牌資訊,後期出場車牌識別後,自動計算車輛停車費

羅列出故事的具體任務後,開發人員針對任務情況,進行工作量評估,敏捷估算工作量常用用部分斐波那契數列(小時數):0 ,1 ,2 ,3 ,5 ,8, 13, 21 等,建議不超過 8 時,超過 8 意味著需要進一步分拆,爭取在一天內可以完成乙個任務。估算需要選取乙個基準複雜度,比如一次 db 互動為 1,在此基礎上,分析每個故事的複雜度,結合前面的工作量估算方法就可以給某個任務確定預估工時數。

有朋友會比較擔心,萬一預估的時間少了完不成怎麼辦,其實這只是初步預估,在實際執行時,以實際執行為準,沒有乙個敏捷團隊的迭代燃盡圖會像理想狀態一般燃燒。

實操過程中不少小夥伴存在乙個誤區:關注花費過的時間,而不是關注剩餘工作時間,燃盡圖中顯示是剩餘工時數量。

基於需求情況,找出核心的業務流程,指導後期的核心業務開發。

小結:本篇帶你結合 scrum 敏捷思想進行產品需求的分析,由 po 人員整理使用者故事、核心業務流程,由開發人員認領故事,分解故事為具體任務,並預估工作量,錄入敏捷輔助工具中,為期開發人員介入作好準備工作。

初中級的開發者普遍不重視需求,更追求技能的提公升,如果要走的快走的遠,一定要堅持把技術、業務一起抓。嘗試將所有 user story 羅列出來吧,並分解為 task 錄入到乙個特定的敏捷開發輔助工具中去,並結合敏捷開發全流程,跟隨專案的實戰全程體驗一番。

敏捷真的不需要留存文件嗎?

《以學術為業》概述 一 學問的使命和價值

凡是不能讓人懷著熱情去從事的事,就人作為人來說,都是不值得的事。對於柏拉圖而言,哲學家的使命是追求真實的存在,擺脫幻覺和影像的迷惑。概念是一切學問性知識最重要的工具之一。蘇格接底發現了它的重要意義,他使別人承認,要麼別人一無所知,要麼概念是惟一的真理,並且是永恆的真理。只要發現美 善,勇氣,靈魂或任...

NEXT融資9700萬美金以推動物流業的未來發展

2019 年 1 月 23 日,next,一家連線貨主與車主以滿足當今不斷增長的運輸需求的科技公司,在美國加利福尼亞州林伍德宣布,已獲得由布魯克菲爾德風險投資公司 brookfield ventures 牽頭 紅杉資本等公司參投的c輪融資 9700 萬美元,該公司總融資額已超過1.25 億美元。物流...

飛鶴乳業敢於挑戰,以歸零心態繼續前行

飛鶴乳業一路走來屬實不易,特別是近日上市一事,飛鶴乳業花費了巨大心思,雖然取得了驕人成績,但是飛鶴乳業一點都不驕傲,並且在致飛鶴乳業全體員工的一封信中警戒家人們在後期發展中要有歸零心態,只有這樣才能放開手腳,敢打敢拼.科研創新是冷友斌在信裡強調最多的一點。未來我們對科研創新的重視和投入將前所未有 這...