April 20, 2019

工程師日常:RD 忙什麼?

天天加班?專案做不完?工程師的工作實況報導


文 / 西打藍 Siddharam

新創的真實樣貌


在新創公司工作,你必須對人事混亂保持鎮定。因為它就是日常。

舉個例子。五個月前,當我進到公司時,我們 RD 部門共有兩名前端、一名後端,兩名資料科學家,一名 *QA,一名 Team Lead,共七人。

現在則新增一名前端,兩名後端,一位資料科學家,換了一位 QA,Team Lead 走了,共十人。

不只我們部門變動。

當初面試我的兩名 HR 走了,換一位美女 HR。行政走了,換來一名行政一名財務,但沒幾周行政又換了一位。而一開始和我合作的 PM 離開了,換了兩位 PM。另外,我們有部門要成立另一家公司。

人事變動大的原因很多,公司和員工都需要適應。HR 天天都有面試,一批批新韭菜被帶進小房間聊天,成功錄取的人,會發現周圍同事幾乎都入職不到一年,過幾天公司又會多出一個或少一個人。

一整天在做什麼?


因為彈性上下班,從早上九點到十一點,都會有人陸續進辦公室,而我總是 RD 裡最早到的,我會先打開 slack,看一下各 channel 有什麼新進度?有沒有 tag?如果沒有急事需要處理,我就會悠閒買完早餐再回來做事。

通常買完早餐也沒什麼人到,同事們的抵達高峰約略是 10 點,最晚有看過 11 點到的,大家也沒太在意,甚至還有過了大半天才發現有人沒來的情形,原來是請假了。

目前團隊運用的工具有:slack,用作即時通訊,可以依照專案開 channel,slack 是根據歷史訊息的存儲來收費,如果沒有付費的話,是看不到一個月以前的歷史訊息。slack 的另一大優點是插建支援多,例如和 *GitHub、GitLab 的 *CI 匯報,或是 Slackbot 的定時作業提醒等。

另外還有 Trello,是 PM、RD、設計師共同掌握進度的工具,是極致版的 TodoList,我們將項目分為P、D、C、A,分別代表計畫中、執行中、測試中以及上線共四種。最後是 RD 的程式碼管理工具-GitLab,雖然大多數公司都是用 GitHub,但差異並不大,近半年使用心得,除了 GitLab 的 *UI 色彩較豐富外,*MR 的 *diff 也很清楚,我們資深後端則認為 GitHub 速度比 GitLab 快多了。

吃完早餐後,我會不定時打開 slack,確認負責的專案有無新進度,例如設計師完成 layout 要我接手,或是 PM 有新的需求要做,還是後端完成 *API,要我拉新的 *develop 串接。

進入實作前,我會從 GitLab 開新 *issue,並描述具體任務,在用 *git 開新 *branch 實作,完成後會發 MR 給資深後端或前端,幫忙過一下程式碼,沒問題的話就會 *merge,並連到測試機上讓 QA 看修改完成的內容。我們一整天都在循環上述幾個步驟。

另外,每個專案都有固定的開會時間,部門、公司也有週會以及月會。

開專案會議時,會有 PM 統整目前專案進度,以及報告下一階段要完成的目標;另外,每一人都會說明目前遇見的困難及意見,會議通常一小時內會結束。有些重要專案的節奏很快,會採用兩天一次的 stand up meeting,讓每人說明預見的難題、昨日完成的事項、以及明日要完成的事。

部門週會,Team Lead 會說明各個專案的進度,接著每人會報告本周進度,最後則有位分享者談一下各自領域的技術,每周分享者都不同、主題也不一樣。我們也將分享的內容放在 GitLab 的 *Wiki,讓有興趣的人翻閱。

工程師會過勞?


先總結一句,看工程師類別。

以自己及朋友圈經驗,軟體業較不會加班,硬體及 SI 工程師則普遍會。

剛沒說到福利部分。以我們公司為例,入職的年假是 14 天,全薪病假 10 天,彈性上下班,打卡是因為法條而做。另外是遠端的部分,我們沒有特別限制,如果個人有特別狀況,是可以請遠端作業的,但要確保在 slack 上找得到人。或許這是新創產業的當前趨勢,朋友曾在一間集資顧問公司上班,一年有全薪病假 12 天, 12 天起跳的年假,每月還有一天的遠端假。

* QA,網站測試工程師。
* GitHub、GitLab,管理程式碼的倉庫。
* CI,將更新後的程式碼,整合至測試 / 正式環境中。
* UI,使用者介面(User Interface),通常指的是網頁畫面。
* MR,合併請求(Merge Request),類似把新寫的程式碼,掛上主程式前的請求工作。
* API,後端工程師所寫的程式碼(功能),要給前端工程師使用。
* develop,放置開發中的程式碼的地方,尚未與正式產品結合,與 branch 雷同。
* issue,可以看做是任務或功能修復。
* git,在終端機中執行的 GitHub、GitLab 倉庫管理指令。
* branch,分支,拷貝完整的主程式碼到另一個地方(分支)進行實作。
* merge,將分支中的修改,合併到主程式碼中。
* Wiki,GitLab 提供的資訊保存地。

後記


與過去當記者相比,當工程師雖然要每天坐在辦公室,不能到處跑,但其實限制沒有很多,例如你累了,可以去公司的超大陽台吹風,看美景,或者到外頭的 seven、果汁店走一走,不必特別跟誰報告。

比起時常在網路看到的血汗公司,福利算相當不錯,薪水也有一定水準。


閱讀量




聯絡與合作


訂閱電子報,領「我當前 10+ 以上收入源有哪些」一文。

有文字採訪、網站開發,或是諮詢需求,皆可至個人網站參考作品,並聯繫 IG

或是想分享心情、聊聊天、交朋友,可以來秘密通道找我唷。

Email: frank@siddharam.com