IT類職位常用

SA (System Analyst) 系統分析師

在軟體開發團隊中,屬於中高階的基層管理者與領導者。除了須具備優秀的文字、語言溝通能力之外,還要有良好的分析、組織、邏輯思考能力。當然也需要有良好的人際關係,以及深厚的技術背景與知識。

SA是 System Analysis 的縮寫, 一般稱爲系統分析, 主要的工作就是透過一系列的分析工作, 把客戶想要的結果產生方式, 以各種文件表達出來, 讓開發團隊可以根據這些文件實作出這個結果。
這樣的解釋比較文縐縐一點, 用個通俗一點的方式比喻, 就像是要做出一道宮保雞丁時, 就會有食譜一樣, 裏面會介紹需要的材料及做菜的順序, 然後裏面也會強調要以怎樣手法才能產生出某種效果, 以促進色香味。
這樣的過程裏, SA是較爲偏重於在工作流程和處理邏輯的, 透過SA, 開發團隊纔可以理出整個系統的架構, 一種做事的脈絡, 以及系統和工作間的關連性, 最重要的, 是這些結果都會被SA呈現在文件中, 而非放在少數人的腦袋裏。

SA不僅止是要針對計算機裏的東西去運作及規劃, 還包括了現實世界裏的實體流程及組織。在很多的情況下, 配合新系統的組織及流程, 是要由SA來執行的。總結起來, 在一個開發案裏, SA執行以下的工作:

1 藉由系統需求書, 使用者的現有標準作業流程來建立出符合期望的新作業流程及搭配流程的系統功能及模塊規劃
2 依據功能及模塊規劃案, 定出初步的數據庫內容及系統與使用者間的權限搭配規範
3 定出各個軟件零件的規範, 如對象, 函數庫, ...等等
4 設計新的標準作業流程, 並把系統功能或模塊綁入這些流程中
5 S.A依據客戶的環境及需求, 尋找合適的SD來搭配

而SA也有以下的特色:
1對於系統在怎樣的環境及用什麼開發工具, 並不十分在意, 良好的S.A產生出來的文件, 使用不同的開發工具都應該可以完成, 產生相同的結果, 但那一種最合適, 由SD決定
2SA偏重於流程及執行邏輯的表達
3 SA着重於軟件邏輯, 對開發工具的學習並不是十分重要, 所以會一種語言即可, 主要是以該語言工具來實踐邏輯觀。
4SA一定要有全局觀, 也就是不能拘泥於一個角度或是一個局部去思考問題, 這一點是尋找優秀SA時最困難的。因爲在規劃模塊及功能時, 一定要同時考慮到所有直接相關及間接相關的程序及邏輯問題, 因此要有全局觀。
相較於SD, SA更側重在邏輯及工作順序搭配的表達, SA並不需要去關切使用什麼操作系統或是什麼開發工具, 如前特色所述, 好的SA文件, 可以用任何一種開發工具來實現。當然, SA不受限於IT技術, 但卻會有專業領域的限制。
很少有SA同時專精於數個領域的, 熟悉汽車業運作規範的SA, 在金融業的開發案裏, 就很難討好, 反之亦然。但SD沒有這種限制, 基本上SD可以和任何行業的項目開發團隊配合運作。
會如此的原因是SA是偏重於流程及管理分析及重新再造工作的。而作業流程, 除了少數領域裏共通性高, 在覈心流程上, 是需要長期鑽研的。前面提及的汽車及金融業就是一例。

所以, 一個SA必需具備以下的能力,資歷及專業訓練:

1. 至少熟悉一種程序開發語言
2. 熟悉軟件工程, 對於開發工具的元素及特色熟悉
3. 對管理制度或作業流程設計熟悉
4. 熟悉UML或類似的系統描述工具
5. 邏輯能力良好
6. 良好的溝通能力, 主要作爲了解需求之用
7. 相關的業界熟悉度

在三者之中, SA是最接近PM的, 所以SA在做生涯規劃時, 不妨以PM做爲下一個發展的專業目標。

SD (System Designer) 系統設計師

所建構的是屬於偏向於領域的概念模型;而SD 則是根據領域模型,再配合實體的平臺,考量其效能、穩定、分散與安全性等,所建構而得的軟體規格模型。可以以兩句話來說明分析與設計的關係 "Do the right thing (分析)" and "Do the thing right (設計)"。

