Ruddy Lee 分享空間

Emergent Design 演化設計

看板驅動開發之度量篇

leave a comment »

.

0004.png

.

0002.png

.

0003.png

.

0004_1

.

0005

.

0006.png

KDD 最大的支柱是精實開發的七大原則(盡量延遲決策)

.

0007.png

工程師在團隊看板前領取了自己想做的工作,然後回到座位上開始進行自己一天工作的規劃,他的目的是 : 追求效能。

.

0008.png

工程師在站立會議領完工作單後,回到自己的座位時,才開始真正的規劃工作。

.

0009.png

這樣的規劃就會有效能嗎?因此我規畫了下面的專門用來提升效能的「個人看板」來協助他改善。

.

0010

.

把單核工作法溶入到看板方法中,運用在專注模式與全景模式之間的切換方式,來獲得效能的提升。接下來我們來看一看這個看板的執行原理:

.

0010_4.png

上半部是一個人的 Scrum圖示, 下半部是對照的看板圖示

.

0011.png

提升效能要從時間管理開始

.

0011_1

.

0013.png

.

0014

一個人的敏捷不能少了回饋: 也就是寄信給自己,在信裡頭運用時間差的思維方式給自己一些意見。

.

0015.png

對照看板方法與三步工作法

.

0016.png

這是三步工作法的基本定義說明

.

0017

實踐上是以切蛋糕的方式而非依序的 一、二、三步驟。

.

0018.png

大家都知道流水線是最快的交付方式,但為何就是做不到呢?

.

0019.png

松耦合是快速開發、運維又能維持韌性的基本原則

.

0020.png

什麼叫放大回饋呢? 就是在每一個流程上的關卡去設定完成的準則,讓 DoD 成為每一到關卡的回饋,避免讓缺陷遺留到下流的工作中。

.

0021.png

看板方法是一種 Safe to fail 的機制

.

0022.png

.

0023

如何把度量Mapping 到DevOps 中

.

0024.png

制定指標是最重要的檢核步驟

.

0024_1

Accelerate 書中所強調的 Software Delivery Performance 四大指標

.

0026.png

客戶的滿意度,決定了返工的百分比

.

0027

DevOps 轉型的四大基本指標 – 如果你不能衡量它,就不能管理它。

.

0028

.

0029.png

.

0030.png

.

0031.png

.

0032

.

0033

.

0034

.

結語

公司可能早就已經辦過「持續交付」這本由 Jez Hummble 和 Dave 所合寫的巨著的讀書會了,但為何開發和運維就是沒有太多進展而死終無法實現它呢? 要知道;這本書花了他們二位四年的時間才完成(註1),而要能真正實踐它更絕非一朝一夕的事,但在我作顧問的這些年來,深深體會是人的阻力才是CI/CD最難突破的地方,明明知道應該怎麼做才對,但就是無法克服哪種受到已知的錯綜複雜和將會面臨的種種挫折感,而始終無法下定決心去做,就一再用各種藉口去敷衍自己,也就一再的錯過改善的時機點。何謂好的時機點呢?

例如:新創公司成功發布第一代的產品時,接下來的決心就是第一個時機點,它應該選擇重構整個程式架構呢?還是部分的維修,把人力繼續花再開發新功能上頭,畢竟滿足客戶、賺錢可以讓公司過得好些。沒關係!接下來還有發布第二代產品的時機點來了,你應該毅然決然的好好重構整個程式架構呢?還是做跟上一次一樣的選擇呢?就是任由複雜的邏輯在繼續增長繼續堆疊下去,也就是選擇繼續花在開發新功能上頭,以可以滿足客戶為藉口、賺錢可以讓公司過得好些! 這些抉擇讓你一在的錯過時機點,也就是成就卓越的機會,到後來公司有一點錢了,而你已經雇用了一倍的人力了,但還是無法回復像開發第一個版時那樣快速更新產品功能的能力。為什麼呢?原因是你錯過多次的機會點來重構你的程式及架構,讓複雜度開始拖累著所有的系統開發,即便大量的聘請優秀的程式人員,若不盡快開始重構你的系統,持續降低它的複雜度,只怕你只是想要正常的營運不想再擴充下去了,也會更加困難的。

因此我始終覺得,人的阻力才是快速改善、快速交付的最大障礙,而流程則只是工具,人性害怕複雜又貪圖近利,是最難突破的地方。所以即便已熟讀聖賢書,深知所以然了,還是要有足夠的勇氣跟決心才能做到真正的敏捷,正所謂的知易行難(註2)。

.

註:

這是一場沒有機會在國內講到的演說,紀錄一下2018/08/17上海 DevOpsDays,供大家參考。

註 1. Jez Humble 接受訪問談到撰寫「持續交付」一書的過程

註 2. 重構應該發生在(1) 小的功能程式完成後,(2) 與其他程式整合的時候,(3) 整合入系統的時候,(4) 系統發布前/後。 

 

 

廣告

Written by ruddyllee

2018 年 08 月 12 日 於 16:34:52

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

%d 位部落客按了讚: