極客時間之《說透敏捷》學習筆記

  《說透敏捷》是微信公衆號“極客時間”推出的一欄關於敏捷實踐的簡單專題課程,總體就12篇文章,作者就自身的長期敏捷實踐,總結概括性的講述了關於敏捷實施的一些問題,針對敏捷入門者,可能會起到一個撥雲見霧、畫龍點睛的啓示作用,但畢竟專欄篇幅有限,不可能面面俱到、十分具體。以下是個人的一個學習筆記。
 

一、開篇詞

1、重視敏捷,讓你的研發管理少走一些彎路

  • 研發管理從無序狀態到瀑布模式、敏捷模式
  • 職業競爭力
  • 熟讀了敏捷的價值觀和原則,又學習了很多敏捷的方法和實踐,從管理實踐到後來的技術實踐,從單一團隊管理到大規模敏捷,都一一涉獵
  • 從爲什麼需要做敏捷(why)、什麼是敏捷(what)和怎樣推進敏捷(how)三個角度來講述敏捷轉型過程中的那些事兒
     

二、原理篇

2、靈魂拷問:如何利用敏捷思維更好地解決實際問題?

  • 敏捷畢竟是一場變革,它本身涉及很多人的因素,比如人的習慣、團隊文化的改變等等,而且它的核心點是持續改進,可以說是一場沒有終點的旅行。
  • 就連其提出人溫斯頓最後都承認說:“在我的經驗裏,瀑布模型在大的軟件開發中從沒真正起到作用”。
  • 軟件研發和傳統的生產管理不同,它的產出物具有強烈的不確定性。而瀑布模型,其流程和步驟都是規定好的,且計劃與生產分離,說白了更適合確定性高的工作。那麼在這種不確定性很高的研發工作面前,我們以處理確定性高的工作的方式和流程來進行管理,毫無疑問是不奏效的。
  • 把需求按優先級排序形成需求池,迭代地進行研發
  • 我先給研發中心加業務部門的所有人做了培訓,又將組織做了變革,將他們分成了一個個特性團隊;接下來,我把大需求拆分成小需求,對需求列表進行梳理,排列優先級;最後,我又讓業務部門參與進來,迭代地進行研發,每個迭代結束後交給業務人員驗收,提反饋。
  • Google公司他們的工程師文化跟敏捷所倡導的以賦能和信任個人爲中心的文化就是非常契合的。
  • 我們現今的世界,已進入 VUCA 時代,我們正面對着一個易變(volatility)、不確定(uncertainty)、複雜(complexity)和模糊(ambiguity)的世界,而敏捷快速響應變化、允許試錯、小步快跑的特點無疑是符合時代潮流的。
     

3、老生常談:你真的知道敏捷到底是什麼嗎?

  • 敏捷的初心是通過一系列方法來讓我們的研發工作更加靈活、有序和高效,所以敏捷的價值觀重視人的能動性,強調人與人之間的協作,也更重視對變化的應對,這些都是爲了能夠更好、更靈活地組織和管理研發工作,但如果“流程和工具”、“ 詳盡的文檔”、“ 合同談判” 以及“ 遵循計劃” 同樣能讓研發工作更有序和更高效,那敏捷是不反對的,也不會放棄不做,這纔是敏捷的真諦。
  • 針對交付,敏捷希望能夠儘早交付可工作的軟件給客戶,而不是最後一次性交給客戶,並希望交付的間隔時間越短越好。所以說,敏捷中的“快”其實指的是反饋更快,反饋更及時。
  • 一句話,敏捷 = 價值觀 + 原則 + 一系列符合價值觀和原則的方法。單純說敏捷是一種方法,肯定是片面的;只強調敏捷的價值觀和原則而不重視方法也是不對的,因爲那樣敏捷就飄在空中,不能落地了。
     

三、實戰篇

4、評估診斷:成功邁出敏捷推進的第一步

  • 推進敏捷涉及到評估診斷、團隊敏捷試點、大規模推廣這三大步驟。
  • 推進敏捷的第一步是評估診斷,其目的是在轉型之前,讓企業或者團隊瞭解自己的現狀、存在的問題和痛點。採用的方法是四步法:選定代表性項目、訪談評估、制定轉型計劃和溝通。
     

5、團隊試點(一):讓你的敏捷實踐“事半功倍”

  • 試點工作的展開可以分爲試點前準備和試點推進過程兩步。
  • 敏捷實踐畢竟屬於一場變革,與其他所有變革一樣,都需要先從局部試點試水,只有在試點中積累了切實的經驗教訓,確定了可行性後,才能去大規模推廣。如果不先在試點試水,就貿然在全局上推廣,一旦在推進過程中遇到水土不服等問題,不只階段性的成果會前功盡棄,想倒回去做新的改變也更不容易,最終整個變革大概率會走向失敗。
  • 我建議你選兩個或兩個以上團隊來進行試點。如果只選一個團隊,孤品風險太大,也沒有競爭效果;而兩個或兩個以上團隊容易產生競爭性,對比效果明顯,大家都會爭着把事情做到最好。當然,這也要看敏捷教練的數量,一般一個教練一次只能帶 2~3 個團隊,否則一個教練的精力是沒有辦法照顧到每個團隊的。
  • 所謂“凡事預則立,不預則廢”,在推進團隊敏捷試點之前,你要挑選好試點團隊,並做好試點工作前的充分準備。如何做好準備工作呢?一句話:調整好結構、組織好人員、劃定好需求、搭建好架構、選擇好方法和工具、佈置好辦公環境。你要注意,這些準備工作是相輔相成的,每一步都馬虎不得。
  • 在 B 公司,起初我們在管理實踐上選擇了 Scrum 方法,在技術實踐上則選擇了單元測試、自動化迴歸測試,還有搭建 DevOps 流水線。
  • 工作過程管理工具,主要指研發作業流程管理工具,比如 Jira 和 Trello 等,國內也有人用禪道。
     

6、團隊試點(二):打造一支無往不勝的敏捷團隊

  • 在做團隊敏捷試點時,團隊的執行力、戰鬥力是關鍵,可以通過三種方法喚醒團隊的活力:

    • 推進試點前,制定“社會契約”,保證團隊敏捷工作的有序和高效;
    • 推進試點過程中,開展定期的“回顧會議”,引導團隊自發思考,激發團隊的自主性,使敏捷工作更加順暢;
    • 在試點過程中和結束後,通過“成績牆”和“錯題集”記錄團隊敏捷的成長,總結經驗。
  • 回顧會議是有時間盒的,一般不會超過 1 個半小時。在前幾次回顧會議中,團隊會提很多關於敏捷實踐的問題,但我們的時間有限,所以如果問題幾句話就能解釋明白,通常我會當場解釋清楚,否則我會安排專門的時間來和團隊解釋他們的疑惑,而不會把會議拖得過長,佔用過多時間。

  • 其實打造一支無往不勝的團隊並不難,只要你善於利用上面我給出的幾種方法,善於用同理心理解團隊,那麼你離敏捷實踐的成功就不遠了。而你也要注意的是,做團隊敏捷試點不是目的,我們的目的其實是通過試點總結敏捷實踐的經驗和教訓,以便我們給其他團隊導入敏捷時有所參考。
     

7、規模化推廣:複製粘貼試點的經驗就夠了嗎?

  • 試點涉及的主要是團隊內部的敏捷,而規模化推廣還要涉及團隊間的敏捷。

  • 關於怎麼做敏捷的規模化推廣,當前有兩個主流的框架,SaFe(Scaled Agile Framework)和LeSS(Large Scale Scrum)。

  • 敏捷的規模化推廣不是對試點經驗的簡單拷貝,也不是找來幾個規模化框架往企業身上套,而是需要根據企業的研發管理痛點和需要解決的問題,根據實際情況尋找解決方案。當然在這個過程中,成熟的規模化框架可以給予我們參考。

  • 我認爲,在規模化推廣敏捷前,還是要從企業或團隊的痛點切入,看他們究竟需要解決什麼問題。分析具體問題後,你可以從下面這些方面考慮怎麼去規模化推廣敏捷,並形成自己的規模化推廣方案:

    • 選擇合適的規模化推廣策略。
    • 做好敏捷文化鋪墊,培養好敏捷的中堅力量。
    • 搭建適合敏捷的工作環境,做好必要的工具和自動化準備。
    • 組織級別的敏捷度量以及持續改進。
    • 重視大型團隊的敏捷導入與推廣。
  • 大型團隊敏捷的導入和推廣,首先要打造端到端的、從需求到開發到測試到運維到運營的敏捷全生命週期,向業務敏捷靠攏。

  • 確立產品負責人制度,將過去以“項目”爲中心的管理改爲以“產品”爲中心的管理。

  • 要建立各團隊間的敏捷實踐,就需要提前安排支持工作。

  • 幾年以後的今天他們內部已經完成規模化敏捷 1.0,目前正在循序漸進地推進規模化敏捷 2.0,2.0 的重點在 DevOps 方面的建設。

  • 規模化推廣敏捷的核心是大型團隊的敏捷導入與推廣,主要集中在業務敏捷和團隊間敏捷兩點上。你可以通過定製度、定反饋機制推進業務敏捷,可以通過在管理實踐上建立溝通機制,對齊團隊目標來保證團隊間敏捷的高效和有序。當然除了這一點,你也需要統籌全局,從推廣策略、文化、環境等方面完成整個敏捷規模化推廣的持續改進。
     

