iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 24
0
自我挑戰組

再戰軟體工程系列 第 23

『非吾懶也,蓋氣力有限也』 -- 談自動化的力量

我在前面的文章,曾經不止一次地談過怎樣做自動化,包括流程自動化、測試自動化、部署自動化等。也許時至今日,還是有很多人會存疑:『自動化到底有什麼好,我這樣雖然手動,但是這代表安全啊!』

如果你到了這個時候還是有這種想法,我只能祈求你的『小心』不要出一次差錯。

一般來說,公司總是會安排一位或數位不等的『資深工程師』來進行正式環境的操作,這些人就會組成所謂的『move-in team』,他主要工作就是把RD寫好的邏輯搬到正式環境讓他生效。時間一久,這些工程師會變成公司的要角,公司不可以沒有他們,因為正式環境的設定與營業狀況,數他們最清楚。這件事是OK的。正式環境畢竟牽扯到一些機敏資料,不應該開放每個人存取。而且,有專門人士為為緊急的狀況能做第一手處理,是很必要的。

然而,上述的運作手法,卻有兩個根本問題:『資深』與『不可以沒有』。

資深的問題在於,這些人是公司裡最有經驗,對程式邏輯最清楚的人。要他們花時間來做『move-in』這樣機械式的工作,實在對公司資源是很大的浪費。大家都知道在坐飛機時,最危險的就是起降的時候;軟體的release也是,最容易出錯就是在更版時了。但是,每次更版時都一定需要最有經驗的工程師執行的原因,如果是『因為經常出狀況,所以不敢讓機器自動執行』,那就本末倒置了,為什麼?

應該要從『提高產品品質』開始,從根本改善啊!怎麼會把品保的關卡設在『最後一關』呢?

『不可以沒有』的問題則是,在資深的工程師也是人,是人就會生病,是人就會有婚喪喜慶,是人也請假或休假。當然,在台灣,很多老闆或員工會有一個心態:『身為主管,身為老鳥,就是要為公司多犧牲一點。』但是,這種製造業心態拿到資訊軟體業來做事,未免有點因襲陳規之嫌,為什麼?

因為在軟體界,只要你夠厲害,就可以讓軟體做所有你做過的事

什麼意思?你看看圍棋吧,只要運算速度夠快,容量夠大,經過夠多次的學習,『機器終究會擊敗人類』這件事已經漸漸被人們接受了。怎麼說呢?因為世人已經慢慢領悟到了:人擅長的是創造,不擅長重複。這,就是自動化的力量了,因為:

  • 機器笨,人類聰明
  • 機器不懂得變通,人類懂
  • 機器勤勞,人類有時會犯懶
  • 機器擅長記憶,人類擅長創造
  • 機器沒有情緒起伏,不收加班費,人類則相反
    因此,最聰明的方法就是:『人類創造規則,讓機器跟著照做』。

以圍棋的例子,既然機器的學習與運算能力漸漸超越了人類,那人類要怎麼取回贏面?

很簡單啊,再發明另外一款新遊戲就好啦!

只要人類的大腦不要被浪費在無謂的瑣事上,就可以創造出無限多的新遊戲與新規則,並叫機器人乖乖遵守。簡單來說,讓機器代替你執行日常操作,主控權不僅沒有喪失,空出來的『優秀腦容量』,還可以被拿去不斷修改規則,使其更優化。注意到了嗎?我再說一次:

一旦不被瑣事綁架,你的『優秀腦容量』就可以拿來不斷創新與優化。

這是多划算的一件事啊?

至此,依然有的人會質疑:『自動化就能保證不出錯了嗎?』不不不,你誤會了。自動化不保證不出錯。自動化保證的是『每次都做一樣的事』、『每次都拿一樣的參數來做判斷』,以及『每次都依一樣的標準來下決定』。這,就是為什麼我在前面就先說了:『只要你夠厲害,就可以讓軟體做所有你做過的事。』

至於你要怎麼變厲害,阿彌陀佛,施主,這個問題你應該要問你自己...
https://ithelp.ithome.com.tw/upload/images/20180107/201074294dpAxxbZNY.jpg


上一篇
『雞尾酒式的scrum』 -- 談台灣最常見的 WaterScrum
下一篇
『好的工具帶你上天堂』 -- 你用的工具是設計來給你這樣用的嗎?
系列文
再戰軟體工程30

尚未有邦友留言

立即登入留言