敏捷宣言第四條:持續學習

我認爲敏捷式管理的最終目的就是建立學習型組織,除了在 Scrum 的活動外,我們還可以經由結對編程,也就是兩個人同時一起處理一件事情,來讓彼此在工作中學習各自的專長。另外企業内外各種技術與學習的分享,比如建立企業中的實踐社區(Community of Practice,簡稱COP),參與產業中的社區活動,都是讓企業保持學習文化的具體方法。

『這個採購案不能進行,因爲去年預算沒有編列。』

聼到類似這種説明因爲去年沒有計劃到,所以今年不能做的説辭,我都會想這個計劃到底是幫助公司,還是限制了公司的成長。

敏捷宣言第四條中說到:回應變化 重於 遵循計劃。

這句話聽起來很簡單,就是如果現實環境改變了,我們應該要更改原本的計劃去適應新的情況,而不是一廂情願的按照原定計劃往下走。但我認爲是最難做的的一條,因爲不管是人還是組織都是由慣性的,人們會習慣跟著過去的計劃往下走,直到走不下去爲止。

在敏捷的各種方法論中,Scrum 是最專注在工作模式上的,所以 Scrum 中的各種活動,都是專注在檢視現狀,然後做出相對應的調整。

在 Scrum 短衝中,每日站會、回顧會議(Review meeting)、與自省會議(Retrospective meeting),都是爲了讓團隊慢下來,停止工作,看看目前的情況是否符合預期,只是檢視和調整的目標對象不同。

在每日站會中,團隊成員檢視的是在短衝中每天的工作情況,比如說工作進度是否有遇到阻礙,團隊成員是否有需要協助的地方,然後團隊成員進行協助或是尋求其他人的協助。

每個短衝結束前回顧會議的重點在於產品本身,藉由邀請利害關係人一同來看看這個短衝所做的成果,是否符合他們的預期,有沒有功能需要修改,或是其他可以讓產品更好的點子。除了這個短衝的成品,過去產品的功能績效也應該被追蹤與討論。產品負責人在會議上搜集這些反饋後,會在產品待辦清單上反應出來,比如新增、修改、或是刪除使用者故事。換句話説,有效的回顧會議應有的影響,就是讓產品代辦清單是活的,代表經常性的變動。如果產品代辦清單上的事項長期沒有改變優先級或是内容,這是一個需要注意的警訊,代表我們可能沒有取得反饋,或反饋沒有被接納並反應出來。

自省會議我認爲是 Scrum 的精華所在,也是讓團隊工作效能提升最重要的會議。在自省會議中團隊檢視的是該短衝中的工作情況,然後決定下個短衝中所需要改善的事情。自省會議最重要,也是最難開好的會議,如果處理的不好會流於形式,大家閑聊一會就散會了。所以在實務上,Scrum Master 需要找各種方法讓團隊願意坦誠面對問題、説出建設性的建議、并且還要保持新鮮感,真的是很有挑戰。自省會議中常見的方法包含時間軸回顧、+ – = (多做、少做、維持)、肯定與感謝、慶祝等等,在 Google 上搜尋 Retrospective games 也可以找到許多自省會議的點子。自省會議中最重要的產出是改善事項,即使只有一件再小的事情都好,只要我們每個短衝都比上一個跟好一點,經過一年團隊就會脫胎換骨了。

在原來你才是絆脚石一書中提到,敏捷宣言第四條:回應變化 重於 遵循計劃,背後的價值觀是持續學習,就如同上文在 Scrum 中的活動,都是觀察現況、做出改變、檢視成效的不斷循環,這就反應到團隊的能力是在持續提升的。

我認爲敏捷式管理的最終目的就是建立學習型組織,除了在 Scrum 的活動外,我們還可以經由結對編程,也就是兩個人同時一起處理一件事情,來讓彼此在工作中學習各自的專長。另外企業内外各種技術與學習的分享,比如建立企業中的實踐社區(Community of Practice,簡稱COP),參與產業中的社區活動,都是讓企業保持學習文化的具體方法。

