l

2019年11月26日 星期二

透過協作產生敏捷需求

Nov. 26 17:48~18:35


不是需求

許多跑敏捷的團隊會使用user story(用戶故事、使用者故事)來表達「需求」,大家一般認為寫user story是Product Owner的責任,團隊只要照著user story所描述的內容就可以做出PO所希望的功能。

但實際上功能做好之後卻經常被PO要求改東改西,導致開發團隊抱怨:「Product Owner寫的user story太簡略,害他們不能『按圖施工,保證成功』,要不斷地重工」。PO則是不滿開發團隊都不動腦筋,遇到問題也不及時跟他溝通與釐清。

其實user story不算是傳統軟體開發所說的需求或規格,user story只是引發團隊討論需求的一句話真正的需求,透過開發團隊、Product Owner與利害關係人的對話、討論、探索而產生。討論之後所產生的需求,可以透過specification by example(實例化規格)的方式記錄下來。

另外,撰寫user story的責任也不能全部推給PO。User story的「為了…(目的)」所描述的是使用者所遭遇的問題,這是PO需要負責搞清楚的部分。而「我想要…(做什麼)這句話已經包含某種解決方案,則是需要PO與開發團隊一起討論,尋求各種可能的做法

***

心態改變

上週Teddy在上【Scrum敏捷方法實作班】介紹user story的時候跟學員提到上述觀念,下課時有一位學員說…

以前團隊在product backlog refinement workshop的時候,我們都習慣要求PO要把user story寫清楚,如果有不清楚的地方,我們會責怪PO,覺得他沒有準備好就找我們來開會。但上完課之後,我才發現原來撰寫user story的責任不能完全推給PO一個人。下次再開refinement workshop,我會改變作法,多提供意見。

***

協作遊戲

敏捷開發是一種協同合作的活動,不是傳統瀑布式開發那種「透過文件溝通」的模式,更不是找個issue tracking system(議題追蹤系統)來「開票、領票」(分派、追蹤工作)。

只是做做敏捷的樣子,心態沒變,還是白搭。

***

友藏內心獨白:讓團隊每個人都動腦真的不容易。

2019年11月19日 星期二

Pattern寫作工作坊

Nov. 19 16:54~17:57


一起做功德

PLoP(Pattern Languages of Programs)是模式(Pattern)社群一年一度的聚會,在全球各洲都有類似的活動,在亞洲舉辦的PLoP稱為AsianPLoP。

AsianPLoP 2020 明年3月4-6日將於台北舉辦,這個活動往年都在日本東京舉辦,明年是第二次移師到台北來。因為Teddy的指導教授是活動主辦人之一,而Teddy也是模式的愛好者,利用此次機會跟AsianPLoP 2020的主辦單位「台灣軟體工程學會」合作,於今年11/30日在泰迪軟體舉辦一天的【Pattern寫作工作坊】,藉此活動讓更多鄉民有機會接觸的模式社群,從了解模式、閱讀別人的模式,進而能夠利用模式來整理自己的知識(寫作模式)。

本工作坊費用8,000元,由「台灣軟體工程學會」開立收據。所繳交費用可全額抵免明年的AsianPLoP 2020研討會費用。也就是說,報名此工作坊的學員本人明年可以免費參加在北科大舉辦的AsianPLoP 2020 (無論是否投稿,都可參加)。

工作坊已確定開課,對模式有興趣的朋友,歡迎一起來聽聽模式的歷史、閱讀模式、寫作模式。

***

Teddy的模式之旅

Teddy從1997年開始接觸到設計模式,當時讀了GoF的《Design Patterns》,實際應用之後覺得設計模式對於軟體開發很有用,但對於書中提到的23個模式也是一知半解。

幾年後回北科大念博士班,因為之前工作從事e-learning系統與數位教材製作工具的開發,對design patterns也熟,因此指導教授建議Teddy可以研究e-learning領域的patterns。因此,讀了pattern發明人建築師Christopher Alexander一系列的幾本書,同時也開始寫作e-learning patterns。在2004年時,第一次到美國參加PLoP,那時有種劉姥姥逛大觀園的震撼---原來這就是傳說中的PLoP啊。

這幾年Teddy建議不少人讀Alexander的書,但似乎效果不適很好。Alexander的書有點哲學的味道,剛開始不是那麼容易讀懂。但他的思想的確影響了很多軟體社群的人,Design Patterns、Architecture Patterns、Testing Patterns這些大家都耳熟能詳就不說了,最近1~2年在台灣流行的領域驅動設計(Domain Driven-Design;DDD),發明人Eric Evans所寫作的「藍皮書」,其實就是一本DDD Pattern Languages,書中介紹了數個DDD patterns。


▲「藍皮書」本身就是一堆patterns


***

有什麼用

PLoP研討會已經舉辦了20幾年,學習pattern不是什麼趕流行,而且坦白說有點門檻。對Teddy而言,pattern(特別是pattern language)的訓練有三個主要的好處:

  • 讓人具備一種關照全面看到事情本質的能力。學習pattern很重要的一環就是觀察Forces,體驗Forces。漸漸地,你更能關注事物核心的Quality,而不是表面的Name(因為Quality Without A Name)。
  • 吸納新的知識:很多領域專家,會將他們多年累積的知識寫成pattern。對於真正了解pattern的人,就比較容易吸收這些以pattern所表達的知識。以DDD為例,Teddy很晚(2013)年才開始接觸,但因為Teddy的腦中已經內建 九陽神功 pattern解譯器,對於DDD的學習就比一般鄉民要來得容易與深入一些。
  • 系統性的整理自己的知識與經驗。你覺得自己很厲害,好,然後呢?FB貼廢文、寫blog、參加社群聚會當講者,這些都很好。但,如果要更進一步挑戰自己,將自己的經驗整理成pattern是一個很好的方式。

***

報名

報名表單在此,錯過這次,下一次就要等……不知道有沒有下一次了。

***

友藏內心獨白:我以為畢業後就不用再寫pattern了XD。