一般來說, SD在生涯規劃裏, 並不是SA或是PM。當然, 一定要硬來一次也沒有什麼不可以, 但要走這條路, 就要趁早轉職, 因爲SD畢竟是較爲幕後的工作, 在與客戶的溝通協調上, 並不會有太高的要求, 也較不需要公司管理層面的全局觀。

表 面上看起來, SD沒有SA那麼多的工作要求, 但實際上SD是最需要天賦的工作, 不管是畫面的構成, 操作的手順及調整, 甚至於組件的定義及對象的規範, 全都需要一些天賦。很多軟件, 功能很強, 但怎麼看怎麼不順眼, 或者怎麼用就怎麼憋扭, 功能帶來的效益, 全都被這些毛病給遮蓋掉了, 這就是SD的問題。

另外, SD也扮演了系統最佳化的推手。SA所規劃出來的要求及佈置, 都只是邏輯上的構思, 在不同的工具上, 可能有更好的方法可以表現, 也可能會難以展示, 這都需要藉由SD對使用環境及開發工具的瞭解, 來進行調整和規劃。

舉 例來說, 同樣是一套財務軟件, 在WINDOWS XP, MAC, X WINDOWS下, 就會有很不一樣的展現模式和技巧。如果再搭配上不同的開發工具, 如C++, JAVA, .NET, PHP, ...那差異更多。對SA而言, 這些東西他都不用去考慮, 但SD就不同了, 這些不同的地方, 並不僅僅只是如此而已, 有時還會包括了開發成本及時間問題, SD的重要度, 由此可知。

在一個客製化項目裏, SD的工作內容如下:

1 設計畫面元素規範
2 設計頁面結構及規則
3 設計系統操作畫面, 並編定字段規範及防呆處理
4 設計權限管理與系統操作機制
5 撰寫使用手冊
6 調整DB之各項定義, 使其符合畫面字段規範及操作搭配
7 配合SA撰寫系統開發文件, 供程序員CODING之用
8 撰寫UI(使用者接口)測試計劃書

而做爲一名稱職的SD, 以下的條件, 是必要的:

1. 至少對一個操作系統極爲熟悉, 對於這個操作系統的各個組件特性及API, 有充分的瞭解
2. 熟悉2種以上的開發工具, 而項目所需的工具, 必需是其擅長的之一, 其熟悉度包含了標準安裝裏的各個函數庫, 系統常數, 對象定義, 語法, 主要的輔助工具開發廠商, 及重要的工具使用方法
3. 具一定的美學感
4. 至少能使用一種繪圖工具軟件
5. 曾經擔任職業軟件工程師三年以上

可以這樣說, SA給了系統靈魂和神經系統, SD則是給了系統軀體和外觀, 兩者的結合, 才能產生出正確, 美觀又好用的系統。如果你覺得自己是個不太愛和太多人打交道的IT人, 又對使用者接口有那麼點執着及天賦, 那麼, SD絕對是適合你的好選擇。
 

[SE Systems Engineer, 系統工程師]


就某種角度來看, SE對PM而言, 算是萬金油, 只要做IT項目, 那就一定用得上, 差別只是要選那一個專業的SE而已。系統建置安裝要SE, 使用者環境要SE, 甚至到硬件選擇及布建, 都要用到SE, 有什麼IT項目跟這個沒有關係呢 ?

當然, 雖然SE是到處都吃得開, 但相對的也是項目裏面最沉默及少有聲音的一羣。他們的工作基本上就是建構出一個可以執行系統的環境, 系統要如何展現, SE可以給SA和SD一些建議, 但建議時機通常都是在系統運行出了些非系統可以掌握的問題後。

系統工程師基本條件上, 和SD最爲接近, 但有一點不同, 就是不需要有很好的軟件開發經驗, 也就是不太需要會寫程序。但要對操作系統, 服務器系統, 網絡運用環境有相當程度的瞭解。

SE通常是三者中最爲博學一員, 好的SE雖然不一定要程序寫的呱呱叫, 但卻不能對編程一無所知, 對操作系統及開發工具也要有一定的熟悉度, 甚至部份網管有關的工作也要有所涉獵, 所以算得上是項目裏的萬金油。