敏捷宣言第二條:透明化

在『在原來你才是絆脚石』中提到,敏捷宣言中第二條:可用的軟體 重於 詳盡的文件,背後代表的價值觀是透明性。對顧客和利害關係人來說,透明性就是在每個迭代都看到團隊做好的產品,然後給意見。如果我們做的符合顧客需求,那很棒我們可以繼續做其他需求。萬一做的不是顧客要的,那我們最多也是損失一個短衝的時間,而不會像傳統的開發方法,都花了好幾個月的時間開發,顧客一句話就被打掉重練。

敏捷宣言第二條提到:可用的軟體 重於 詳盡的文件,為什麽要特別把文件與軟體做比較呢?

我認爲這一條的背景是在傳統的軟體開發模式中,因爲比較像流水綫形式的分工,比如專案經理跟客戶訪談拿需求,專案經理訪談後要整理需求並撰寫需求文件,然後把需求文件交給軟體開發單位的主管,開發單位的主管再依據需求寫出技術設計文件,最後把技術開發文件交給開發人員進行程式開發,而這邊還沒有提到與其他單位所需要的文件,比如說給品質保證部門的測試案例,或是之後程式上綫前的發佈文件。

如果你能充滿耐心的看完上面的流程,就會發現依照傳統的瀑布式開發流程,在開始寫軟體之前,就會需要寫出一堆文件。而且在之後任何的需求變更或設計變更,都需要把文件更新,萬一沒有更新到,後續接手的人就會像是看天書一般,有看沒有懂。而在軟體業界混久的人,都會知道開發文件的作用不大,這主要有三個原因。

第一個原因是軟體專案時程都很急迫,在壓縮專案時程的同時,第一個被放棄掉的都是寫文件,然後把時間留給寫軟體。反正寫文件是爲了讓之後接手的人看懂,現在我顧自己都來不及了,哪有時間考慮未來的事情呢。好一點的就是寫個大概,差一點的就直接把以前的文件複製貼上,當作文件完成了。

第二個原因是軟體是相對抽象的概念,不像是蓋大樓,把藍圖畫好後看圖的人可以視覺化的看到完成的具體形狀。所以顧客只能大略的描述他想象中的情況,也許可以加上圖示 Mock up 幫助顧客想象使用的流程,但許多問題還是在實際使用的時候才會被發現。所以當專案經理在寫需求文件的時候,也沒辦法照顧到太多細節。

最後一個原因也是最根本的原因,更新軟體太容易了,改一行程式碼,也許就需要更新到好幾份文件。更新軟體的速度遠遠快過更新文件的速度,工程師就會想那我等更新程式碼多幾次後再來更新文件,省的麻煩,最後連更新文件都省了。造成很多的文件不如説是歷史記錄。

因爲以上的這些原因,在敏捷開發中提倡的做法是讓程式碼本身就是文件(Code as documentation),就是讓後續接手的人,可以光從程式碼與測試案例就知道大部分的資訊,並可以開始維護與更新程式碼。當然這是個理想中的狀態,所以宣言中説的是『詳盡的文件』而不是說『文件』。能被及時更新的關鍵文件,還是有需要的。

而爲什麽說『可用的軟體』而不直接說『軟體』呢?在傳統專案管理中,客戶大都是接近結案的時候才會看到產品的狀況,而如上面所說的軟體是個抽象的概念,客戶期待的都會跟實際做出來的差很多,然後團隊就會進入不斷修改需求的無間地獄。

俗話說:醜媳婦總得要見公婆。

所以敏捷開發中認爲與其早晚都要見公婆,不然早一點見,讓公婆給些意見和反饋,好讓我們可以儘快改善讓以後的生活更幸福。

