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

我認爲敏捷式管理的最終目的就是建立學習型組織,除了在 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 中則是團隊成員都彼此互相理解工作的情況。在企業中的透明化則包含對流程和制度的透明化,和可以方便地取得完成工作所需要的文件。比方説知道什麽職務可以決定交際預算的使用,或是產品的營運狀況如使用人數等等資訊。

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

回首來時路 – 管理、領導、引導、教練、正念、NLP 學習心得

NLP 中説到,我們每個人腦中都有一張『地圖』,而且每個人的都不一樣,地圖包含了我們的假設、知識和感受。

依照地圖,我們會產生想要和欲望,也就是『意圖』。意圖讓我們選擇了想做的『行爲』,在這同時我們也持續和其他人『溝通與交流』。

行爲與交流造成了不同『事物』的發生,事物包含了流程、工具、文化、組織、產品等等,這些事物也造成了某些『結果』,不管是人或團隊的改變,或是產品大賺錢,或是組織文化的轉換。

經由『觀察』結果,然後改寫腦海中的地圖,周而復始,就是一個『學習與改變』的過程。

在過去的學習歷程中,2011 我是先從『管理』開始,管理著重的是行爲與事物的關系,如何設計架構,如何安排工作,這都是讓企業組織有效運作的重要元素。而在實踐管理的過程中,我發現對於知識工作者來說,因爲工作大部分是在腦海中形成,要靠『領導』來校準整個組織的意圖和行爲,而領導,靠的是願景、溝通和同理心。總結來說,就是『管理事、領導人』。

在 2014 開始接觸『敏捷式管理』後,體悟團隊要能有效協作,需要擴大彼此的溝通頻寛。經由 『引導』,就能讓每個人的想法互相交流,摩擦出火花,並收斂形成共同的目標,眾志成城。

今年接觸了『NLP』、『正念』和『教練』,又讓自己對觀察力的提升更進一步。NLP 提供了加强感官學習,還有改寫腦海中地圖的方法。正念幫助我更專注,更能察覺内心的漣漪。而教練,探索的是如何善用腦中的地圖和資源,幫助釐清需求和渴望,讓意圖更清晰,知道自己的方向想要往那邊走。

不論是管理、領導、引導、教練、正念或 NLP,都是非常實務與務實,因爲都很關注於最終的結果是什麽。就是經由觀察結果,我們才能持續改善,找出更有效的方法。而結果,也是由以上種種技能和心法,彼此調合、共振和激盪所產生的。

回首來時路,真的很感激一路上的老師和學習伙伴,讓我有幸能接觸到那麼多有趣的事物和新奇的體驗。

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

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

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

成爲有效團隊的五大障礙

第一個障礙:喪失信賴

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

也許你需要的是多一點瀑布 – 敏捷八不

English version published on T.8YTES 本篇文章為 Agile Me 2018 2019 台灣敏捷高峰會準備講稿,請按此觀看『敏捷八不』投影片

大道之行也,天下為公,選賢與能,講信修睦,故人不獨親其親,不獨子其子,使老有所終,壯有所用,幼有所長,鰥寡孤獨廢疾者皆有所養;男有分,女有歸,貨惡其棄於地也不必藏於己,力惡其不出於身也不必為己,是故謀閉而不興,盜竊亂賊而不作,故外戶而不閉,是謂大同。

– 《禮運大同篇》

在 2014 年我剛剛開始接觸敏捷(Agile)時,當時我的角色是新加坡商鈦坦科技的總經理,我覺得敏捷(包含敏捷開發敏捷專案敏捷管理)在描繪的是一幅理想中的世界。就拿敏捷大家族中熱門的 Scrum方法 舉例來說,在 Scrum 團隊中沒有主管發號司令,工作由大家一起分工合作完成,也沒有主管指派工作,每個人自行選擇工作事項。團隊成員不會偷懶,會盡力把事情做好,最後的工作成果則是由團隊共享。(註:產品待辦事項是由產品負責人 Product Owner 決定,但如何完成工作是由團隊決定)

簡單的說,就是『各盡所能、各取所需』,這也是共產主義中理想社會的呈現。

各盡所能、各取所需

– 馬克思《哥達綱領批判》

但等到真的把頭洗下去,才發現完完全全不是這樣一回事! 閱讀全文 也許你需要的是多一點瀑布 – 敏捷八不

別高談敏捷式管理說說如何落地(2) – 企業敏捷轉型工具箱

企業使用敏捷式管理的目標是讓企業可以快速反應市場的變化。讓產品或服務儘快推出面對市場,並依據取得的反饋來改善企業所提供的產品或服務,使其在市場上更有競爭力。具體的做法包含從大批量生產的思維,改為小批量生產試賣。

