Closed kjj6198 closed 6 years ago
在職場上,偶爾會出現「天才工程師」,他們自視甚高,鄙視任何非出自於他們手中的程式碼,並且以「創造力」為最大準則。他們也相當聰明,但時間一長,或是程式碼越來越複雜,這些天才工程師的陋習就會越來越明顯。
在天才工程師的眼中,任何代碼都會說話,不需要花瑣碎的時間去寫微不足道的文件,這有辱他們的智商與人格。一旦被指派寫文件的任務,這些天才工程師就會抱怨,抱怨主管為什麼交付這種任務給他,這種事情應該由那些菜鳥工程師來做才對,怎麼可以浪費我寶貴的時間呢?久而久之,當程式碼凌亂到開始出現問題,其他工程師再也無法忍受時,他會先花一段很長的時間解決自己製造出來的 bug,再以英雄之姿炫耀自己多會救火。
我們繼續深入,就會發現天才工程師很少在一項專案上連續開發超過一個月,他們不喜歡耗時太久基本架構、寫文件、測試這種單調乏味的任務,他們最喜歡引入新技術,以展現他們的聰明才智與創造力。
在天才工程師的程式碼中,時常可見縮排不一、代碼風格不一、到處缺少分號與空白、commit 訊息寫得模糊不清......,因此通常會因為難以維護而放棄專案的開發,然後繼續尋覓下個新技術。
天才工程師的特性導致團隊很難與他溝通,在天才工程師的眼中,只有他 review 別人的 code,不能有人挑戰他寫的 code。也因此通常天才工程師的 PR 很少被別人 approve,而他總是認為自己的程式碼太完美了不需要被 review。
天才工程師熱愛新技術,但卻很少專注於如何解決問題。他不會選擇最適合的方案,不會考慮效能與開發速度、不會考量業務需求與拓展性,一切都是先從框架與語言下手。如果遇到技術債了,他們不惜耗掉更多的時間,也要把系統搬遷到他們認為最「酷」的語言上。
天才工程師在日常上還有幾個很大的特色—從不守時。遵守紀律對他們來說是那些平庸的人才會做的事,聰明的腦袋與產能怎麼可以被這種規範給束縛呢?
這樣的習慣衍伸到進度管理上,造成團隊甚至公司的進度延後,不尊重自己的專業,最後終將導致整個產品的失敗。
工程師,代表著的是用自身的專業與技能來解決實際的問題,看似枯燥乏味的測試、寫文件、建立基礎架構......,是維持產品質量的重要因素之一。
一個好的解決方案並非選擇最新的技術,而是經由經驗、效率、業務需求考量等等得到的結果,一位好的工程師並不一定很有名氣或是很有創造力,但他們尊重自己的專業以及交付的程式碼,願意與團隊的其他人溝通。
正因為有這些「紀律」存在,工程師才得以專注在更重要的事情上面。
在職場上,偶爾會出現「天才工程師」,他們自視甚高,鄙視任何非出自於他們手中的程式碼,並且以「創造力」為最大準則。他們也相當聰明,但時間一長,或是程式碼越來越複雜,這些天才工程師的陋習就會越來越明顯。
不寫文件與註解
在天才工程師的眼中,任何代碼都會說話,不需要花瑣碎的時間去寫微不足道的文件,這有辱他們的智商與人格。一旦被指派寫文件的任務,這些天才工程師就會抱怨,抱怨主管為什麼交付這種任務給他,這種事情應該由那些菜鳥工程師來做才對,怎麼可以浪費我寶貴的時間呢?久而久之,當程式碼凌亂到開始出現問題,其他工程師再也無法忍受時,他會先花一段很長的時間解決自己製造出來的 bug,再以英雄之姿炫耀自己多會救火。
三分熱度
我們繼續深入,就會發現天才工程師很少在一項專案上連續開發超過一個月,他們不喜歡耗時太久基本架構、寫文件、測試這種單調乏味的任務,他們最喜歡引入新技術,以展現他們的聰明才智與創造力。
在天才工程師的程式碼中,時常可見縮排不一、代碼風格不一、到處缺少分號與空白、commit 訊息寫得模糊不清......,因此通常會因為難以維護而放棄專案的開發,然後繼續尋覓下個新技術。
唯我獨尊
天才工程師的特性導致團隊很難與他溝通,在天才工程師的眼中,只有他 review 別人的 code,不能有人挑戰他寫的 code。也因此通常天才工程師的 PR 很少被別人 approve,而他總是認為自己的程式碼太完美了不需要被 review。
執著於技術而非解決問題
天才工程師熱愛新技術,但卻很少專注於如何解決問題。他不會選擇最適合的方案,不會考慮效能與開發速度、不會考量業務需求與拓展性,一切都是先從框架與語言下手。如果遇到技術債了,他們不惜耗掉更多的時間,也要把系統搬遷到他們認為最「酷」的語言上。
不守時
天才工程師在日常上還有幾個很大的特色—從不守時。遵守紀律對他們來說是那些平庸的人才會做的事,聰明的腦袋與產能怎麼可以被這種規範給束縛呢?
這樣的習慣衍伸到進度管理上,造成團隊甚至公司的進度延後,不尊重自己的專業,最後終將導致整個產品的失敗。
結論
工程師,代表著的是用自身的專業與技能來解決實際的問題,看似枯燥乏味的測試、寫文件、建立基礎架構......,是維持產品質量的重要因素之一。
一個好的解決方案並非選擇最新的技術,而是經由經驗、效率、業務需求考量等等得到的結果,一位好的工程師並不一定很有名氣或是很有創造力,但他們尊重自己的專業以及交付的程式碼,願意與團隊的其他人溝通。
正因為有這些「紀律」存在,工程師才得以專注在更重要的事情上面。