功能π的敏捷之旅

本文里會以一個功能π的開發(fā)流程為例,展示公司內(nèi)一個敏捷團隊的軟件開發(fā)實踐捺檬。

項目背景

客戶R是澳洲最大的在線房地產(chǎn)廣告平臺再层。公司團隊是協(xié)助R客戶創(chuàng)建一個針對中國市場的房產(chǎn)信息廣告平臺,用來展示澳洲以及其他海外房產(chǎn)堡纬,方便國內(nèi)投資者聂受。

作為一個全功能的交付團隊,整個團隊的人員一共11人烤镐,成員包括TL * 1蛋济、BA * 1、UX * 1炮叶、QA * 1碗旅、Ops * 1渡处、Dev * 6∷畋伲客戶方面Delivery Lead * 1 和 Product Owner * 1, 兩人均在澳洲医瘫。

客戶負責提供項目的Roadmap,優(yōu)先級以及初步的需求旧困。后續(xù)由公司開發(fā)團隊完成從需求分析醇份、交互設計、功能設計吼具、實現(xiàn)僚纷、測試、以及部署上線的全生命周期的工作馍悟。

功能π的敏捷之旅

下面以一個功能π的開發(fā)流程為例畔濒,展示筆者所在項目的開發(fā)實踐。

計劃

項目的路線圖Roadmap是由Trello來管理的锣咒。Epic需求會由客戶PO記錄在Trello中侵状。Trello board中設置的有不同的列,如Backlog, Planned, Next, In progress, Completed等毅整。每列中卡片由上而下代表優(yōu)先級的遞減趣兄。Trello board作為項目high level需求的管理工具,可以很直觀的了解項目整體的進展狀況悼嫉。

每兩周全團隊會進行一次計劃會議艇潭,類似IPM,但是主要是根據(jù)Roadmap上的優(yōu)先級戏蔑,確定近期的開發(fā)計劃蹋凝。
最終的輸出是一個具體的task列表。其中會包括:

  • 當前進行中的任務
  • 新加入的功能π
  • 需要fix的bug
  • 技術卡

計劃會議上會把上述列表中的任務逐個討論总棵,目的是團隊對于近期的優(yōu)先級有一致的認識鳍寂,以及對每個任務的內(nèi)容做澄清。

團隊JIRA作為需求管理工具情龄,并同時使用物理Kanban墻以方便站會時討論迄汛。計劃會議中計劃的任務會在JIRA kanban board中挪至Selected for Dev列。

對于新功能π而言骤视,PO首先會在Trello上創(chuàng)建卡鞍爱,并設置優(yōu)先級。開發(fā)團隊會按照優(yōu)先級將功能π計劃到后續(xù)的開發(fā)中专酗。

需求來了

功能π開發(fā)的第一步就是由BA對客戶提供的需求進行進一步的分析睹逃、細化、澄清和確認祷肯。如果功能π還涉及到用戶交互唯卖,UX也會參與到這一步粱玲。UX會基于BA的分析,對信息流進行梳理拜轨,完成用戶界面和交互設計。最終的輸出結(jié)果為Jira上的用戶故事允青。

用戶故事一般遵從As…I want…so that的格式橄碾。在用戶故事的內(nèi)容上,一般會包含下面信息:

  • 描述信息: 關于功能π的描述颠锉,提供更多的上下文信息
  • 驗收標準(Acceptance Criteria)
  • 完成定義(Definition of Done)
  • UI相關設計文檔

另外一些信息會在后續(xù)環(huán)節(jié)持續(xù)補充上去法牲,如分解的子任務,受影響的模塊琼掠,需要部署的模塊等拒垃。
分析完成的用戶故事卡片會被挪至Ready for Dev列,后續(xù)會有開發(fā)著手開發(fā)瓷蛙。

Story Kickoff

開發(fā)人員在開始一個新的任務前悼瓮,會首先進行story kickoff。這個環(huán)節(jié)主要目標是大家對功能有正確的認識艰猬,同時避免技術坑横堡,簡言之就是確保在以正確的方式做正確的事情。kickoff環(huán)節(jié)會有QA冠桃,Dev, BA, UX以及TL共同參與命贴。在kickoff中,Dev會首先介紹當前自己對這個功能的理解食听,用戶如何與系統(tǒng)進行交互胸蛛,如何驗證功能完成、以及技術實現(xiàn)樱报。如果是一對Pair在kickoff葬项,一般會有經(jīng)驗較少的Dev來進行介紹。

