敏捷開發 - Agile Taichung Meetup 2017 九月份聚會 User Story 的那些人與那些事 心得記錄

參加社群可以透過討論獲得很多東西

今天參加這個活動目的是想要更了解敏捷,來的時候遇到了很多之前實習公司的人 XDD
從實習結束之後第一次遇到 哈哈哈哈哈哈
實習也剛好差不多結束滿一個月了呢 www

今天這一個活動的主題是 User Story 的那些人與那些事
主要講述的是關於 User Story 的事情,什麼是 User Story ,為什麼要有 User Story ,如何寫,誰寫 等等之類的討論分享

在講師的簡報裡面有定義什麼是 User Story 也就是所謂的 3C

  • 卡片(Card)-用一張卡片的大小簡述用戶的需求
  • 交談(Conversation)-重點在於透過 User Story 作為溝通基底,而非直接交棒
  • 確認(Confirmation)-透過用戶角度來進行驗收,看有沒有達到他們的需求

今天聽完這個分享就發現自己在實習的半年裡,想起來之前團隊裡的 Story 都是寫成 Spec,雖然這點對於團隊中沒有什麼不好,因為我們的PO 也是懂技術相關的人,且在需求的討論中獲得了這一個 Story 的價值,所以才會說沒有什麼不好。
不過我覺得還是得花時間去練習寫好的 User Story 或許會更好,畢竟 User Story 他本身存在的意義依然有他的原因,不然就寫 Spec 就好啦。

在整個分享過程之後,發現User Story 其本身存在的意義是為了讓大家都看得懂,他是一個溝通的媒介,也可以透過他來用客戶的角度來驗收。

講者有提到的Spec 和 Story 之間的差異的一個例子,如下

  • Spec => 身為一個求職者,我想在搜尋篩選器多一個學歷的選項,以至於我可以篩選出符合我學歷的工作。
  • Story => 身為一個求職者,我想要找到符合我學歷的工作,以至於我可以縮小合適的職缺範圍。

中間有一個人提出發問「不寫成 Spec 的其中一個原因是否是因為寫成 Spec 可能會限制開發者的彈性」
還有另一個人做出提問「在團隊跟業務之間如果對於需求非常的明確,是不是寫成 Spec 會比較好? 因為這樣就不用再花時間去理解Story所要描述的需求」
這兩個問題我個人覺得,其實要去追求 User Story 他本身存在的意義,如果知道他本身存在的意義,以及定義如何,那這兩個問題就可以很簡單的解決了
(如果有大大覺得不是這樣的話可以討論一下XDD 因為我也不知道我這個想法是不是對的

最後要提到的是簡報裡說的 很難撰寫「好的User Story 」的原因,總共六大項,總稱為INVEST,這六大項反過來想也可以翻解成,怎麼定義這是一個好的 User Story

  • Independent-非開發團隊的人很難理解需求是否獨立

  • Negotialble-撰寫時容易落入Spec 細節,不易進行討論

  • Valuable-通常是假設性的,因此不確定此價值是否存在

  • Estimable-非開發團隊很難理解何謂「可估計」的大小

  • Small-非開發團隊很難確認此需求是否「小」

  • Testable-非開發團隊很難理解何謂「可測試」

以下是我的理解

  • Independent,一個好的 User Story 會是一個獨立的需求
  • Negotialble,一個好的 User Story 會是容易進行討論的
  • Valuable,一個好的 User Story 會是可以知道他的價值的
  • Estimable,一個好的 User Story 會是好估計的
  • Small,一個好的 User Story 是適度的「小」的
  • Testable,一個好的 User Story 是一個可以被測試的需求

最後Q&A的部分我詢問講師一個問題「如果是傳統公司,適不適用 User Story?」
他回我說 「不適合,因為一般的傳統公司還是習慣寫成 Spec ,寫成 Spec 就會比較難以看出這一個需求的價值」
這個問答中我得到了 User Story 其實不只是要描述客戶的需求和溝通的媒介而已,重要的是它可以讓大家知道這一個需求的價值在哪裡,不是單純的「需求」而是「價值」

經過今天的整個活動的過程,自己對於 User Story 有更大的認識,至少不會像以前一樣,只知道要把需求寫出來,卻不知道其存在的意義到底是如何
不過要把 User Story 就需要花很多的時間來去把他撰寫出來,並且要透過許多的練習,才能寫出一個被定義為「好的 User Story」