應用軟體開發工程師[] / []

職業心智圖
資訊應用軟體開發工程師
應用軟體開發工程師_職業心智圖

行業公益夥伴
瞻新資訊 | 軟體疑難雜症

只要您協助填寫軟體開發業的職務說明書一份,瞻新資訊將提供您300至600J幣作為酬勞!期待大家一起來分享職場經驗,為年輕世代的職涯探索盡一分力!

應用軟體開發工程師 (軟體業|軟體開發|資訊部)  軟體的功能應用範圍很廣,包括底層如BIOS、作業系統等,以及上層套裝軟體等,都屬於軟體開發的種類範疇。其中,一般使用者直接使用的上層軟體如工具軟體、APP、遊戲或網頁等就是由應用軟體開發工程師負責開發,其所承擔的工作職責簡單敘述如下:

  • 開發新軟體:在軟體開發初期,透過與同事溝通以及參與部門會議,一起進行可行性研究、訂定規格書、完成系統架構設計等。當確認軟體開發方向後,才會進入程式開發階段。
  • 滿足客戶新增需求:即便訂好規格,且產品也完成開發並發表,客戶依然可能會陸續提出新增的需求,有時甚至會影響到原本的系統架構設計。因此,系統功能新增或是系統架構修改也是軟體開發工程師的重要職責。
  • 軟體維護與除蟲:軟體開發過程中,通常會有測試人員負責測試開發的程式是否有問題(bug),倘若有問題就要進行偵錯除蟲(Debug)。然而即便是在軟體完成開發且發表後,都還是可能仍存留bug。隨著軟體複雜度越高,bug發生的機率就越大,這也是為何Windows常常需要提供更新的原因。抓bug解決軟體的不預期錯誤,也是軟體開發工程師的工作。

應用軟體開發工程師的工作目的是要讓電腦能透過執行所撰寫的程式,呈現想表現的結果或者解決一些問題。因此,要成為一個合格的程式設計師,具備有問題分析和邏輯能力就是一項重要的條件。無論是否為資訊相關科系畢業,如果擁有優秀的問題分析和邏輯能力,都相當適合從事軟體開發的工作。

職場

職涯探索影片
遊戲公司3Q時間-1

電玩遊戲的演進? 回憶殺?你第一次玩的遊戲是哪一款呢?邀請天火數位總經理林志帆先生與您分享!

日常工時比重
   藍色   程式開發與除錯(90%)
紅色   程式架構重構(10%)

績效評核

  • 軟體開發及維護(60%):軟體開發工程師必須開發滿足客戶需求的軟體,並持續提升軟體穩定度。倘若軟體出現使用問題,也必須進行除蟲工作。衡量標準為能否按照規劃時程完成任務。
  • 態度與溝通效率(40%):當達成階段進度、完成功能區塊,或是遇到甚麼問題時,都必須即時讓主管知道。良好的溝通可以讓主管隨時掌握專案最新的開發狀況,需要協助時主管也能立刻幫忙協調。另一方面,積極的工作態度可以避免被動等待主管指令的情況,提升專案的開發效率。衡量標準為對工作積極度與溝通效率。

如果是主任以上的應用軟體開發工程師,可能還會負責帶領新人。相關事務包括與新人互動情況、新人的績效表現、新人是否有成長等,雖然不列入軟體開發工程師的個人績效,但都將成為主管判斷是否適合升遷為管理職的審視標準。

工作內容

程式開發與除錯(90%):軟體開發工程師會不時與主管討論工作優先項目,所以可能今天一整天都在除蟲,明天則可能幫客戶建置新功能。除蟲對缺乏經驗的新人來說難度較高,因此新人面對除蟲工作時通常要花費更多的時間。

  • 偵錯除蟲:應用程式開發完成後,即便通過測試部門的完整測試,還是可能會陸續被通知軟體存在問題,例如Win8正常但Win7異常等相容性問題,或是Safari正常但Chrome異常的平台問題,軟體開發工程師都要找出問題的原因並修改程式讓系統能正常運作。
  • 新增功能:客戶可能希望在既有應用軟體中增加新功能,軟體開發工程師就要在既有的軟體中加入新程式來達成客戶要求的額外功能。
  • 開發新軟體:此部分工作通常會交由資深人員來執行,新人的主要工作還是會著重在既有軟體維護的部分。

程式架構重構(10%):重構即為Refactory。當主要工作告一段落時,會檢討之前寫過的程式碼,可能重新設計架構,也可能設計新的演算法,讓程式容易維護,或是提升CPU或記憶體的資源使用效率。此項工作優先順位雖然擺在最後,但卻能提升軟體執行效率與品質。

崗位關係

上層:一個團隊通常會有一個經理帶領,再往上層則是部門主管。有擔當的主管會幫下屬擋掉許多瑣事或非必要工作,例如開會或客戶問題等,軟體工程師尤其特別需要這樣的主管,因為軟體工程師的專長在於解決軟體問題,而非人的問題。相對來說,負責任的軟體工程師,除了每周會議報告進度外,若有完成新的任務或者新的進度,也必須隨時讓上級知道,讓主管可以即時掌握專案的最新進度。

平行:較大的專案通常需要由多位同事一起合作開發,因此,開發期間若有任何問題,就必須直接當面討論。同事之間若有職責不清楚的地方,會請示主管來裁定任務分工。

下屬:若有新人進來,通常會由資深的主任工程師來負責帶領及指導,大部分的軟體工程師只負責自己工作,不需負擔管理下屬的工作。

外部:大多數的軟體公司都不希望軟體工程師直接面對客戶,而是由PM或者主管去處理客戶問題。除非是涉及技術相關問題,或是客戶要求理解詳細內容時,PM才會請工程師協助解答。

任職要求

教育程度/經驗

  • 專科或大學以上,資訊工程相關科系畢業。研究所非必要,但起薪通常會比較高。
  • 有三年以上的工作經驗,比較會被視為有能力獨立作業,工作也較好找。

特別知識和技能

  • 底層軟體:最好有唸過作業系統、資料結構和演算法,對寫出高效能的程式非常有幫助,程式語言最基本要求是C/C++。
  • 上層軟體:網頁語言包含HTML、CSS、JavaScript等,桌面應用程式包含C++、C#、JAVA等,資料庫語言SQL。要設計高效能的程式本身跟程式語言能力有很大關係,可以從網路學習別人的經驗分享。

工時薪水

薪資成長:軟體工程師新人起薪可從四萬左右起跳,年薪14個月。若是名校畢業,起薪有機會再多三至五千。有些公司除了本薪之外,會另外發放績效或專案獎金。升到主任工程師時,月薪至少六至七萬。雖然月薪不會太高,但獎金發多的情況下,年薪很容易破百萬。

工作機會:新人會從助理工程師做起,工作能力表現佳的有機會升任工程師、資深工程師、主任工程師。對管理職有興趣的,長期也有機會升至經理,負責帶領團隊。

討論區[前往論壇]