【Scrum實踐】——如何拆分Story
阿新 • • 發佈:2018-12-24
去年入職公司不久,就趕上了公司“敏捷”開發的改革大潮。從最初的敏捷培訓,到摸著路探索,也有4個月的時間了。
現在,對於grooming,planning,daily stand up,demo review retrospective這些Scrum中的活動已經清楚了很多。
活動 | 內容 |
---|---|
grooming | 梳理需求,估story point |
planning | 將story放到sprint中 |
daily stand up | 分享完成的,要完成,問題 |
demo review | demo演示 |
retrospective | 反思回顧這個sprint做的好的,還有不好的 |
但從這些活動形式和內容上看,這些活動都很有必要,比如grooming,可以幫助大家理解需求,planning,可以讓大家知道優先在這個sprint做的,和接下來的sprint中要做的……可是隻有這些,不足以讓我們對“敏捷開發”進行瘋狂追求。
在這四個月的時間裡,被問的最多的就是敏捷開發有什麼好處,和之前的開發模式有什麼不同?
對於瞭解過敏捷開發的人來說,他一定會脫口而出幾個詞:快速交付,快速響應使用者需求……但是,在真正實踐中如何達到這些目標,我覺得這裡面有很多學問要做,當然也和本文這次要分享的內容有關。
在一個Sprint完成時,應該保證這個Sprint中的Story已經開發實現並已測試完,部署好,可以交給使用者。這裡的關鍵就是劃分Story。
我們知道一個Sprint是兩週的時間,如果一個Story太大,就無法達到上述要求。那麼問題來了,如何拆分它呢?
下面的視訊中,闡述了拆分Story的技巧:
http://betteruserstories.com/training/videos/2
SPIDR | 理解 |
---|---|
Spikes | Research,前期研究,比如要研究會用到的新技術 |
Paths | 比如,一個需求包含不同種方式,比如新增Contact功能,可以從Portal,API,Upload三種方式,那麼就可以分成3個Story |
Interfaces | 比如一個需求同時支援安卓,IOS,PC端 |
Data | 比如我們系統有這樣的需求:在危急事件發生時,需要通知事件發生區域周圍的人,但是這些人的位置資訊,包括固定地點資訊,如在這個區域居住或辦公的,還有動態位置資訊,如在這個地方出差的,或者偶然進入這個區域的,這些位置資訊資料來源不同,我們可以按這個劃分,逐步完善。 |
Rules | 比如,使用者想要看到不同來源的Contact數量的統計報告,但是系統統計所有Contact數量會很慢,但是一定數量的Contact比較快,這是我們可以先將規則定位比如30000條來進行統計,然後在其他的Story中效能優化,可以再改變這個規則 |
總之,在拆分Story時,SPIDR是個很好的技巧。但是,實踐當中不用把這些方法都用上,只要能把Story分的小到易於完成就可以了。