在IT鐵人賽,選擇非技術主題,其實只有一個原因,這裡老司機太多了。你要聊Docker,還是要聊Java,這樣的技術主題在平常ithelp就已經很多了。看了一看,好像聊軟體工程的文章相對少了一點,那,我就來身先士卒囉!
一直以來,我都認為軟體工程和軟體設計是兩回事。要寫出好的軟體,首先你要有好的技術,精準地時做出正確的功能。然而,軟體工程在台灣,則不管在業界或是學界,都是最被忽略的一塊。
軟體工程是什麼?把程式寫好,QA測完,放上線賺錢,這不就是最棒的軟體工程了嗎?哪有什麼比這更好的?非也,非也。軟體工程包含工作流程、團隊組成、程式設計、測試流程、驗收標準、版本控制、部署流程、品質管控等,內容包羅萬象,要精通全部實在是太難了。
偏偏,做了好的軟體工程,代表公司就能賺錢嗎?也不見得。在公司發展初期,光是要拚功能就已經很喘了,誰有時間跟你在那邊管流程與精實?久而久之,當這套老方法深植大家心中,但程式與功能都已經大到人類無法handle的地步時,技術債就出現了。怎麼辦?大幅度重構囉!大幅度重構對公司與員工的傷害有多大,不用我說,你也懂的。
但我必須說,軟體工程是一件沒有績效的事,對於台灣絕大多數的企業來說。他充其量就是讓你的生活好過一點而已。要鑽研,就要犧牲一點績效,你要嗎?如果您也有這份決心,想要踏上優良軟體工程的不歸路,那,我們用接下來的30天,一天一主題,看看身為工程師,你要怎麼簡化工作,減少出錯,提高效率吧!
明天見!