在『在原來你才是絆脚石』中提到,敏捷宣言中第二條:可用的軟體 重於 詳盡的文件,背後代表的價值觀是透明性。對顧客和利害關係人來說,透明性就是在每個迭代都看到團隊做好的產品,然後給意見。如果我們做的符合顧客需求,那很棒我們可以繼續做其他需求。萬一做的不是顧客要的,那我們最多也是損失一個短衝的時間,而不會像傳統的開發方法,都花了好幾個月的時間開發,顧客一句話就被打掉重練。

而透明化這個價值觀的體現,在 Scrum 中則是團隊成員都彼此互相理解工作的情況。在企業中的透明化則包含對流程和制度的透明化,和可以方便地取得完成工作所需要的文件。比方説知道什麽職務可以決定交際預算的使用,或是產品的營運狀況如使用人數等等資訊。

透明化的目的是爲了讓大家工作更順暢,所以過度透明會造成資訊爆炸,比如過度會議,反而使得工作的效益降低,所以透明化拿捏要以工作為核心出發,而不是所有事情或資訊都要透明化。

善用引導技巧來克服團隊領導的五大障礙

五年前讀了克服團隊領導的五大障礙,感覺書中的故事生動,說的道理也淺白易懂,但沒有頭緒如何去實踐。

最近因爲要準備團隊溝通相關的課程,因緣巧合之下五年後重新讀了這本書,發現了有效會議在團隊協作上的重要性,而有效的會議靠的是引導的技巧。

成爲有效團隊的五大障礙

第一個障礙:喪失信賴

使用深度匯談 (Dialogue) 中的技巧、善用 4F (Fact 事實、Feeling 感覺、Finding 發現、Future 未來) 的技巧幫助傾聽和同理、説話時運用焦點討論法 ORID讓自己的觀點和感受透明化。 閱讀全文 善用引導技巧來克服團隊領導的五大障礙

看歷史學敏捷 – 從人性出發

【一千年前的敏捷宣言】

很久很久以前,唐太宗李世民放了三百多個死刑犯回家,說明年秋天時回來報到再殺他們頭。到第二年時,没想到神奇的事情發生了,死刑犯竟然一個没少的回來送死。

在那個時代,没有半個人在路上病死、老死、或被野獸吃掉,真的是老天保佑。唐太宗龍心大悦,認為在自己用心良苦的教化下,連死刑犯都變好人講信用,就把三百多個犯人都大赦放生,傳為千古佳話。

直到宋朝反骨的歐陽修把這事件批評說這是從上到下串通演出的撒狗血劇情(上下交相賊),從一開始就劇透了。皇帝要聖名,放走了就算不回來也没損失。萬一真的有人跑了,長眼的官員也知道要抓幾個替死鬼充數。囚犯也不是白痴,知道皇帝要耍仁慈,回來的一定不會死,打個折大不了去邊彊種菜。

歐陽修在《縱囚論》說:『不可爲常者,其聖人之法乎?是以堯、舜、三王之治,必本於人情,不立異以爲高,不逆情以幹譽。』

超譯:『有智慧的人不會笨到去設計不能普遍適用的規定。規定要從人性出發,不是跟大家不一樣就是厲害,也不要挑戰人性來刷版面。』

簡單的說,就是敏捷宣言第一條所說的:

【個人與互動 重於 流程與工具】

只要是有權限可以制定規定的主管,都應該好好思索這句話。

 

圖片來源:https://memesuper.com/categories/view/37ee3d0030e724c6a90cd001224b8d7fa07d1569/human-nature-meme.html

Agile Tour Taichung 2017『空手、緊握、到放手 – 敏捷路上學到的5件事』台中敏捷旅程分享心得

收到 Max Lai 關於敏捷旅程台中的 Keynote 分享邀請時,我真的蠻高興的。第一因為出生於台中,對台中總是有一份特殊的情感。第二是分享的主題是組織轉型,剛剛好跟十月在新加坡敏捷年會分享的主軸相同,只要英翻中就好,順便一魚多吃

