[心得] 在北歐的科技業搞DevOps跑敏捷是什麼樣的體驗? [Agile Taipei]
你知道在歐洲工作是什麼感覺嗎? 北歐的工程師又需要做些什麼事呢?
來這場meetup分享會準沒錯,講者是有名氣又厲害的陳小風,
雖然參加前還沒聽過這號人物,但聽完之後真心覺得很佩服呢!
在瑞典工作,福利真的超級好:
全公司都具備Agile Mindset,從行銷到資訊人員,甚至是人資部門。
保持startup的精神,這意味著不斷追求創新與進步,為公司不停開創新的賺錢方式。
不過在台灣,老闆們也是喊得很用力,大家要導入敏捷開發,要持續改進,要迭代發展產品...
說起來簡單,做起來可能就不是這麼一回事了。
接下來就講到關鍵的地方,要怎麼才能做到Agile Mindset呢?
一般來說有 4~5 Dev + 1 Designer + 1 Data(數據收集) + 1Leader + 1 PO
組成E2E全功能團隊,能獨立運作,每個人也不分角色,共同維護團隊的產品。
來這場meetup分享會準沒錯,講者是有名氣又厲害的陳小風,
雖然參加前還沒聽過這號人物,但聽完之後真心覺得很佩服呢!
前言
講者小風在Klarna上班,是瑞典的一間FinTech公司,有4000+的員工。在瑞典工作,福利真的超級好:
- 每天上班朝9晚5,實際約5小時,3點半還有下午茶
- 原則上沒有人加班
- 一任職就固定每年30天假
- 法律保障休假權,也就是30天一定能休完
- 產假有480天
- 優良的工作環境:升降桌、雙螢幕、免費咖啡+水果...
全公司都具備Agile Mindset,從行銷到資訊人員,甚至是人資部門。
保持startup的精神,這意味著不斷追求創新與進步,為公司不停開創新的賺錢方式。
不過在台灣,老闆們也是喊得很用力,大家要導入敏捷開發,要持續改進,要迭代發展產品...
說起來簡單,做起來可能就不是這麼一回事了。
接下來就講到關鍵的地方,要怎麼才能做到Agile Mindset呢?
敏捷化組織
即使是這麼多員工的公司,在組識運作上,都是組成10人內的團隊編制。一般來說有 4~5 Dev + 1 Designer + 1 Data(數據收集) + 1Leader + 1 PO
組成E2E全功能團隊,能獨立運作,每個人也不分角色,共同維護團隊的產品。
科學 > 感覺
公司重視數據收集(Metric Driven),透過數據分析,來做相對應的決策。- 資訊透明
方便查找資料,並且讓團隊成員了解產品狀況。 - 量化評估
發出一張信用卡的成本多少錢? 用戶平均使用多久才能賺回發一張卡的成本?
透過量化的數據,可以精算出上述資訊,以決定投資ROI。 - 使用者數據
了解產品被使用的頻率與操作方式。檢視產品功能的成效,以決定接下來的發展方向。 - 透過 假設->收集->分析的步驟,來達到產品的改善與優化
組織協作
這麼多的小團隊,要怎麼合作?
每個Team會發展自己的產品,有些是賣給外面的客戶,也有些做為內部的基礎服務。
舉例來說,上述的數據收集工作,就有團隊在發展Metric的元件,給內部所有團隊使用。
另外還有其他內部Support如:
- Splunk -> 類似ELK,做Log收集與分析的工具
- Infrastructure
- Framework
- UI -> 套用提供的元件,能write once run anywhere
整個公司就像是有上百個startup團隊,在發展獨立的產品,但又彼此協作配合。
也因此,團隊具有相當的自主權,
老闆只要訂出公司發展的方向,剩下的授權給團隊自行發展。
低工時卻高效率
產品為何做不完?
- 想要的功能太多
- 需求變太快
- 預期之外的錯誤
- 依賴其他團隊
這幾點確實是讓我們需求永遠做不完的很大原因,
甚至才剛做完就發現需求和你想的不一樣 XD
所以對應上述問題,該把握的原則就是要聚焦
- 提高生產效率
- 專注生產價值
- 減少不必要的浪費:metric driven
- 限縮產品範圍
- 減少外部依賴
- 隨時merge,隨時上線:1天可上版100次以上
高效率是大家想追求的,但平時就是三不五時來一些障礙,實在很難專心做好手上的事,怎麼辦?
Agile + Devops
- 盡可能地自動化
能自動就不要手工,CI/CD的流程有80+ stage (完全無法想像怎麼做到的)。
用測試來確保產品穩定,用Linter檢查原始碼符合開發規範。 - pair programming
大家的工作能彼此備援,並提升程式品質。 - MVP
先做出會動的版本,找出最重要的一個功能,專注達成主要標,觀察市場反應來調整產品。 - 監控/警示系統
隨時了解系統狀況,異常自動警示,在使用者發現問題前就把問題修正。 - Feature Toggle
控制產品功能,遇到異常時能隔離問題點,能達成局部功能上線/持續上線,對新功能做A/B Testing以搜集使用回饋。
技術實現
大量使用微服務
- 功能隔離
- 容易迭代產品功能
- 容器化做資源有效利用
- 採服務proxy機制,後端服務可隨時切換
- 持續重構服務,必要時直接重寫服務
總結
講者其實還分享了很多細節資訊,包含在歐洲生活的種種美好,又或是如何準備出國求職的資料(意圖使人出走!)。
不過最後說到台灣,其實家鄉還是非常好的,有好吃的食物,方便的交通,以及最重要的,我們的家。
其實不論是在國外或是台灣,大家都能為台灣的軟體業多付出一點,
秉持著Agile Mindset,持續做對的事情,持續進步,讓台灣發光發熱!!
留言
張貼留言