Jira“消失”的24小時(shí)
寫在前面
故事墻作為交付項(xiàng)目中習(xí)以為常的工具,突然的“消失”,才讓我們意識(shí)到承載了工作中的很多東西。
沒有預(yù)想中的手忙腳亂,團(tuán)隊(duì)的工作卻也沒有想象中的停滯不前。但一些意料之外的阻礙,帶給了我一些對(duì)于故事墻價(jià)值的思考。
以下是正文:
早上 8:34
睡眼惺忪的我打開手機(jī),便看到群里已經(jīng)熱鬧起來
“又有線上問題了”
“服務(wù)器連不上去了”
......
我心里雖然有些波瀾,但卻并沒有很擔(dān)心。
8:45
客戶在微信群里反映,“登不上故事卡墻了 , 沒法測uat了”。
我想,“客戶太勤奮了吧,還要在9點(diǎn)會(huì)議前爭分奪秒測試。”
“Jira之前也有這種暫時(shí)登錄不了的情況,您別著急,稍等一會(huì)兒。”
在群里安撫完客戶之后,我打開電腦,連虛擬專用網(wǎng),輸入驗(yàn)證碼,一系列熟練的操作后,刷新之前打開的Jira板子,果然也遇到了和客戶一樣的404報(bào)錯(cuò)的現(xiàn)象。為了多試幾次,我還細(xì)(shou) 心(can)的把之前我所有已經(jīng)緩存的頁面都刷新試試,結(jié)果當(dāng)然是一片報(bào)錯(cuò)。
此時(shí)的我,還天真的以為,這次只是像之前多次類似系統(tǒng)不穩(wěn)定一樣的暫時(shí)現(xiàn)象,也從沒想過Jira板子的消失和早晨的線上問題是同源。
圖源自:https://www.atlassian.com/blog/jira-software/the-new-jira-begins-now
9:30
機(jī)智的同組小伙伴,沒有像我一樣手殘的刷新板子。站會(huì)依舊可以有條不紊的進(jìn)行。
直到站會(huì)結(jié)束,Jira依舊打不開,此時(shí)的我才意識(shí)到,可能不是暫時(shí)的系統(tǒng)問題。從群里得知,起碼今天前恢復(fù)沒有期望的結(jié)果之后,我突然有些手足無措。
“沒有了板子,我們還能正常開卡和Desk Check嗎?QA同學(xué)的測試會(huì)不會(huì)受到影響啊?我在進(jìn)行的業(yè)務(wù)沉淀還能順利繼續(xù)嗎?” |
仿佛是本來信心滿滿的開卷考試,突然被沒收了小抄。連本身早應(yīng)爛熟于心的“知識(shí)點(diǎn)”,都有些不確定。
9:45
在又抱著僥幸刷新了幾次無果之后,我定了定神,想到了幾條不幸中的萬幸:
1. 對(duì)于Dev & QA同學(xué)來說:
團(tuán)隊(duì)在項(xiàng)目開始之初,除了Jira 外,還建立了內(nèi)部共同維護(hù)test case的Trello板子。這樣做可以使得Jira只保留面向客戶的核心業(yè)務(wù)邏輯、故事卡&項(xiàng)目進(jìn)度的信息,而更加細(xì)節(jié)類的“kickoff 清單”、工序信息和接口文檔等就維護(hù)在Trello板子上。整個(gè)流程需要dev同學(xué)在卡開前先擬寫case,再在開卡和測試期間,由BA和QA同學(xué)一起補(bǔ)充。Trello上的case往往不僅會(huì)比Jira上的AC更全,同時(shí)還有TL拆的工序,開卡結(jié)卡注意事項(xiàng)等重要信息。所以,對(duì)于QA和已經(jīng)開卡的dev小伙伴來說,Trello其實(shí)已經(jīng)作為他們工作期間的主要工具,Jira的消失影響不大。
2. 對(duì)于BA來說:
首先,關(guān)于需求溝通和澄清的工作。慶幸的是,項(xiàng)目已經(jīng)接近尾聲,大部分和客戶需要確認(rèn)的內(nèi)容已經(jīng)完成。
其次,關(guān)于項(xiàng)目迭代規(guī)劃的工作。得益于剛上項(xiàng)目時(shí),受到Senior BA的啟發(fā),除Jira卡墻外,我自己還維護(hù)了一個(gè)比較完整的迭代計(jì)劃。雖然只有卡號(hào)和卡的標(biāo)題,但上面還記錄了簽卡進(jìn)度,開發(fā)進(jìn)度,開發(fā)周期和估點(diǎn)等詳細(xì)信息,可以隨時(shí)拿出來當(dāng)臨時(shí)的卡墻。
最為感恩的是,測試系統(tǒng)的大部分功能并未受到影響,可以通過系統(tǒng)操作,喚起大部分的記憶。
3. 對(duì)于客戶來說:
雖然現(xiàn)在即將到了UAT測試比較密集的階段,但還好我們的項(xiàng)目不是by迭代上線。距離最后真正上線還有一定的時(shí)間。即使勤奮的客戶被迫需要“休息”兩天,Jira的臨時(shí)罷工,不會(huì)嚴(yán)重影響到上線前客戶uat測試的進(jìn)度。
綜合以上幾點(diǎn),我有些煩躁的心,慢慢放松下來。
到了下午的時(shí)候,我發(fā)現(xiàn),工作群里也少有因?yàn)镴ira的問題而產(chǎn)生的抱怨,大家的工作都在有條不紊地進(jìn)行。本以為可能最會(huì)受到影響的開卡、Desk Check和測試的工作并沒有太多受到阻礙,反而是其他一些相比較為“邊緣”的工作受到了一些意料之外的影響:
- 歷史需求細(xì)節(jié)難以回憶:由于正處于項(xiàng)目尾聲,我還在對(duì)負(fù)責(zé)的模塊進(jìn)行業(yè)務(wù)沉淀的工作。主要的流程已經(jīng)有很多成熟的文檔,但缺乏一些比較細(xì)節(jié)和tricky的邏輯的總結(jié),以便幫助后人避坑。然而,由于我一直拖延,很多在2月/3月聊的需求的細(xì)節(jié)場景單憑記憶很難回憶起來......
- 原有系統(tǒng)邏輯細(xì)節(jié)模糊:由于項(xiàng)目是屬于遺留系統(tǒng)改造,除了增加新的功能外,保證原有系統(tǒng)邏輯不受影響也是項(xiàng)目成功的重要標(biāo)準(zhǔn)之一。但部分原有功能背后計(jì)算邏輯復(fù)雜,頁面信息較少,且屬于早期確認(rèn)的需求;導(dǎo)致記憶比較模糊,有些細(xì)節(jié)我不能完全確認(rèn)。
- 測試工作成本增加:對(duì)于QA測試,即使我們有Trello神器,但遇到需要參考流程圖,計(jì)算案例,導(dǎo)入文件樣例,跨squad卡的鏈接等需求時(shí),只有干巴巴簡單文字的Trello就顯得有些愛莫能助。增加了QA小伙伴再去重新找這些資料的時(shí)間成本。
總結(jié)下來,我發(fā)現(xiàn),在本項(xiàng)目特殊的背景下,對(duì)一個(gè)已經(jīng)非常熟悉敏捷開發(fā)流程的團(tuán)隊(duì)來說,Jira 本期望主要承載【可視化流程管理】的作用,仿佛沒有想象中那么重要。而之前并未太關(guān)注的【歷史業(yè)務(wù)資源庫】的角色,在“板子消失事件”中凸顯出來。
首先,無論借用我們團(tuán)隊(duì)自己維護(hù)的Trello,QA同學(xué)自己的用例庫,還是我建的野生計(jì)劃板,在較短的時(shí)間內(nèi)群策群力快速建立一個(gè)新卡墻并非難事。其次,憑借著系統(tǒng)操作,會(huì)議記錄,流程圖等文檔,卡中大部分的AC也能基本補(bǔ)全,只是時(shí)間長短的問題。
然而,對(duì)于這個(gè)承載了多年積累,近百個(gè)項(xiàng)目,多個(gè)供應(yīng)商,上萬張故事卡、無數(shù)業(yè)務(wù)文檔和“幾代人”心血的“故事墻”來說,它已經(jīng)不僅僅是一塊簡單的團(tuán)隊(duì)協(xié)作的“板子”,而是快成為了公司的第二大腦,作為每次需求更新,軟件改造重要的知識(shí)來源。尤其是在本次遺留系統(tǒng)改造的項(xiàng)目中,該隱藏價(jià)值發(fā)揮的淋漓盡致。
當(dāng)然,如此龐雜,且管理并不太規(guī)范的“資料庫”, 也會(huì)存在諸多問題:
- 故事卡管理比較混亂,經(jīng)常會(huì)出現(xiàn)一個(gè)功能點(diǎn)的故事卡(feature)橫跨多個(gè)史詩級(jí)別的故事卡(epic),或者很多錯(cuò)誤狀態(tài)的故事卡。即使依靠關(guān)鍵詞搜索也會(huì)占用大量的時(shí)間去查找、核對(duì),是不是真實(shí)開發(fā)了的功能/是否是最新的邏輯。
- 故事卡分散在各處,沒有比較完整故事線串聯(lián),且需求更新眾多,可能需要花費(fèi)大量的時(shí)間去翻閱是否還有隱藏/遺漏的場景。
- 缺少業(yè)務(wù)背景。故事卡還是更多的關(guān)注系統(tǒng)功能的實(shí)現(xiàn),對(duì)于”WHY“的問題沒能做更好的闡述。只有憑一句比較模糊的”so that…”的闡述,常常讓后面參考的同學(xué)摸不著頭腦。如果之后做需求更新時(shí)遇到了新PO,客戶可能也很難揣測當(dāng)時(shí)設(shè)計(jì)時(shí)的想法,從而留下一些隱患……
根據(jù)5個(gè)月左右的項(xiàng)目體驗(yàn),對(duì)于有類似持續(xù)有需求更新,且強(qiáng)依賴于故事墻做業(yè)務(wù)沉淀的項(xiàng)目,我總結(jié)可以從以下一些日常小事入手改進(jìn):
- 明確故事卡的管理規(guī)則:對(duì)于故事卡的名字,狀態(tài),和不同級(jí)別的故事卡之間的關(guān)系,盡量做到準(zhǔn)確、清晰易讀。如果是針對(duì)做需求更新的卡,可以嘗試鏈接之前有很強(qiáng)業(yè)務(wù)相關(guān)聯(lián)的老卡,方便追蹤。同時(shí),善用comments,增加附件等功能,盡可能讓卡中的信息做到全而不漏。
- 場景化業(yè)務(wù)需求:在進(jìn)行業(yè)務(wù)沉淀的時(shí)候,在以文檔/Keynote的方式進(jìn)行文字說明/截圖時(shí),也可以插入 user journey + 對(duì)應(yīng)故事卡鏈接。不僅可以幫助客戶在UAT期間建立更好的場景概念,還可以讓其他有需要的同學(xué)在了解high level的流程的基礎(chǔ)上,再看卡了解細(xì)節(jié)。建立宏觀和細(xì)節(jié)的連接。
- 適當(dāng)補(bǔ)充必要的需求背景:在寫卡和做業(yè)務(wù)沉淀的過程中,如果允許的情況下,可以更多的增加對(duì)于業(yè)務(wù)場景的分析、實(shí)例化需求、用戶使用習(xí)慣、和功能設(shè)計(jì)初衷等描述。因?yàn)楹芸赡埽銖目蛻籼幜私獾降莫?dú)家業(yè)務(wù)信息會(huì)成為之后需求更新方案的關(guān)鍵。
- 一定要及時(shí)整理業(yè)務(wù)知識(shí)/ test case:重要的流程圖,會(huì)議紀(jì)要,場景分析的文檔也要及時(shí)在過程中歸類整理,有助于之后迅速定位,也方便后人參考。其實(shí),即使沒有這次的事件,今年1、2月份那些更多涉及到實(shí)際業(yè)務(wù)場景等偏“WHY”的知識(shí)也有些淡忘,如果當(dāng)時(shí)及時(shí)總結(jié),也可以很好地避免我再去和客戶請教時(shí),卻被反問 “你是要準(zhǔn)備出書?”的尷尬場面。
當(dāng)然,冰凍三尺,非一日之寒, 何況是在如此復(fù)雜和時(shí)間跨度大的背景之下。但從我做起,從小事做起,期望可以將Jira 原本【歷史資料庫】的角色更好的發(fā)揚(yáng)光大。
第二天早上8:45
那位勤奮的客戶依舊因?yàn)闇y不了UAT在群里的”哀嚎”:
"Early birds have no feed."
如今,時(shí)間也早已過去了24小時(shí),心心念念的板子還沒恢復(fù)。雖然這只是一次偶發(fā)事件,但通過這次小意外,我想我們都有了一些收獲。
最后,祝福Jira早日康復(fù)。
【本文是51CTO專欄作者“ThoughtWorks”的原創(chuàng)稿件,微信公眾號(hào):思特沃克,轉(zhuǎn)載請聯(lián)系原作者】