Story kickoff成功后肃弟,Dev會對功能π進行任務分解玷室,并按照優(yōu)先級以及依賴關系排列子任務開發(fā)順序。任務分解的結(jié)果也會更新到用戶故事中笤受,一般會在用戶故事卡下建立子任務穷缤,方便追蹤進度。

結(jié)對編程

團隊一般采用結(jié)對編程(Pair programming)的方式進行開發(fā)箩兽。結(jié)對編程的優(yōu)點在于快速的知識傳遞津肛,無論是對于剛進入團隊的新人,還是剛接觸某個模塊的老鳥汗贫,業(yè)務知識還是編程技能身坐。

Pair

在功能π的開放中秸脱,這對Pair中的兩個Dev會以TDD的方式,合作完成業(yè)務代碼和測試代碼的實現(xiàn)部蛇。測試部分包括單元測試和自動化驗收測試兩部分摊唇。對于驗收測試的部分,Dev有時也會和QA一起pair完成驗收測試腳本的編寫涯鲁。

團隊中也會周期性的輪換pair巷查,這樣每個人都有機會接觸到不同的模塊,使得業(yè)務知識在團隊內(nèi)更好的傳遞抹腿。

每日站會

團隊每天會使用Always On Video和客戶一起進行站會尸闸,更新項目的進展元扔。

持續(xù)集成

在站會中捷枯,每個人/Pair會更新一下三個方面的內(nèi)容:

  • 上一個工作日的工作內(nèi)容
  • 遇到哪些技術挑戰(zhàn)晓锻,有沒有風險?
  • 今天的工作計劃

同時肩祥,團隊會更新Kanban物理墻上功能π的狀態(tài)后室。

持續(xù)集成

持續(xù)集成目前應該已經(jīng)是軟件開發(fā)的標配實踐了,什么搭幻?你的團隊還沒咧擂?

持續(xù)集成

功能π的新代碼每天都會多次提交到git, 持續(xù)集成工具會自動檢測代碼提交,并觸發(fā)構建流水線檀蹋。流水線中的驗證環(huán)節(jié)會自動執(zhí)行測試松申,驗證系統(tǒng)功能正常與否,將構建物發(fā)布到軟件倉庫, 并最終將最新版本軟件部署至測試環(huán)境俯逾。


持續(xù)集成

Code Review

每個工作日的5點至6點是code review時間贸桶。這個環(huán)節(jié)所有的Dev會集中在大屏幕前,集中review當天提交到git的代碼桌肴。code review可以審查代碼中的瑕疵皇筛,從基本的編碼規(guī)范、代碼壞味坠七、明顯的邏輯錯誤水醋、以及功能實現(xiàn)上的疏漏等。同時彪置,code review也是很好的knowledge transfer的方式拄踪。

持續(xù)集成

Story Signoff

Dev完成功能π的開發(fā)后,會邀請BA拳魁,QA惶桐,UX和TL進行story signoff。Dev會在本地或者測試環(huán)境中準備好測試數(shù)據(jù),向參與Signoff的各位同事演示功能姚糊。期間贿衍,QA會要求Dev按照多個測試場景進行多次演示,以確保功能基本完整救恨。UX也會按照設計Mockup對功能實現(xiàn)進行比對贸辈,確保在各個屏幕尺寸下顯示符合設計。
Signoff通過后忿薇,Dev會更新kanban墻上功能π對應的故事卡的狀態(tài)至 Ready for QA裙椭。

QA

QA會從看板墻的Ready for QA列中將功能π對應的故事卡更新至 In QA, 并在測試環(huán)境中按照設計的測試用例進行驗證。

