iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 2
1
自我挑戰組

Ruby on Rails 新手的30個問題!系列 第 2

Day_02 user story?

嗨!各位朋友大家好,打給後,歹嘎吼,胎尬喉,我是阿圓,開始之前先放張喬巴,來撫慰心靈~

一般來說在專案開發的時候,會將網站的功能轉化成,user story ,也就是利用簡短的方式,將功能描述出來,最常見到的寫法就是:
(某個角色) 能夠做到(某種功能),以達到(商業價值)

As a (role of user), I want (some feature) so that (some business value).

例如:身為使用者,我可以新增、修改以及刪除貼文

雖然簡易的個人部落格是不太需要這件事情的,不過對於一個新手來說,還是來練習寫寫看吧!

身為使用者,我可以:

  1. 編輯我的個人檔案
  2. 新增、修改、刪除文章
  3. 文章可支援markdown語法
  4. 可上傳圖片
  5. 看到貼文的留言
  6. 將貼文做分類

身為訪客,我可以:

  1. 看到所有的貼文
  2. 可以對於貼文留言
  3. 可以利用分類來篩選文章

在我學習的過程中,寫user story這件事好像變成是一種既定的流程...

所以到底為什麼要寫user story呢?

在解答這個問題之前,先問問自己,知道什麼叫做敏捷開發或是Scrum嗎?
好吧,兩個月前的我的確不知道...。

在軟體開發的模式上,目前常常聽到的就是敏捷式開發(Agile),(另一種則是瀑布式開發(Waterfall)),是一種:以人為本,強調團隊間的合作互動的開發方式,wiki上講到:

是一種應對快速變化的需求的一種軟體開發能力。相對於「非敏捷」,更強調程式設計師團隊與業務專家之間的緊密協同運作、面對面的溝通、頻繁交付新的軟體版本、緊湊而自我組織型的團隊、能夠很好地適應需求變化的代碼編寫和團隊組織方法,也更注重軟體開發過程中人的作用。

而Scrum就是實現敏捷式開發的一種方法,採用小增量,多迭代,尋求回饋為核心價值。
若對上面不太了解的可以看看wiki跟這幾篇文章:
深入淺出「敏捷軟體開發:Scrum」(上)
深入淺出「敏捷軟體開發:Scrum」(中)
深入淺出「敏捷軟體開發:Scrum」(下)

好,話題扳回來,在scrum的開發模式下,會要求把功能拆成細項,並寫成指定的格式,而格式就是我們上面所提到的:

As a (role of user), I want (some feature) so that (some business value).

這是敏捷開發非常重要的一環,可以將功能拆分成有創造價值的區塊,每個區塊又各自獨立,十分利於管理!(還可以標註優先權!)

寫到最後來幫大家統整一下,為什麼要寫user story呢?

將功能寫成 user story 的方式,可以將功能拆分成細項,讓團隊實現小增量的提交,也能讓團隊便於管理專案的進度(通常會配合看板一起使用!)

雖然這一篇跟 rails 好像沒什麼關係,不過在專案開發還是會碰到,就請各位大大見諒一下/images/emoticon/emoticon41.gif

謝謝各位,我們明天再見!


參考文章:
ihower
深入淺出「敏捷軟體開發:Scrum」(上)
深入淺出「敏捷軟體開發:Scrum」(中)
深入淺出「敏捷軟體開發:Scrum」(下)


上一篇
Day_01 參賽?
下一篇
Day_03 MVC架構?(1)
系列文
Ruby on Rails 新手的30個問題!30

尚未有邦友留言

立即登入留言