Springok's Blog

Agile Tour Hsinchu 2016

| Comments

前言

其實在今天之前,我對於 agile 敏捷開發,並沒有太多的認識,除了公司內部是用看板管理需求的,跟自己之前看過一些 srcum 的基本作法,然後就沒了,而在今天的 Agile Tour 過後,我發現自己從開始當軟體工程師以來,在接近一年的時間當中,其實已經在不知不覺中間接實踐跟 agile 理想相符的做法或建立起相關的心態,事後回想,當然這歸功於團隊,在從我的 Day 1 開始,就要我用這些思維去看待需求與開發~ 所以邊聽這些 Talk 的方法框架與案例,邊與我的日常工作相互對照,常有頓悟之感,也就是 aha moment 吧。

每場 talk 都讓我收穫良多,在聽講的過程中,我一直把自己投射講者的範例中,讓自己融入那個情境,每個講者都有自己的故事或營造那個情境,再從案例帶出想跟大家分享關於 agile 的原則或是實踐方法 ,這些分享都讓我回來反思在工作的一切,從接到需求,估算完成時間到實際產出程式碼、上線,這整個過程跟 agile 開發精神 的關係,所以想先分享整理目前自己在公司裡實際開發上跟 agile 有關的原則與作法:

角色

首先,在 talk 中聽到 “get rid of your project manager from day 1” ,原來我們公司沒有 PM 是符合 scrum 的原則的啊XDDD
公司裡其實只有 PO (problem/Product owner) (公司其他部門,營運、會計等), Developer Team (tech lead, developers) 工程,PO 負責提出需求與問題交給 Developer Team ,然後由工程師們自主管理時程、產出 feature,而我就是其中的 developer 的角色。

擁抱變化

以 scrum 團隊觀點來看,應該主要指的是時程上預估,因為有可能會有突發因素來影響時程(插件、團隊人員請假等等)遇到這些無法預計的變化是很平常的事,但等遇到了,再來問自己如何調整優先順序,而從實作開發 coding 的角度上,因為需求可能也會改變,所以在實作上也會作出對應的處理。

提高透明度

目前團隊裡是透過 kanban 讓團隊各成員可以看到各自的進度或是一些團隊優先度高的需求,也可讓 tech lead 適當地去協助成員。

適時調整優先度

當開始實作,可能就會發現預估時程可能並不如想像中樂觀,而我現在大部分都只是負責評估一張 card (通常對應一個實作項目) 所需要的時間,所以也只是自己針對該張卡片在 Time, Resource, Quality 做取捨,同時也會回頭跟 PO 去確認該工作所擁有的彈性,再來考慮優先度調整與否。

自主管理

其實就是接到工作,就去確定需求、切細項、訂時程,然後執行,需要協助就跟團隊請求支援,需要確認規格就跟 PO 討論囉。

Talks

開場 Why Agile ?

讓工程師可以不用加班,開心地上班、放心地回家。
敏捷宣言Agile Manifesto

part 1 瓶頸處理九大原則 (講師: William Yeh)

Slide

講者開頭提到 Scrum Kanban DevOps 都是框架,實作上依各個公司都會有些差異~
一開始,講者先從 sprint 的規劃說起,假設了一個情境,實作 21 story point 估出來是 150 個工時,團隊有四個人,而且每個都是全方位的人才,什麼樣的工作都可以做,所以這樣算起來應該是 5 工作日可以搞定,但問了現場的聽眾,如果你帶這個團隊,有沒有信心跑一個星期的 sprint 就能做完,卻只有一兩個充滿信心的人舉手 XD
但基本上,因為工作之間會有相依性、團隊的人力資源專才也不盡相同 (backend, frontend, UX, test),還有其他太多不可預期的情況會發生,也就帶出限制理論 Theory of Constraint,而專案執行期間應該保持聚焦在瓶頸 (constraint) 上 。
接著,講者很專業的整理了瓶頸處理九個原則 ( 可參考 slide ) 跟大家說明。
再來提到,POOGI 聚焦五步驟:

  1. Identify 確認瓶頸
  2. Exploit 決定如何充分利用瓶頸
  3. Subordinate 其他一切遷就以上決定
  4. Elevate 鬆綁制約因素 (時程/需求)
  5. Percent Inertia 避免惰性,回到步驟一

最後,講者,提供他自己的判斷供大家,一個 sprint 應該安排 80% 的工作,要做一些風險管理,考慮工作的依存關係,以及過去相關經驗的統計波動(人員休假、工作心情)而相對應的做法就是:了解限制,瓶頸,制約 => 聚焦 => 持續改善。

part 2 從敏捷思考讀書會,創業,與人生 (講師: MaoYangChien)