『面對敏捷轉型的浪潮,你準備好了嗎?』一文中我們介紹了敏捷轉型(Agile Transformation)的由來和精神,這一切聽起來都無限美好,但具體要如何落實敏捷式管理呢?

上一篇我們談了如何讓團隊敏捷化,現在我們來看看如何讓企業敏捷轉型。

如果你可以預測未來,你並不需要敏捷

但變革不是重點,重點是為什麼要變革。同樣的,在讓企業敏捷化之前,我們要先知道為什麼企業需要敏捷化。 閱讀全文 別高談敏捷式管理說說如何落地(2) – 企業敏捷轉型工具箱

別高談敏捷式管理說說如何落地(1) – 手把手打造敏捷團隊

為了更好的應對變化和增加企業的可持續性,敏捷式管理以團隊為核心來運作,並希望團隊可以:
擁有共同的目標、自行交付端到端的產品或服務、跨職能的團隊成員、穩定的團隊組成、依照 Scrum 或看板的方式來運作

『面對敏捷轉型的浪潮,你準備好了嗎?』一文中我們介紹了敏捷轉型(Agile Transformation)的由來和精神,這一切聽起來都無限美好,但具體要如何落實呢?

我們接下來分別來看看針對團隊和企業的敏捷方法,這篇文章的重點在於如何讓團隊敏捷化。

以團隊為核心的敏捷工作方法

敏捷式管理是以團隊為運作的核心,對主管的要求是成爲僕人式領導,也就是支持團隊的成功與成長,而對團隊的組成有下面幾個要求:

團隊需要有共同目標

團隊成員要有個共同的目標,通常是提供給顧客某一種產品或服務。如果團隊沒有共同的目標,那就只是一群人,不能稱之為團隊。 閱讀全文 別高談敏捷式管理說說如何落地(1) – 手把手打造敏捷團隊

團隊決定的跟我想的不一樣!- 談參與式決策的技巧

在敏捷組織中,參與式決策被大量的使用,因為現在的環境變動太快,有成員的買單和真心認同,在執行時決策的意圖才能被真正落實。參與式決策的重點,在於讓大家覺得自己的觀點和想法都有被聽到,所以流程的設計是一門學問。

最近看到一則議題是總統擔任主席時,不認同投票表決的結果要求重新表決。

先聲明非關政治,我也沒有研究此會議的流程所以沒辦法判斷對錯。但這是很好的案例,來探討一個所有主管都會遇到的問題:『團隊決定的和我想要的不一樣怎麼辦?』 閱讀全文 團隊決定的跟我想的不一樣!- 談參與式決策的技巧

五育中消失的群育 – 談如何團隊合作

今天聽實習生們四個月實習的心得分享,蠻多的共通收穫是『第一次以團隊方式把事情做出來』,即使之前在學校有專題團隊,但也是各自分工不合作,大家分派工作最後再組合起來。而在實習過程中,成員利用 Scrum 的方式,及時了解每個工作的進度,互相支援遇到的問題,密集的分享和學習,還有一群很雞婆的哥哥姐姐們噓寒問暖,都是之前沒有的體驗。

回想我們從小都聽說要『德智體群美』五育俱全,但我之前也從來不知道群育是什麼,頂多就是玩玩團康,組組球隊。學校不但不鼓勵還懲罰合作的行為(比如作弊 XD)。但不能怪老師,我想除了投票『服從多數、尊重少數』,老師也沒有受過如何教導團隊合作的訓練。

我也是在這幾年在 Scrum 中找到答案,除了快速迭代、適應變化這個優點外,我覺得 Scrum 的重點價值是以團隊為主體運作,讓團隊取得個人所沒有的特性,比如團隊比個人反脆弱、團隊比個人的視野更廣、盲點更少。但要讓團隊有這些特性不是容易的事,我認為有三個觀察點:

  1. 成員是否都能安心的表達自己想法?
  2. 成員的個性與觀點是否夠多元?
  3. 團隊有沒有好的決策模式?

閱讀全文 五育中消失的群育 – 談如何團隊合作

為什麼選擇敏捷式管理? – 因為選擇面對現實

ignorance

很多人問我,幹嘛導入敏捷式管理(Agile)和Scrum,是吃飽太閒沒事做嗎?

我們走向敏捷式管理是因為,傳統做法已經不符合現在的市場環境,為了存活而不得不做。導入敏捷式管理是改變態度,培養一種面對現實、接受限制、處理現狀、放下過去的態度。

面對事情做不完的現實

現實是肝是會爆的,所以敏捷式管理是要把事情排出優先順序,從最有價值的開始進行,捨棄低價值的工作。 閱讀全文 為什麼選擇敏捷式管理? – 因為選擇面對現實