在項目裏, SE所要執行的工作如下:
1 規劃及建置系統執行環境
2 安裝及設定使用者端環境
3 SERVER安裝及設定
4 提供環境設置竟見給SA及PM
5 最佳化系統可靠度及效度
6 撰寫可靠度及效能測試計劃書
7 對計算機及相關外圍設備有一定熟悉度

而一名SE則有下列基本要求:

1. 至少熟悉一種操作系統, 尤其是讓系統的設定及微調等相關技術
2. 至少熟悉一種網絡服務器操作系統, 對如何設定及最佳化熟悉
3. 曾任軟件工程師職務一年以上或熟悉一種開發工具
4. 對網絡環境有一定的認識, 尤其是一些通訊設置
5. 熟悉可靠度及效能的評估方法, 並瞭解與系統環境相關之設定

基本上, 如果擁有了像SD一樣的技術背景及個性, 但在美學上實在令人不敢恭維, 那麼SE算是極佳的選擇了。一般而言, SE的下一個生涯規劃, 會比較偏重於技術性兵種, 像是DBA或是網管, 對於IT產品比較有狂熱或愛好的人, SE是極佳的出路。

[在項目中的運用時機]

基 本上SE是萬金油, 只要是IT的案子裏就一定要塞一個SE進去, 因爲沒有IT項目不需要使用工程技術的, 差別只在使用何種工程技術而已。在軟件包的導入項目裏, SE負責處理軟件使用環境, 解決非系統性問題, 安置及調整數據庫和網絡環境, 然後安裝啓動。所有系統運行所需要的條件, 都要由SE來解決和處理, 但這些工作全都不會出現在衆人的面前, 但卻又重要無比, 算得上是幕後的英雄。

會同時運用到SA,SD及SE的項目, 還是以客製化開發爲主的。

在開發型項目裏, SA團隊要負責初期的需求調查及整體架構的規劃, 將所有的系統開發工作內容轉化成井井有條的文件, 並且適度的分割及派送, 並確保未來這些被分割的開發結果能夠在未來可以正確運作。

SD 則在SA的文件中去尋求系統呈現的一致性, 易用性及保證開發工具可以正確無誤的展現SA的要求結果。所以SD要負責操作界面的外觀設計, 訂定一致的展現規範, 設計系統操作畫面及操作手順, 同時配合SA完成系統開發文件。基本上, 開發文件中, 是包含系統使用手冊初稿的。

SD在設計時, 必需與SA充分配合, 以確保設計的系統符合需求及運作要求。

除了上述的工作內容外, 這三者都要撰寫測試計劃, SA着重在於數據的流動符合原先規劃的順序及結果測試, SD則着重在操作畫面中的防呆測試及操作接口的正確性, 而SE則在系統可靠度上進行規劃。

 

RD (Research and Development engineer) 研發設計工程師

一般有可能會遇到二種RD:一種是會不斷髮問的RD,一種是都沒有問題的RD。然而,常問問題的人大多數是公司重要的人物。會問問題代表着學習心強,表達能力良好。

PG (Programmer) 碼農

基本上你必須要具備幾項基本的資訊技術才得以勝任多數的資訊工作職位1.必須至少專精一種編程語言C,C++,Java都可以. 2. 必須熟悉Linux操作系統(管理管理服務器). 3. 瞭解數據庫. 4. 熟悉網路架構. 5. 要能讀懂英文的技術文件。

PM (Project Manager) 項目經理

一般而言,數據比較大的公司纔會有項目管理部(Project Management Department)。負責解決新機種生產、還有新產品研發過程中所有的問題。作爲一個好的PM,必須 1.熟悉該產業的生產製造流程. 2.對市場敏感. 3.有好的溝通協調、管理能力。

DBA (Database Administrator) 數據庫設計與管理人員

數據庫設計與管理人員,最好本身也有寫代碼的能力,這樣在管理數據庫上會如虎添翼。

QA (Quality Assurance) 品質保證工程師

就是測試工程師。通過建立和維持質量管理體系來確保產品質量沒有問題。

Sales 業務

專門做銷售行銷的工作者,負責將公司之產品銷售給客戶。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章