根據我在新加坡年會的經驗,原本預計講個40分鐘,但30分鐘就說完了,幸好因為談的是大家都會有的痛點和共同經歷,所以發問很熱烈,十多個提問把時間完美的佔到45分準時結束,大家都以為我是故意留很多時間提問的XD。比預期時間快的原因是上臺後的緊張語速加快,而且每次準備的故事都會東漏西漏,時間一定會快一些。而台中的分享時間是一個小時,讓我有點傷腦筋,要如何補足剩下的20分鐘又可以彌補我口條不好的缺點呢。 閱讀全文 Agile Tour Taichung 2017『空手、緊握、到放手 – 敏捷路上學到的5件事』台中敏捷旅程分享心得

『ScrumMaster的吃飯傢伙 – 引導出個夢幻團隊』- Agile Tour Taipei 2016 分享心得

15592330_1367580389943284_32988453_n

很榮幸被 Agile Tour Taipei 主辦單位邀請分享我們組織嘗試引導的經驗。雖然從三年前就開始土法煉鋼自己做引導,一年前也開始受 ICA 正規的引導訓練,並很幸運有機會在敏捷社群和引導的對談參與其中,照理說應該蠻多東西可以分享的。

但我真的不知道要分享什麼,因為引導是個非常廣大也非常形而上的主題,從會議的引導、日常生活習慣的引導、到引導式領導,每個主題都可以講個三天三夜。而且我希望參與者不是只是來聽聽,覺得引導好棒棒,而是可以有東西讓可以回去馬上實做應用。琢磨了好一陣子後,決定與其我來說引導如何好、如何有效,不如讓大家實際體驗一下被引導的感覺。 閱讀全文 『ScrumMaster的吃飯傢伙 – 引導出個夢幻團隊』- Agile Tour Taipei 2016 分享心得

適合敏捷式組織的架構:全員參與制(Sociocracy)、認可決、雙連結

1c02089開始跑敏捷後會開始遇到一些跟傳統科層式組織格格不入的地方。科層式的組織架構的優點是中央決策,可以最大化命令與控制的力道。但在敏捷中強調的是讓第一線人員做出決策,傳統的組織就變成一個綁手綁腳的設計,所以如何讓組織架構成為產品開發的助力就是一個大問題。

當初第一個找到的其他組織模式是弄合制Holacracy),也買了專門討論 Holacracy 的書 – 無主管公司 – 研究一下。看完後的第一印象不好,主要有兩個原因,第一個原因是作者一直強調要用就要整套用,All or Nothing。換句話說是要組織整體打掉重練,跟我看情況挑戰、摸著石頭過河、小步快跑的哲學不和。

