一、前言
因為我待的是較小型的接案公司,基本上全端工程師的工作幾乎全包,從投標、接案、訪談客戶需求、規劃網站流程至完成,以及各階段報告書與教育訓練等,皆由團隊的工程師們一條龍處理完畢。當然,團隊若規模較大、分工自然會較細且專業許多。在現職的公司,我是抱著了解整體接案過程、與全方位學習的心態,工作上大多較不排斥被分派什麼任務,也藉此可以更了解自己喜歡或未來想深入投入的職位內容。
二、(接案公司裡)全端工程師的工作項目
本篇文章會分享主要有接觸到的工作內容,也不是指全部的接案公司都是如此~
項次 | 主要項目 | 涵蓋內容 |
---|---|---|
1 | 投標文件 | 主要寫一些公司過往成果、經驗,有什麼能力可以為這次的投標案呈現。 |
2 | 訪談需求 | 開會方式進行,客戶提供需求,由工程師與PM當場回覆與紀錄。 |
3 | 風格與元素討論 | 在配色、元素等與網站風格上,提出專業意見、並記錄客戶需求與偏好 |
4 | 網站流程設計 | 基本上視客戶需求而定,公司會依經驗與需求,提出專業建議。 |
5 | 系統規劃 | 大致需求確認後,會依序分配網站架構、開發團隊人員與時程等細項。 |
6 | 實做程式碼與各種功能 | 開發團隊依主管指派與個人職責、時程控管等面向完成實做。 |
7 | 各階段進度成果報告 | PM控管實際專案開發進度,以客戶需求方式做階段性回報。 |
8 | 結案統整、相關移交 | 通常是打包的程式碼檔、系統帳號設定、操作手冊製做等。 |
9 | 確認實際上線事宜 | 最後確認客戶是否有其它新增之合理需求、上線環境與時間等。 |
10 | 系統測試與教育訓練 | 系統測試主要是環境問題,教育訓練則是搭配操作手冊實際教學如何使用。 |
11 | 後續維護與優化 | 不外乎就是修正bug與其它優化之下階段需求調整。 |
三、(大部分)全端工程師最常做的幾種工作項目
這邊就先挑幾個我個人現職中比較常做、稍微較有工程師技術層面或有勾到程式與網站流程概念的工作項目來做簡短介紹,因為我知道其實不是所有公司都是這樣運作與分配。
1. 訪談需求
在這階段,最怕的就是客戶講不清楚自己的需求或者你根本聽不懂人家的意思XD。我覺得這個也是需要時間去累積的,基本上,客戶一定會提出幾個已知需求或他們想像的功能,較有經驗的客戶會直接告訴你更立體與實際面向的內容,那公司這邊派出去的與會人員,就是將他們需求確認後記錄下來,當下有問題或覺得流程有些許想法也可直接提出。
那也有一個可能是,你不是被發派為與會的其中一人,但你要參加該專案的開發,這是很可能發生的事,因為公司不可能把整個團隊都帶出去開會。所以在這階段,也能區分出誰較有溝通技巧、統整需求與臨場反應的能力。
2. 網站流程設計
了解客戶需求後,要設計的是整個網站的流程,而有個職位叫做UX(User Experience)
全名為使用者經驗,強調的是根據使用者的習慣,安排整個網站頁面的內容規劃,像是哪些區塊的內容要先在網站上出現,哪些按鈕一定要在哪,重大責任就是要確保產品從這一步流動到下一步符合邏輯(引用來源)。小型接案公司就…可能沒這個職位XD,只能大家一起集思廣益。
UX(User Experience)的角色與經驗也至關重要,我覺得流程設計是網站的精隨,如果不清楚其中一個環節或漏掉一個細節,其實後面工程師要實做時,很常會發生打掉重練的問題,切版或者資料庫關聯都是很花時間的事。
3. 系統規劃
這邊指的較是資料表的關聯與程式碼之架構等。一般來說,如果公司接的案子很固定、網站類型超單一、定期接一些制式官網平台,那可能這兩者都不會在各個專案間有太大差異,如果不喜歡一直做一樣事情、工作內容毫無挑戰性與變化或coding技術提升較慢的話,我個人覺得可能在工作上會做的比較沉悶一點。
這邊針對前述內容就暫不詳談,因為已經比較偏前後端技術能力。後面章節如果篇幅足夠,再行補充。但系統規劃這部分,也會依客戶需求或當初契約規定,有可能需要製做一些文件交遞、報告,像是系統建置分析書、系統設計規格書等,主要是敘述系統預計以何種語言、框架、server如何配置等內容。
4. 實做程式碼及各種功能
就是把所有客戶要的、PM說的全做出來。入職這麼久,我覺得最中肯的建議就是,當你遇到一個小困難時,請吳要給自己太多時間卡在那,這就像小時候做答考試,老師都會說,每個人答卷時間一樣,你要懂得分配和取捨,才能把事情做完。做網頁我覺得也是這樣,今天你被分派到某個部分做不出來,請要養成設定停損點的習慣與找尋團隊中解決問題的處理方式,工作上都是不等人的阿~
5. 結案統整
實做完成至結案狀態或到某個約定進度時,通常需要做一些系統結案類型或檢測的報告文件,我現職公司是都將畫面做截圖加上當初服務建議書與工作計畫書之功能敘述去呈現。
6. 確認實際上線事宜
實際上線通常會考量客戶需求與設備問題,依照客戶習慣與期待,將系統建置在預期之位置,確認伺服器的連通、主機架設是否完整正確以利網站正式上線之相關準備等。
7. 教育訓練
基本上就是教客戶如何使用最後完成版的功能介面,前後台的實際運作流程會整體跑一次,若有帳號權限需特別設置也可當下紀錄處理。較為複雜的專案類型,通常教育訓練次數也會稍微較多一點,一般網站都是1至2次、每次1至2小時之教育訓練;若為複雜或大型點的,則可能調整為3次、每次3小時左右的時間。
8. 後續維護與優化
我個人覺得這部分就是合理範圍的網站售後服務,因為之前尚未轉職工程師前的工作也是接案性質,所以這樣認為。網站開發完成後,難免會遇到一些程式碼的微調需求、功能的優化調整,當然也要看雙方契約如何擬定去著手進行。
比較需要注意的是,接案公司的工程師們會有離職然後有新人要銜接的問題,所以開發架構與程式碼優化、資料庫關聯設計等,都會是重要的交接環節。公司在每個專案或每一時期的交接若完整,對於客戶來說會是較有保障的。(某種程度上來說,也算是一種使用者體驗吧)
四、結論與自我鼓勵
我一開始覺得好血汗,什麼都要工程師做,後來因為參加一些社群活動,認識一些做其它職位的朋友,就有稍微轉念,想著其實如果能接觸到各階段工作,其實也是滿得來不易的經驗,所以就看大家怎麼想。我個人常被兩種想法拉扯,一是工作上如果常做到一些不上手的事情,是可以學習理解並突破自己的;另一個則可能會覺得超出職位範圍與能力,有些被分派的工作項目會比較沒有意願學習,或者覺得一下子沒辦法吸收多面項內容。