如果發(fā)現(xiàn)功能問題署浩,會記錄至功能π的故事卡,并交由Dev修復扫尺,并再次Signoff后筋栋,繼續(xù)QA環(huán)節(jié)。
驗證無誤的話正驻,功能π會被部署到預生產(chǎn)環(huán)境(Staging環(huán)境)弊攘。這樣客戶可以在預生產(chǎn)環(huán)境對功能進行review。

最終姑曙,π的故事卡會被挪至Ready for Release襟交,并在下次上線時部署至生產(chǎn)環(huán)境。

部署上線

團隊的持續(xù)集成流水線中包含了部署上線的階段伤靠。如前所述捣域,每次構建成功,都會將最新的軟件版本部署至測試環(huán)境宴合。發(fā)布到預生產(chǎn)環(huán)境和生產(chǎn)環(huán)境會按照項目和業(yè)務要求焕梅,手動觸發(fā)。

對于暫時不需要發(fā)布上線的功能卦洽,如需要等待銷售或市場部門配合贞言,團隊會使用功能開關(Feature Toggle),將新版本部署至生成環(huán)境阀蒂,但并不上線新功能该窗。

feature toggle

另外,在部署流水線中蚤霞,也集成了一部分的自動測試酗失。當新版本在預生產(chǎn)環(huán)境和生產(chǎn)環(huán)境部署完成,但并未正式切換前争便,這些自動測試會被執(zhí)行级零,以確保系統(tǒng)功能正常。

持續(xù)集成

至此,功能π就完成了它的敏捷之旅奏纪,成功上線鉴嗤!

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市序调,隨后出現(xiàn)的幾起案子醉锅,更是在濱河造成了極大的恐慌,老刑警劉巖发绢,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硬耍,死亡現(xiàn)場離奇詭異,居然都是意外死亡边酒,警方通過查閱死者的電腦和手機经柴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來墩朦,“玉大人坯认,你說我怎么就攤上這事∶セ粒” “怎么了牛哺?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長劳吠。 經(jīng)常有香客問我引润,道長,這世上最難降的妖魔是什么痒玩? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任淳附,我火速辦了婚禮,結(jié)果婚禮上凰荚,老公的妹妹穿的比我還像新娘燃观。我一直安慰自己,他們只是感情好便瑟,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布缆毁。 她就那樣靜靜地躺著,像睡著了一般到涂。 火紅的嫁衣襯著肌膚如雪脊框。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天践啄,我揣著相機與錄音浇雹,去河邊找鬼。 笑死屿讽,一個胖子當著我的面吹牛昭灵,可吹牛的內(nèi)容都是我干的吠裆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼烂完,長吁一口氣:“原來是場噩夢啊……” “哼试疙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起抠蚣,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤祝旷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后嘶窄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體怀跛,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年柄冲,在試婚紗的時候發(fā)現(xiàn)自己被綠了吻谋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡现横,死狀恐怖滨溉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情长赞,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布闽撤,位于F島的核電站得哆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏哟旗。R本人自食惡果不足惜贩据,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望闸餐。 院中可真熱鬧饱亮,春花似錦、人聲如沸舍沙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拂铡。三九已至壹无,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間感帅,已是汗流浹背斗锭。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留失球,地道東北人岖是。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親豺撑。 傳聞我的和親對象是個殘疾皇子烈疚,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,099評論 25 707
  • 篇前話 經(jīng)歷過傳統(tǒng)的軟件測試工作,每天的任務就是寫測試用例前硫,跑測試用例胞得,改測試用例,報bug屹电,驗bug阶剑。測試用例和...
    Clare_可樂閱讀 1,925評論 0 4
  • 2015年11月ThoughtWorks發(fā)布的技術雷達提到一個新的主題——產(chǎn)品環(huán)境下的QA(QA in Produ...
    BY林子閱讀 5,103評論 0 10
  • 你不相信 星星真的會掉在地球上 長不大的孩子唱著永恒的歌謠 我想和你一起慢慢變老 月亮偷聽了誰的秘密 把它藏在床底...
    無魚閱讀 139評論 3 3
  • 《重來》,這本更為簡單有效的商業(yè)思維的書籍真的特別有意思危号。 我從中摘取今天看到的內(nèi)容牧愁,很值得推敲并具有實在價值的內(nèi)...
    日槿閱讀 768評論 0 0