四、策略篇

8、填坑指南:填好這4個坑,快速做對敏捷

  • 不瞭解和分析現狀就直接推進敏捷是非常不靠譜的,必須看清現實,摸清項目的痛點,在解決痛點的基礎上導入並推進敏捷才是可行的。
  • 不理解敏捷實踐背後的意義,把敏捷當作一種新的流程,而忘記敏捷的核心是持續改進
  • 通常來說,敏捷推進會經歷三個階段:做敏捷(doing agile)、思考敏捷(thinking agile)和思想敏捷(being agile)。
  • 首先,你一定要認識到 Scrum Master 在敏捷實踐中的重要性。在團隊還不成熟的時候,他負責宣講敏捷的價值觀、理念,也負責具體實踐的導入和守護。一個好的 Scrum Master 在引導(facilitation)、教育(teaching)、輔導(mentoring)、教練(coaching)這四個方面都有很強的能力,並能根據具體的情景選擇使用哪種能力來幫助團隊體驗敏捷帶來的益處,堅定維持團隊新養成的敏捷習慣。在領導力方面,他具有服務型領導的理念,是團隊的主心骨,在構建敏捷文化等方面對推進敏捷具有很大的意義。
  • 其次,要想將敏捷推進到底,必須在基層留有敏捷的火種。
  • 推進敏捷時要通盤考慮整個鏈條應該怎麼推進。
  • 敏捷是個整體工程,需要從全局上來考慮怎樣去推進。在前期,要做好診斷和規劃,在解決痛點的基礎上導入適合自己的敏捷方法;推進過程可以分步進行,要及時排查每一步中出現的新的阻礙;要加強協作,打通研發管理的全鏈條,必要時要成立高層參與的敏捷督導團隊,請高層領導幫忙推動;在整個敏捷實踐過程中都需要有能力的敏捷教練陪伴,並在推進過程中培養出適合自己團隊的 Scrum Master。
     

9、避雷策略:如何防止你的敏捷變爲“小瀑布”?

  • 先把大項目或需求做一個模塊拆分,然後一個一個模塊做下去,和瀑布模式相比,這種方式有了一點進步。然而,究其本質,仍然還是瀑布,我們一般稱它爲“小瀑布”。小瀑布依舊是瀑布,它並沒有改變瀑布模式的宿命,它離真正的敏捷還有相當長的一段距離。
  • 先把客戶的需求拿來看一下,挑選好並先從有價值的、優先級最高的需求開始做。在敏捷實踐中,我們工作的結束點不應該是把之前所有計劃的工作做完,而是把客戶需要的工作做完。
  • 不管是使用哪種拆分方法,做需求拆分的目的,都是把大需求拆成一個個能夠獨立開發測試的小需求。
     

五、管理篇

