結論
我先寫結論,需要。
但這樣的結論或許太粗暴了,所以還是修飾一下說法。
身為一家想要持續在市場上存活、持續獲利的軟體公司,需要足夠多的工程師,但如果是一家得過且過,只求短時間存活的公司,那確實不用那麼多的工程師。
工程師的種類
在講為什麼之前,還是稍微介紹一下一家軟體公司通常會有哪些工程師。
但強調一下,我不是工程師,或許應該說短暫當過工程師,曾短暫開發ERP產品這樣,但我目前擅長的職位是PM,在目前職位曾擔任6~7年的PM,不論專案經理或產品經理都擅長,現在的擔任的職位則是技術支援和產品售前規劃,然後兼著當PM。
不論甲方或乙方都待過,也很常和工程師合作,但如果有說錯也麻煩在底下留言補充,我會修正。
工程師是一個很籠統的說法,實際上還細分很多角色,包含前端工程師、後端工程師、mobile端工程師(App工程師)、Infra工程師、QA工程師等等,然後這幾大類還可以細分很多職位,比如mobile端工程師就還分Android和iOS。
而通常一個軟體的開發、部屬等等,就是以上這些工程師們,分工合作所出來的產物,而非一個工程師就可以一個人處理完的。
舉個例子,一個App,在工程師這邊的分工,大概就是這樣進行:
Infra工程師在雲端架設server。
後端工程師在server上架設程式、開發API。
前端工程師架設一個可以操作的網站介面出來,串接後台工程師開發的系統,讓使用者可以操作。
App工程師刻畫面、串接API,讓App可以正常使用。
QA測試已經出來的App版本,確保App沒有Bug。
而且以上的步驟,我用很簡化的說法去說明,但實際內容非常複雜和細瑣,同時我還沒有加入非工程師的人員,包含PM、設計師、行銷等等人員的工作。
只需要工程師就好了嗎?
同上一段結尾,當然是不可能啊。
一個軟體要開發,有很多工作得做,也就有很多人物要一起參與,簡單舉例,大概就得有商業分析師、產品經理、專案經理、系統分析師、行銷企劃、財務、UIUX設計師等等參與其中。
商業分析師,負責分析商業模式,挖掘新的需求。
產品經理,根據新的需求,初步規劃產品的初步方向、出產品需求書等。
專案經理,根據產品的需求、時程進行專案規劃、執行。
系統分系師,根據產品需求,規劃需要串接的系統、服務、出系統規格書等。
行銷企劃,負責處理產品上線後的推廣,吸引用戶來用。
財務,系統開發時,也可能有金流要串接,有財務報表要出,要與其同步確認。
UIUX設計師,負責設計產品畫面、友善的流程等。
一個產品要出來,絕非只要工程師就好,而是要一整個團隊分工合作,相互支援才有機會完成。
為什麼一家公司需要那麼多工程師?
1. 維運
系統、產品甚至是功能,並不是開發完就結束了,接下來的動作一個就是維運,什麼叫做維運,就是確保開發出來的服務,平常均可以正常使用,就算系統突然間湧入大量流量,服務依然可以正常使用。
維運雖然不用大量人力,但是確保服務能持續正常使用、不隨便就掛掉,是非常重要的環節。
2. 優化
現在處於資訊快速化的時代,技術更新很快,像是手機的OS,每年都不斷不斷的更新,而且硬體也是,為了要讓原本的App,在新技術的OS能順暢使用,都必須針對程式不停的優化,確保能正常使用。
同時如果在一開始開發時,開發過程中為了符合專案的時程,可能用比較偷懶的方式,不論是資料寫死或是架構隨便,這些都必須在後期修改掉,否則就像地基打不好的房屋,時間久了、功能多了,遲早會出現問題,這些都是需要工程師持續優化的。
3. 新產品開發
雞蛋不要放在一個籃子中,公司的領導者一樣曉得,甚至深知其中利害,所以持續開發不同的產品線,本來就是讓公司持續壯大的方式之一。
4. 研究
同上述的二都有提到,技術改朝換代的速度極快,所以花時間持續研究新技術,是工程師必備的功夫,甚至有些公司會讓某些工程師就專門進行研究新技術,說不定這些技術,有一天就會在新產品、新功能中派上用場,而進而讓公司營利。
後話
產品,是一家公司的命脈,好的產品可以讓公司飛上天、成為業界的領頭羊,而這些產品的開發者,就是這些工程師。
所以一家公司需不需要那麼多工程師,我建議,還是需要的。
甚至產品開發相關的人員,都不宜太少。
因為好的產品,才是公司賺錢的核心。