系統設計師[] / []

職業心智圖
系統設計師
系統設計師_職業心智圖

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

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

系統設計師 (軟體業|軟體開發|資訊部)  簡稱SD(System Designer),主要工作是基於系統分析師(SA)所產出的系統設計文件進行UI、程式架構、共用元件、資料庫架構等不同功能方塊的做進一步分析規劃,並撰寫Coding 工程師所需的適用文件。

軟體開發的主要流程依序為「系統分析」→「系統設計」→「系統開發」→「系統測試」。首先,系統分析師基於使用者需求及商業邏輯(Business Logic)撰寫完成系統分析文件;系統設計師扮演著系統分析師與Coding工程師之間的橋樑,必須將抽象的需求及商業邏輯逐步分解,再重新撰寫成Coding工程師開發時可參照的文件;而Coding工程師則必須遵循系統設計文件所規範的UI設計、操作邏輯、程式架構、程式規範(Coding Rule)等進行程式開發。

職場

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

電玩遊戲的未來?VR vs. NFT!VR遊戲的未來樣貌,玩NFT遊戲會不會受騙?遊戲開發者的初衷是什麼?

年度工作目標
   藍色   撰寫系統設計文件(50%)
紅色   協助或參與開發(30%)
橘色   Code Review(10%)
綠色   測試及除錯(10%)
日常工時分佈
   藍色   撰寫系統設計文件、選擇設計模式、資料庫結構設計(30%)
紅色   分派開發任務、協助開發、協助解決技術問題(30%)
橘色   與PM及系統分析師討論及確認使用者需求、商業邏輯、UI操作流(20%)
綠色   Code Review、指導開發模式及方法、經驗傳承、確認程(10%)
紫色   協助測試、協助除錯(10%)

績效評核

  • 撰寫系統設計文件(50%):依據系統分析文件,並符合系統操作流程及系統商業邏輯,分析撰寫系統設計文件。所產出的系統設計需符合標準設計模式,並有助於縮短後續開發時程,及提高可維護性。衡量標準為系統架構、文件可讀性、開發時程短、可維護性高。
  • 協助或參與開發(30%):以任務分組方式協助或參與開發,如UI小組、架構小組、元件小組、整合小組等。除了參與開發外,也要負責任務指派,並控制開發時程。衡量標準為指揮調度、開發時程、開發效率。
  • Code Review(10%):驗證Coding是否有依照系統設計文件及設計規範開發。衡量標準為程式的品質及可維護性。
  • 測試及除錯(10%):撰寫測試腳本文件,並協助測試及除錯。衡量標準為程式可用性、系統穩定度。

工作內容

  • 與PM及系統分析師討論及確認使用者需求、商業邏輯、UI操作流程等(20%)。
  • 撰寫系統設計文件、選擇設計模式、資料庫結構設計(30%)。
  • 分派開發任務、協助開發、協助解決技術問題(30%)。
  • Code Review、指導開發模式及方法、經驗傳承、確認程式品質(10%)。
  • 協助測試、協助除錯(10%)。

崗位關係

  • 上級:系統設計師的直屬主管一般是專案經理(PM),依專案性質不同,例如自行開發產品的公司還有產品經理,一個產品經理可能會管理好幾個專案,也就是產品經理底下會有好幾個專案經理,專案經理依專案大小分別指派任務給一個或多個系統分析師,每個系統分析師又會將任務指派給一個或多個系統設計師。
  • 同儕:依專案的大小,通常會有一到多個系統設計師協同處理一個專案,每個系統設計師分配的功能不同,常需要開會討論開發架構及公用元件的配置及協同開法方式,對於不同功能之間的邏輯串接必須一致,避免發生重複撰寫相同程式碼的情形發生,同時也要考慮日後維護的便利性。在系統設計初期規劃出好的架構可以縮短開發時間,減少程式臭蟲,並增加可維護性,所以系統設計師之間的溝通非常重要,也關係著專案是否能順利執行。
  • 下屬:一般系統設計師不會有直屬部下,但在規模較小的公司常常會由系統設計師來帶領Coding工程師,系統設計師在開發經驗及程度上都比Coding工程師高,對於專案的涉入程度也比較深,所以業界常常以此種模式進行專案,而有的系統設計師也會加入Coding的工作。

任職要求

教育程度/經驗

  • 學歷:普遍為專科或大學,但學歷並非是絕對的要求,一般會更重視技術能力及專案經驗,若有資訊工程學位可為加分,但仍以有實務經驗較佳。
  • 經驗:一般Coding 3年以上經驗即可嘗試從事系統設計師的工作。由於系統設計師需要較高技術能力及軟體架構能力,程式初學者並不適合挑戰此職務,如果真的有強烈的興趣則可以從較小的專案著手,以漸漸培養設計能力。

特別知識和技能

  • 須懂任何一種物件導向程式語言(OOP)或高階程式語言、資料庫規劃設計、UI規劃設計、及至少熟悉二種基本設計模式(Design Pattern)。
  • 要有相應於不同執行環境下開發軟體的特有技能,例如Web應用程式需要Html、JavaScript、CSS等技能及知識,手機APP需要Android、iOS開發環境及JAVA、Object C語言相關知識,桌上型電腦應用程式需要VB、C#、JAVA語言相關知識。不同平台使用的習慣及操作方法都不同,因此UI的設計也大不相同。
  • 對系統設計師Coding是必備的基本技能,因設計系統所需的技術及相關知識與Coding習習相關,也就是當你具備足夠的Coding能力及相關知識,才有能力設計出易開發、好維護的系統。軟體設計領域最主要的成本就是開發時間,因此開發期越短、維護時間越少的系統最能幫助到公司獲利。

工時薪水

薪資成長:依經驗不同大約在4-6萬之間,依軟體業別的不同,薪資成長空間也不一樣,但普遍都能維持在5萬左右。

工作機會:系統設計師因同時具備Coding及分析能力,有能力勝任開發及設計工作,將來也可挑戰系統分析師及PM職位。若對與客戶接觸的工作比較沒興趣,也可專職Coding或系統設計,成為更專精的設計師。

討論區[前往論壇]