preloader
軟體工程

採用新技術的考量方式

團隊成員若建議使用新技術,我建議團隊主管一定要請這個團隊成員,除了自己以外,還要訓練好最少兩個人。若其他產品團隊會使用到新技術開發的功能,建議這些團隊都至少要有兩人會這項新技術,因為如果主導使用新技術的成員請長假或離職,使用新技術的產品開發時程勢必要落後許多。若能採取這個措施,就能避免因為單點(單人)失敗造成系統(團隊戰力)耗損太多。這是金絲雀測試 Canary test 和分散式系統常用的概念:要有備案和候選計畫。

被這樣交代的團隊成員,心裡可能會想:「主管是不是在阻撓我推新技術?有夠古板!」若同事或自己有這個想法,我認為這人思考不夠成熟,缺德且不夠厚道,居然用公司產品練自己的功,且藉此培養自己到下一步的經歷,用別人資源下去耗,實在是太有英雄主義。太有英雄主義的工程師,請用自己私人專案練,當其他的團隊成員太閒要陪這人讀書練功是嗎?又不是每個人都想學同樣事情,別人也有自己想學的、想做的事情。我看過這種人,一味採用新技術,結果留了一堆坑給別的工程師解,讓別人去維護,頗令人無言,因為工程師很討厭維護舊程式碼,尤其是別人留下來的爛程式碼。

更何況,任何領域要推行自己的主張,都要先拉攏利害關係人到相同陣營壯大聲勢,聽過「鄉村包圍城市」這句話吧?道理就是如此。只想搞英雄主義的人,絕大多數是功敗垂成。