silde
這場的講者是 soft & share 的創辦人簡茂仰,來跟大家分享創業與經營讀書會的心得,一開始先分享他過去失敗的經驗,而今年開始經營 soft & share 賣電子書,開團購,接著有網友建議他可以辦一些團購書籍的讀書會,就這樣被推坑了,開始構思讀書會應該怎麼舉辦、理想中的讀書會成員之間的互動又是怎麼樣的,做到現在已經是第四個 iteration ,而每次都有新的嘗試,成效也越來越好了,這讓他體會整個創業過程其實也有敏捷的精神在裡頭。

另外也分享了他在經營這個事業所使用的 MVP (Minimum Viable Product) 工具,部落格、文案技巧,整場演講中穿插大量許多書籍的引用(如何閱讀一本書、工作、行為改變、文案技巧、心靈雞湯),強調讀書的重要與獲得的啟發,整場演講宛如創業人生相關書籍的導讀會,默默地自己的待讀書籍清單又多了好幾本。

個人而言,這場演講在心靈層面收穫滿多,可以試問自己,人生到底在追求什麼?面對恐懼,是否能找出真的恐懼,面對它,思考解決的方案?

part 3 Scrum Estimation Model (講師: Joey Chen)

講者也是一開始假設了一個情景,以日常生活的觀點出發,規劃好的事情總是會有不如預期的情況發生,導致計畫改變甚至執行上遇到瓶頸,如果再加上當下的處理不好,最後就是根本無法到達目的地,搞不好團隊也已經四分五裂了。

這個影片已經把整個 talk 的精華濃縮啦,強烈推薦值得一看啊,而且講師很會帶氣氛,舉例淺顯易懂,也用了滿多很棒的梗,如他開頭所說,不用帶腦,放鬆來聽,也會有很多的收穫的~

專案估算重點圍繞在範圍、速率、時間的取捨與調整。

範圍是團隊可以完成的需求,其中需求也有分大小,利用相對比較的方式來估算需求大小。
速率是團隊開發的速度 ( 1 sprint 可以消化的 需求story points)
時間就是時程啦

在第一次的 sprint 之後就有依據可以開始修正,隨時檢視優先度、調整做法,若時程很硬,允許有計劃的欠一些技術債,持續優化流程與做法,適時引進提升人員士氣的做法(提供好的硬體設備等等)。

最後提到的原則就是依據變化,時刻調整決策,讓開發團隊成員自主管理、持續改善。
這個 Talk 雖然是從團隊的角度去看待估算開發時程這件事,而因為我現在都還停留在自己估算自己工作的階段,但相對的我其實也可以利用估算需求大小的方式來拆解我所負責的需求,來更準確地預估出我實作所需的時間,之後也會試著將這個估算模型應用到工作裡~

part 4 我們來開公司吧~ (工作坊) (講師: 王泰瑞, Terry Wang)

這個工作坊是讓大家同樂玩遊戲的,同時又能學習到導入 agile 原則(提高團隊透明度、自主管理)之後所得到的效率提升與好處,遊戲過程中與結束後的討論也相當精彩,之後,講者也分享了自己公司的導入 Scrum 的案例給大家~關於遊戲的內容,就不在這裡分享啦,我覺得自己去體驗,會更投入然後會去對講師拋出的這些問題,思考自己的答案之後再跟講師提供的答案對照,那收獲感會更為強烈。

而講師也提到在 Scurm 團隊裡,每個人都會是專業的成年人,專業的成年人會有什麼特質呢? 對事不對人,永遠追求卓越,只有好跟更好,面對批評可以坦然接受,而且表達感謝~

希望之後有機會再跟這位講師學習其他的課題啦。

part 5 Retrospective Meeting

Appreciative Inquiry

  1. 真誠傾聽
  2. 做自己
  3. Yes…and…. (not but)
  4. 打開心扉
  5. 了解大家都是唯一的,都不一樣

這個部分,講者帶大家一起回顧,並鼓勵記錄下今日印象最深的人事物、以及未來對這個 Agile Tour 的一些想像與期許,發現我真的沒有畫圖的天分 XD

雜想

是因緣際會在 soft & share 的 slack channel 裡看到這次的報名資訊,很開心自己當下沒有太多猶豫,馬上報名,而也真的是大豐收的一天,毫無冷場,早上九點初到會場,下午五點左右離開,覺得好像進入精神時光屋,意猶未盡啊~

第一次看到圖像紀錄的玩法,好棒啊,令人驚艷,每張海報都惟妙惟肖,而且都帶入今天講題重點,充滿紀念意義而且別出心裁~隔天看到某位講者的 FB 大頭貼,馬上換上他與自己那張海報的合照 XDDD

感謝主辦單位在新竹辦了一個這麼好的活動,明年我也要報名啦,不過這次辦得這麼好,好的東西人人追求,感覺下次開放報名,勢必是一 場搶票大戰啊~

附錄:當天活動簡介(含講師群介紹)與 AgileTourHsinchu FaceBook Page

  1. AgileTourHsinchu 2016
  2. AgileTourHsinchu

Comments

comments powered by Disqus