第二個原因是太太太複雜了也太太太嚴謹了,從營運、角色定義、每個人職權、到會議如何開都有規範,還一定要規範出來,跟敏捷大家不分彼此一起把事情搞定的原則違背(有興趣的朋友可以參考弄合制憲法,我最討厭規則連看都懶的看 XD

總之就是喜歡他的初衷但設計不對胃口,就擱下來了。直到參加新加坡的敏捷年會,聽到 Jutta Eckstein 主講的 Sociocracy – A means for true agile organizations。聽到興趣就來了,因為 Sociocracy (沒有正式中文翻譯,Wiki 上翻成全民政治,我偏好稱為全員參與制,簡稱全參制。)強調的是大原則,沒有制式的方法跑,給很大的彈性,可以進階的嘗試導入。 閱讀全文 適合敏捷式組織的架構:全員參與制(Sociocracy)、認可決、雙連結

Scrum 中一個 Sprint 要排多少工作量? – 談談『成年人』

my_workload

最近台灣 Scrum Community 的 FB 社團非常熱鬧,有很多深度的討論,應該是天氣太冷了大家呆在家裡沒事做 XD

這個討論串談到一個Sprint應該排 80%,100% 還是 120% 的工作量?,被 John 點名了一定要扯淡一下的啦。 以下是我的回應:


今年有幸參加 Gerald Weinberg 和 Esther DerbyProblem Solving Leadership (PSL)工作坊,到現在還沒寫心得,因為太多點了不知如何寫起 XD

就說說其中一件與『成年人』有關的事件好了,在第二天的其中團隊活動結束後的 Retro,有一個夥伴出來分享,他說他很自責,因為他知道正確答案,但沒能說服團隊依照他的方案走,所以後來團隊失敗了。 閱讀全文 Scrum 中一個 Sprint 要排多少工作量? – 談談『成年人』

敏捷X引導 – 讓Scrum團隊自組織的具體方法

在開始時跑 Scrum 時就自己腦補,所謂引導就是『引誘+誤導』團隊乖乖按照自己的既定方向走 XD。所以去讀了些心理暗示與影響力的書,在會議前先設想期待的結果,設下陷阱讓團隊講出自己的答案。

大多數時候過程都可以按照自己的劇本發生,而當自己預期的答案沒有出來時,就用誘導式問題(Leading Questions)讓團隊就範,讓自己的答案從團隊成員的嘴巴中說出來。如果爭議太大的議題,就先埋好暗樁,適時的跳出來帶一下風向。

(English version published on T.8ytes 英文版發表於 T.8ytes)

在我2014年剛剛開始接觸 Scrum 的時候,覺得 ScrumMaster 是個神一般的存在,不但要幫助團隊了解 Scrum 架構與敏捷精神、支持團隊提升技術能力 、教導團隊如何自組織、移除團隊成長的障礙、協助 Product Owner 產出價值最大的化的 Product Backlog、解決組織中影響團隊運行的阻礙,更扯的是他跟團隊是平行單位,完全沒有叫人做事的權力,乾脆找超人還比較容易 XD

以上職責要一個人全部做到非常挑戰,但一個個分開個別來看,至少都還看得懂要做些什麼。但其中最令我困惑的是提到 ScrumMaster 要引導團隊的部分,而且還特別強調這部分的重要性,但引導(Facilitate)到底是什麼意思呢? 閱讀全文 敏捷X引導 – 讓Scrum團隊自組織的具體方法

敏捷界的禁語 – 敏捷組織中需要管理者嗎?

img_1359-e1410852924599

有一則叫【看蜜蜂】的笑話是這樣嘲笑管理的:

話說很久很久以前,有個養蜂人養了一群蜜蜂,每幾天就採些蜂蜜來賣,日子過的也還算輕鬆愜意。

有一天,不幸有個管理顧問經過,他看了看蜜蜂飛來飛去,轉頭就問養蜂人:
『你怎麼知道蜜蜂都有在努力工作,沒有偷懶呢?』

養蜂人傻住了,回答:
「我沒有想過這個問題,」養蜂人有點心虛
「那要怎麼知道蜜蜂有努力工作呢?」

『這還不簡單,』管理顧問自信滿滿得說到
『你就請一個人來看蜜蜂,由他來管理蜜蜂,蜜蜂就不敢偷懶了。我們在企業都是這麼做的,非常有效,有個專門的職稱叫 Team Lead 組長。』

「說得有道理,」養蜂人低頭沉思了一會
「那如果看蜜蜂的人偷懶,我要怎麼辦?」

『沒想到你還蠻有管理的 Sense 的嘛!』管理顧問用充滿激賞的眼神看著養蜂人
『你就再請一個人,看著“看蜜蜂的人”有沒有專心看蜜蜂啊。這工作也有個專有名詞,叫做經理,英文叫做 Manager。』

「這樣就夠了嗎?」養蜂人露出恍然大悟的表情 閱讀全文 敏捷界的禁語 – 敏捷組織中需要管理者嗎?