轉換成遠端工作約莫在後疫情時代左右,也剛好是我自五倍學院的 ASTRO Camp 全端工程師訓練營 結訓後拿到第一份 ROR 工作滿一年的時間(有關我成為工程師的歷程,可以參考這篇從佛系到高效學習,「偽」本科生成為工程師之路),至今也大約兩年半左右的時間,當時我想著「遠端工作」比我們想像中來得快速,想親身體驗這種工作模式是否適合我。非常幸運的遇到了目前的老闆,印象很深刻在面試時他直接跟我說,相信「遠端工作」會成為主流,未來勢必工作模式會有所改變,也因此才有了我從「科技業」轉換成「全遠端」工作的旅程。
聊聊「全遠端」工作之前,想先介紹我過去在大公司的工作模式:
雖然上一份工作是大公司,不過因為在 ROR 專案中只有我一個 RD,過去都是外包給乙方廠商來做,也因此前主管需要我大部分的時間都在乙方公司與外包工程師一起上班,並在每週有一天的時間回公司與他報告工作進度。
基本上一天的過程大致都跟乙方進度來走,有 1 個小時的彈性上班時間 (09:00 ~ 10:00),並且每天早上需要站會粗略說明今日工作事項,在上班過程中會跟其他工程師討論程式,及每兩天就需要與甲、乙方 PM 一起討論某張 issue 會議的狀況。
- 通勤時間
- 09:00 ~ 10:00 coding
- 10:00 ~ 10:30 站會
- 10:30 ~ 12:00 coding
- 12:00 ~ 13:30 吃飯 + 午休
- 13:30 ~ 16:30 coding (偶爾與同事討論)
- 16:30 ~ 18:00 開會
- 通勤時間
「全遠端」的工作模式:
目前我在一間主要接日本專案的外包公司,公司成員散落在台灣北中南,老闆在日本(大概只有視訊時才會見到,很少真正可以看到本體XD)
只有規定每週一早上開大約半~一小時的會,報告上週在完成 issue 中需要特別說明的事項,以及配合 release code 的時間,其他都能夠自由規劃,基本上只要與同事上班時間重疊的不要太短,透過非同步的方式溝通,順利完成交辦事項即可。
- 可能剛起床就可以上班了
- 自由規劃
遠端工作有什麼優缺點?
優點
- 自由度高:
- 可以選擇自己的工作模式與環境,如咖啡廳或家裡。
- 擁有彈性的休息時間,可以更靈活的安排休息與工作時間。
- 減少通勤上班成本:不必花時間和金錢在通勤上,能夠更有效的利用這些資源。
- 減少辦公室社交與壓力:遠端工作減少了辦公室的社交壓力,能夠更專注於工作而不受干擾。
缺點
- 工作與生活界定模糊:由於你的工作與生活可能在同個空間中,難以明確區分何時該工作、何時該休息。
- 溝通成本提高與缺乏即時性:與辦公室相比,遠端工作可能需要更多的時間和努力來進行有效的溝通。
- 重新建立溝通習慣:溝通習慣對於全遠端的工作來說非常重要,需要更強的主動性和明確的計劃。
- 自我管理:必須加強自我管理,包括時間管理和目標設定,以確保高效率的工作。
- 心裡健康:可能一整天不會跟任何人說話,對某些人來說可能對心理健康多少造成影響。
所以,遠端工作至少需要具備哪些能力?
自律
在遠端工作中,自律是不可或缺的特質。有些人可能因為過度自由而使工作效率下降,畢竟在家工作且缺乏監督,很容易受到各種干擾。我自己這兩年多來基本上都是在家辦公,不可避免地會受到家庭事務的打擾。因此,我認為培養如何迅速進入工作模式,或者在下一刻能夠有效脫離工作狀態,是相當重要的課題。
雖然許多人推崇使用「番茄鐘」來增進專注力,我自己也嘗試過,但效果並不理想。可能是因為我在某個時刻無法產生靈感,或者是在極度想要開發和寫程式的情況下,被番茄鐘的提醒聲音打斷,反而無法全心投入工作。因此,我認為重要的是清楚自己在何時進行什麼工作,應該要花多久時間做完,自然而然你就不需要有其他東西來間接督促你的工作進度。
溝通
如果說對自己的要求最重要的是自律,那對於團隊來說,應該就是溝通了。這一年中,我帶領了幾位新進的同事,發現溝通是目前最大的挑戰。回想我剛開始遠端工作的時候,確實在這方面也有些不足。從直接向同事提問,轉變成透過文字敘述問題、從原本能夠即時獲得回覆,轉變成得面對時間差、或是經過多次來回討論後才得到答案,也會面臨因為經驗導致問問題的能力不足,這些都可能會是遠端溝通的挑戰。
因此,在我的經驗中,我嘗試將問題簡化,來總結該如何問問題,或許有些幫助:
- 敘述實作哪張票,及這張票希望想解決什麼問題(前提是你應該要很清楚目前這張票實作的方向及內容)
- 實作過程中,舉例你所使用的方法和已經完成的項目,指出目前遇到的阻礙,導致無法滿足實作
- 詳細說明你嘗試過的解決方案,附上相關的參考資料和目前的實作方法,或是有錯誤,也附上相應的錯誤訊息(如果你在預期步驟中卡住,但不確定原因或是不是方向出現了問題,也可以指出並提問)
- 推上 code 方便同事一起與問題搭配看
舉例來說:
Hi @某某同事
我目前正在處理某張票,這張票主要想要解決的是將專案中升級 gem (1)
我有在終端機透過bundle outdated
指令看到目前專案中,我們哪些 gem 可以進行升級,並且目前都已經大致升級完畢。不過在升級
factory_bot
gem 過程中,有遇到跳大版本的問題,會導致我們專案的測試有錯誤(附上測試錯誤截圖),主要原因是這個版本中,reject sequence definitions for ActiveRecord primary keys 這條中有改 PK 相關的寫法 (2)目前我嘗試將 spec 建立資料以及 factories PK id 修改,不過還是會有錯誤(附上錯誤截圖),於是找了這個方法來處理(REF),但發現還是有問題,想請問是我這有什麼地方改錯了嗎?還是方向有問題?(3)
有將這張票推上了~branch 是 feat_某張票,再麻煩有空時看一下了,感謝 (4)
當與主管進行討論時,基本原則與上述相似。然而,我認為在這種情況下,強調重點應該放在提供解決方案、實作方向、問題點、解決方法、預計完成時間以及問題背後的原因上。與同事的溝通主要著重在程式碼的技術層面,但與主管的溝通需要更全面,而非著重在程式碼「產物」中,以確保全面的理解。
至於如何進行這樣的溝通,我認為沒有標準答案,每位主管都有獨特的風格和溝通模式。一種有效的方法是透過實際的驗證結果來支持你的陳述,以建立信任感。這包括敘述你的解決方案的實際成果,並確保所提供的資訊是具體而清晰,不僅可以提高你的可信度,也能促進更加良好且有效的溝通。
自我解決問題
由於遠端工作的特性,我們主要透過非同步文字方式進行同事間的溝通。這樣的方式使得問題提出後不一定會立即得到回覆。相比之下,過去在辦公室同事在身邊時,可以隨時就問題進行即時討論。而現在更多的情境是遇到問題時要先自行消化、思考及試圖解決後才被提出。在這樣的環境下,自我解決問題的能力變得格外重要。我們需要獨立思考,嘗試解決問題,並將結果以文字形式清晰表達,以便同事在閱讀後能夠理解問題。
自我提升
與辦公室工作相比,遠端工作由於與同事的接觸較少,每天可能僅需完成被指派的工作項目及 review 同事的程式碼。一些公司可能會舉辦 happy hour 或腦力激盪等活動以促進同事之間的交流。然而,遠端工作相對較缺乏這樣的機會。
因此,我認為提升自身能力的需求變得至關重要。我們應該持續了解目前程式語言的最新發展,多看一些你不熟悉的寫法,並透過解決工作中遇到的問題來不斷提升自己。同時,觀察其他人的撰寫方式,並將其實際應用並納入自己的技能中,有助於提升個人價值。在遠端環境中,主動學習和自我提升成為了維持高產值的重要手段。
在這方面,除了原本就想要精進的目標外,還會特別加強補足自己不熟悉的領域,舉例來說:
- 訂閱 GoRails
- 訂閱前端類型的訂閱報(剛好目前工作中要寫滿多 React 派上用場了)
- 訂閱 ByteByteGo
- 在 twitter 追蹤某些在寫 rails / 你感興趣類型 的外國工程師
- 參加 conference / 社群
- 撰寫部落格
小結
總結來說,始於對遠端趨勢的好奇,又非常幸運的在遇到現在的老闆後找到轉變的契機。在這段時間裡,從辦公室轉換成全遠端工作,使我重新調整了工作節奏與溝通模式。
在遠端工作的過程中,我學到了自律和溝通的重要性,這對於保持高效率、高產值的工作至關重要。同時,自我解決問題的能力更為關鍵,因問題通常需要透過非同步文字方式提出,並在等待回覆的過程中嘗試解決。
對我而言,遠端工作不僅是一種新的工作方式,更是一場自我挑戰和不斷學習的旅程。
Extra
最後的最後,看到這篇文章的你,如果希望讓未來的工作型態可以有更多可能,不妨去聽看看 ASTRO Camp 的免費說明會。也許在說明會上,你會找到一些全新的方向,為你的工作型態開啟更多可能性。
全文引用自的 Chester Tang's Blog 部落格文章