10、內部教練:守護敏捷實踐,求人不如求己

  • 培養自己的內部敏捷教練
  • 敏捷教練是幫助組織或團隊推進敏捷實踐的人,這個職位需要具備的能力,簡要歸結成兩點:懂敏捷、能“教練”。
  • 懂敏捷指的是一名合格的敏捷教練,首先要有紮實、完備的敏捷知識,要有推進敏捷實踐的經驗和技術,這是能“教練”的基礎。
    能“教練”指的是敏捷教練既要能教授團隊什麼是敏捷,給團隊講授基礎的敏捷知識和敏捷背後的意義;又要能給團隊示範和輔導具體的敏捷實踐怎麼做,通過引導團隊會議等引導團隊的敏捷推進;同時,他還能用一定的技巧來引導和啓發團隊主動思考,主動改良自己的行動。
  • 在一個龐大的組織中,敏捷教練可以按技能和分工的不同分爲高級敏捷教練、中級敏捷教練和初級敏捷教練。
  • 從分工上來看,高級敏捷教練負責組織級別的敏捷事宜,包括培養初級、中級敏捷教練,新團隊的敏捷導入,以及諮詢和處理疑難敏捷問題等。中級敏捷教練通常負責幾個小團隊組成的一個部落的敏捷事宜,負責部落內各小團隊的組間協同等等。而初級敏捷教練則主要負責一個一個小團隊的敏捷事宜。
  • 由於初級敏捷教練是直接帶領每一個敏捷團隊的,且數量龐大,所以我們培養內部敏捷教練的主要精力也放在培養初級敏捷教練身上,而中高級敏捷教練也是在初級敏捷教練基礎上逐漸成長起來的。
  • 初級敏捷教練需要先參加敏捷基礎培訓、設計思維培訓和產品負責人培訓。緊接着會安排實戰工作坊,因爲在敏捷實踐過程中,有些問題只靠掌握基礎知識是不能解決的,還需要將這些知識轉化成實戰技能,這就需要練習和實踐。除了以上兩個常規的活動以外,我們還有一系列在線培養初級敏捷教練的活動,這對於沒有時間參加幾整天實戰工作坊的初級教練來講,是一個非常不錯的補充。除了基礎培訓和安排實戰工作坊,高級教練還會爲初級教練提供一對一的教練服務。
     

11、服務型領導:在敏捷中你該怎樣提升自己的領導力?

  • 作爲新時期的一場變革,敏捷固然會帶來組織方式和文化理念上的各種改變,但與此同時,它也對原來的領導方式和領導力有了新的要求,激勵領導者革新管理方式,在敏捷這一新形勢下持續提升自己的管理能力。
  • 我們需要的管理方式和領導方式是,管理者和團隊一起,在短時間內對新的市場要求做出快速反應。而符合這種條件的新型領導者,我們稱他爲“服務型領導者”。
  • 簡單來說,這指的是領導者首先要是一個服務者,要爲整個團隊服務,拉近他與員工的心理距離,這樣纔會取得團隊的信任。從管理目標上來說,他的目標是和團隊成員共同成長,所以做任何事的首要動機都是爲團隊中大多數人謀取利益,由此團隊成員纔會更願意跟隨他,努力工作並取得整個工作的勝利。
  • 首先,作爲一個服務型領導者,給員工建立心理安全機制是必不可少的,只有這樣,才能真正拉近與員工的心理距離,更好地達成團隊目標。
  • 領導者能在不同的情境下運用不同的領導力來指導和支持團隊成員完成目標或任務。
  • 一般來說,有兩種基本的領導行爲:
    指導性行爲:告訴他人應該做什麼,何時做,如何做,並經常提供結果反饋;支持性行爲:鼓勵、表揚他人自力更生解決問題,傾聽意見,並讓他人蔘與決策。
  • 在如今變化快速的環境尤其是敏捷的環境中,要想做好一個管理者和領導者,一定要具備“服務型領導”的能力。服務型領導的核心是團結員工,形成凝聚力更強的團隊。作爲一個服務型領導者,首先要從內心裏有服務意識,要給員工營造安全的心理環境,拉近與員工的心理距離。還要有足夠的能力來從語言和行動上讓員工感受到他們是被關懷的,這就需要掌握情境領導力,針對不同的情境,使用不同的領導風格。
  • 《情景領導者》
     

六、結束語

12、用敏捷提升自己,從敏捷走向未來

  • 討論到最後,大家一致認爲,未來的人才一定要具備這 6 大能力:健康力、交往力、學習力、專注力、批判力和創造力。

  • 敏捷雖從軟件研發中來,卻並不止於此,對敏捷的使用已經遠遠超出了這一行業,因爲敏捷的很多思想,都可以在很多領域和工作中發揮價值。

  • 敏捷學習的高階程度不是你學會了幾種實踐方法,而是你真正掌握了這背後的敏捷思維,並且能用這些思維來助益你的工作和生活。

  • 敏捷書單:
    《敏捷教練:如何打造優秀的敏捷團隊》、《敏捷軟件開發:原則、模式與實踐》、《Scrum敏捷項目管理》、《硝煙中的Scrum與XP》、《敏捷回顧:團隊從優秀到卓越之道》、《團隊協作的五大障礙》、《用戶故事與敏捷方法》、《持續集成》、《持續交付》、《Devops實踐》、《有效的單元測試》、《測試驅動開發》、《重構》、《代碼整潔之道》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章