敏捷式開發工作坊:淺談SRCUM基礎專案管理應用

YuHau Huang
7 min readJul 7, 2020

--

本活動由實習船舉辦,邀請curator共同創辦人 — Alvin陳俞安作為工作坊講者與主持人。

敏捷(Agile)是一種軟體開發的精神,常用SCRUM、KANBAN、XP等特定的方法來落實。本文將聚焦於敏捷為何?以及如何將Agile透過SCRUM落實於專案管理中。

◎若想要有更好的閱讀體驗,請點擊此連結

敏捷精神

敏捷精神,顧名思義就是希望可以更有效率的進行開發流程,而究竟有哪些具體準則?可以參照支持敏捷開發的社群所提出了敏捷宣言以及敏捷原則

敏捷宣言

  • 獨立的工作成員與人員互動 勝於 流程與工具的管理 (重視人)
  • 工作產生的軟體 勝於 廣泛而全面的文件
  • 客戶的合作 勝於 契約的談判
  • 回應變動 勝於 遵循計畫

敏捷原則

  1. 最為優先的事情是透過早期與持續交付有價值的軟體來使客戶滿意。
  2. 歡迎需求的變動,即使是在開發的晚期。敏捷式流程駕馭變動來作為客戶的競爭優勢。
  3. 頻繁的交付工作產生的軟體,自數週至數月,週期越短越好。
  4. 領域專家與開發成員必須一同作業,並貫穿整個專案開發時期。
  5. 使用積極的工作成員來建構專案,給予他們環境以及支援所需的一切,然後信任他們能夠完成工作。
  6. 在開發團隊中最快也最有效的傳遞資訊方法就是面對面的溝通。
  7. 工作產生的軟體是衡量進度最主要的依據。
  8. 敏捷式流程倡導水平一致的軟體開發
  9. 專案發起者,開發人員以及使用者都必須持續的維持專案進度。
  10. 持續重視技術的優勢以及設計品質
  11. 最好的架構、需求以及設計會出現在能夠自我管理的團隊裡
  12. 在規律的反覆之間,團隊會反省與思考如何更有效率,然後相對的來調整與修正團隊的開發方式。

我相信你一定沒看完上面的敏捷宣言與原則XD,但是沒關係,我們直接來看看過去的Waterfall瀑布式管理以及本文Agile敏捷式管理的差別:

專案管理

一個軟體開發的專案目標,可以拆成好幾道目標,這些次要目標還可以再細分成幾個小任務去達成,Alvin在本場工作坊的開頭就用自己過去參加野青眾《人類動物園HUMAN ZOO》的經驗來說明專案管理的任務與目標之間的關係。人類動物園的策展內容如下:

圖片來源:體會主流的孤寂和空虛的自己之後

如果用TRELLO的形式去呈現與理解這個大型策展專案可以表現呈如下:

此TRELLO看版為作者粗略畫製,非策展團隊實際專案進行內容。

看到最左邊的欄位,5個card(帳篷)組成一個list(馬戲團計畫),而5個list(計畫)再組成一個board(人類動物園),透過這些細分的任務去組合,最後達成人類動物園這個展覽想要傳達的理念與目標。

▼了解專案的構成之後,我們就可以看落實agile精神最著名的SCRUM方法。

SCRUM在專案管理中的運用

scrum在英語是橄欖球運動中「列陣爭球」的意思,團隊做為一個整體前進,把球傳來傳去。

其中主要的開發流程為迭代式增量,短短一個禮拜就從定義需求到產品設計與製做得出一個MVP(最小可行性產品)得到反饋後再迅速進行修正。反觀瀑布式開發在定義需求可能就會花兩個月,反覆修改到產品上市可能就花費一年多的時間,對於迅速變動的網路市場無法立即反應需求。

圖片來源:Visual paradigm。scrum是敏捷管理中被廣為人知的方法之一。

scrum 3 4 3(3個角色、4個會議、3個產出)

SCRUM是敏捷開法的其中一種方法,它提供了一個專案管理的框架,在其中最基本核心的元素可以用一個口訣來背:scrum 343,3個角色、4個會議、3個產出。

3個角色

  1. PO(Product Owner):確定方向與願景,負責決定要開發產品那些功能、設定產品代辦清單的優先順序。
  2. SM(Scrum Master):熟悉敏捷開發的人員,引導開發團隊進行敏捷開發、確保溝通會議進行順利、和PO協調產品待辦清單。
  3. Team:開發團隊。對於要開發的領域具備專業,可以估計任務所需開發時間。

用打掃家裡來比喻,PO像是媽媽決定要打掃家裡哪些地區;SM像是爸爸開始替家裡成員分工打掃並制定時間限制;Team就是全部家庭成員。

4個會議

  1. 衝刺計畫會議(Sprint Planning Meeting):確定這一個Sprint的Product Backlog和Sprint Backlog(下方產出)通常會使用user story去描述任務。 註:一個sprint ≒ 1~3week。
  2. 每日站立會議(Daily Standup Meeting):顧名思義,每天花5~10分鐘站立所有成員面對面確認彼此的進度狀況,看是否有問題或有重複的事項。切記勿超過15min。
  3. 衝刺審查會議(Sprint Review Meeting):每個sprint的最後一天舉行,team回報給PO該Sprint中衝刺代辦清單的任務進度,主題鎖定在產品,主要是在衡量任務的達成狀況。 需要Scrum Board來進行審查。

4. 衝刺回顧會議(Sprint Retrospective Meeting):在審查會議之後,主題鎖定在團隊的開發程序上,看程序哪邊有問題或可以再優化的。 需要透過Retrospective Board進行檢視。

3個產出

  1. 產品待辦清單(Product Backlog):產品功能性需求、非功能性需求,還有技術團隊的需求。
  2. 衝刺待辦清單(Sprint Backlog):開發團隊根據其專業將任務拆分成子任務並排列性價比,通常會使用KANO模型與重要緊急四象限判斷,決定在這個Sprint中要先解決甚麼需求,達成甚麼任務。
  3. 燃盡圖(Burndown Chart):一個時間區段中,剩餘的工作量。又稱為「剩餘工作圖」或者是「剩餘時間圖」。
圖片來源:DZone。在理想直線上方則進度落後;下方則進度超前,然而最好的狀態是在理想直線附近,往上或往下浮動太多品質都無法保證。因為理想直線是開發團隊根據其專業所訂定的。

人生這場大型的專案管理

敏捷開發的方式也適用於人生,一個具有成長型心態的人,會讓自己在每一個成長曲線開始往下掉的時候不讓自己歸零,記取過去的教訓,迭代式成長。

現在就讓我們一起來試試agile吧!
Done is better than perfect!

最後,誠心感謝實習船用心的舉辦以及Alvin精彩生動的講解與分享。

--

--