導入自動化,期望達到減少人力資源,降低成本,提高生產力等等。而軟體工程的自動化已經開始轉換成 DevOps 型態,但接下來想分享的是自動化是必需的嗎?
想做自動化通常都是觀察到工作流程中,有哪些是可以交由機器去做,而人類可以去做更有價值的部分。
像是部署腳本,可能每次都需要一些語法,就把流程寫下來後,當部署就執行腳本,減少人工處理跟可能發生錯誤的機率。
舉 App 工程師來說,就是從將 App 打包給 QA 下載驗證,每次交付都要做一次,不如交由機器做,可以讓工程師更能專心處理需要腦力激盪的事情。
自動化很酷,可以解決很多事情。一旦寫了腳本或是建立機制,如果後續哪天有異狀發生,或是想要做優化都需要安排人力去處理的。
我所屬的 App 團隊已經有一套自動化包版流程,有一天發現 Production 版本有問題,但由工程師手動包版卻正常。
像這種突發狀況下,工程師雖然可以手動執行,可是後續還是要安排時間找出原因。
不要為了自動化而自動化,就像前面個段落所說的,機制建立就需要人力去維護。
如果覺得以目前工作流程來說,沒有痛點全部手動也是一個做法,畢竟大家都是遇到痛點才會想要改善。
有碰到痛點,也可以僱用工讀生來做這些事也是一種選擇,雖然手動,但成本轉嫁到其他人身上,讓時間花在別人身上。