工作經驗分享 | 外商科技公司系統分析師

Cindy
6 min readJul 5, 2020

--

我在做什麼?外商科技公司 Junior 系統分析師

我目前在外商科技公司擔任系統分析師(System Analyst),負責的產品是銀行相關的 APP/網站,主要的工作內容則是規劃系統流程,每天有很多時間是在跟各種人打交道,跟客戶確認需求、跟設計師過畫面、跟工程師溝通開發細節等,算是參與了軟體開發從無到有的整個生命週期。

為什麼會在標題特別強調 Junior 呢?

其實每個職位在不同階段時,工作內容都會有些許差異。由於我才剛踏入這個領域不到一年的時間,所以就以 Junior 的角色來介紹我的工作,而這也是軟體開發中,最基本的流程與內容。

接下來會將我的工作內容分成五個部分來介紹,並針對每個部分佐以案例說明。

一 | 確認專案範圍(Scope)

接到一個專案的第一件事情,就是要清楚知道這個專案的範圍是什麼?通常都會有一份工作說明書可以作為參考,內容寫明功能有哪些、功能內又包含了哪些細節、支援的裝置版本到多新等,清楚定義了最終需交付的項目。透過這份工作說明書,可以幫助我們快速了解接下來工作的雛形,以及需要完成的程度為何,同時也是避免未來客戶提出超出範圍的需求時,有一個清楚、明確的界線。

舉例來說,一個書籍電商網站建置專案的專案 Scope 可能就會如以下說明(實際上可能包含更多細節,這邊只作概略介紹)功能包含:登入/登出、產品總覽、評分評論、購物車、個人資訊…支援的瀏覽器/手機版本:Chrome、Firefox、IE;iOS 12 以上、Android 9.0 以上

二 | 需求訪談

這個階段會針對各個功能進行詳細的討論,並確認具體包含哪些需求與細節。

在跟客戶進行訪談之前,我們會先在內部討論出初步的流程與細節,作為討論的基礎,否則在會議中憑空想像,容易有漏掉、忘記的狀況發生,同時也是在引導客戶依照我們提的建議去發想,而不會過於發散。

就算已先提出一版初步規劃,仍可能會出現很多發散的想法,這時就必須仔細思考以現行的系統架構、專案時程來說是否可行,而不需馬上答應客戶或急著去想要怎麼實作。

以 “購物車” 這個功能舉例來說,最基本的需求是要讓客戶可以選擇想要買的書籍本數、選擇付款方式,並進行下單。再更細一點需求可能是:提供信用卡/LINE PAY/貨到付款三種方式、必須要在三個畫面內就讓客戶完成交易、完成下單後必須以 email 的方式通知客戶。若目前專案資源有限,而 LINE PAY 又需與其他公司進行技術串接的情況下,可能就需要好好思考是否要在現階段完成,還是可以再下一次上線時納入規劃?

三 | 規劃頁面流程、Wireframe

確認需求後,在這個階段,我們會規劃各自的頁面流程以及與設計師合作產出 Wireframe。

呈上個步驟,以 “購物車” 這個功能舉例來說,頁面流程可能為:產品資訊頁(包含輸入購買數量)-> 輸入付款資訊頁 -> 確認頁 -> 結果頁。
除了規劃出流程外,也會將各頁面所需的欄位、內容都列出,再讓設計師規劃出適合的流程與版面。

四 | 系統分析規格書

在需求與畫面流程都確認後,會將討論結果撰寫成一份系統規格書,包含系統流程、畫面、系統設計等,作為工程師開發的依據。在這個階段,會將系統面的設計定義的非常清楚,像是資料庫有哪些欄位、畫面中的資料來源是來自資料庫/API/客戶輸入/固定寫值等。由於是要交付給工程師進行開發的文件,建議可以以工程師的角度進行撰寫,以免未來開發時要花很多時間在解釋與討論,導致開發時程延後。

回到 “購物車” 的案例,在產品資訊頁中會包含這本書的圖片、書名、簡介、下單數量、下單按鈕,而以資料的規劃來說,可能會如以下進行設計:1. 圖片、書名、簡介:取自內容管理系統(Content Management System)2. 下單數量:下拉選單由客戶自行輸入3. 下單按鈕:固定顯示於畫面中

五 | 測試

測試又可以分成單元測試(UT, Unit Test)、系統整合測試(SIT, System Integration Testing)、使用者驗收測試(UAT, User Acceptance Testing)。前兩者通常是由系統分析師完成,而使用者驗收測試則是交由客戶進行再次驗證。

在單元測試階段,主要是針對非常細節的東西進行測試,像是畫面的元素是否都依照 Wireframe 規劃顯示而沒有跑版、資料來源是否正確等,會進行地毯式的測試;而到了系統整合測試階段,則是針對整個功能的 “流程” 進行驗證,確保各個情境都可以完整走完流程,而不會失敗。在使用者驗收測試階段,會更以 “真實使用者” 的角度進行測試,確保所有流程、畫面元素、文案都是清楚易懂的。

同樣以 “購物車” 的案例來舉例,在測試階段就會完整將每個頁面、每個 API、每個情境/流程都測試到跟規格書一致。
除了使用者能順利完成下單流程之外(產品資訊頁 -> 輸入付款資訊頁 -> 確認頁 -> 結果頁),也要確保後台有收到這筆訂單,才是真的都沒問題。

以上就是主要的工作內容與流程,希望能讓大家對這份工作有更多的認識!

同場加映:讓工作效率提升的三個小技巧

  1. 訂定自己的工作時程表
每月工作時程表

我會用 OneNote 做成一份表格,區分成每月/每週的專案進度、自己安排進度、待處理項目、其他。

1. 專案進度:專案的大致時程、安排好的會議時間
2. 自己安排進度:內容與專案進度類似,但時程通常會提早一到兩週
3. 待處理項目:提醒自己當週尚需確認、待完成的項目
4. 其他:工作以外的學習、活動

因為知道自己有時會有盲點或粗心,所以通常自己的進度都會比專案進度提早一到兩週,讓自己有檢視與調整的空間,而不至於因為時程太趕而拖延到專案時程。

2. 參考同事的做事方法

當自己對某件事不太熟悉時,可以透過向他人觀摩、學習來檢視自己做的是否到位,若發現自己做的很爛也沒關係,當下將他人好的地方學起來,並慢慢修正,也會熟能生巧的。

3. 提醒自己細心的重要性

我覺得細心真的非常重要!在設計系統時,需要將所有情境、所有細節都考慮清楚,如果不夠細心,就容易漏東漏西或是定義不夠清楚,導致開發時程被嚴重影響。若能夠在一開始就想清楚,就能將風險大大的降低。

以上就是這次的分享!喜歡我的文章,歡迎幫我拍拍手!一人最多可以長按拍 50 下👏

--

--