Dcard 怎麼 WFH?很少人知道的 Backend Team 日常

Dcard Tech
Dcard Tech Blog
Published in
9 min readOct 6, 2021

在 Dcard 的工程師分成很多個團隊,有 iOS、Android、Frontend、Backend、Design、PM,今天就來和大家說說 Backend Team 的日常。

以往在 Dcard 每個星期三都可以有一天 Remote Work,但隨著疫情升溫,Dcard 到目前為止還長期維持 Work From Home。因為之前有每週三 WFH 的經歷,所以大家大致了解遠端會遇到的情況,所以工作上並沒有受到太大的影響,跟平常一樣沒什麼變,會議都主要改線上。

接下來和大家介紹 Dcard 現在的工作模式。

Role in Dcard

看過這篇文章的讀者們,你會知道在 Dcard 裡的每位工程師,除了會根據職能被分配到不同的 Function Team,也會針對不同的開發產品,而加入不一樣的 Delivery Team。

Delivery Team 的運作

目前在 Dcard 已經大約有 7 ~ 8 個 Delivery Team,日後還會再擴增團隊,而每個 Team 大致會有:PM、iOS、Android、Web Frontend、Web Backend 以及 UI 這些角色,以 AD Team 舉例來說就是由以下這些夥伴組成的:

  • PM x 3
  • iOS x 1
  • Android x 1
  • Web Frontend x 2
  • Web Backend x 3

在文章前面有說到,每個 Delivery Team 是根據不同的產品功能開發來區分,每當要開發一個新的專案時,PM 會先把開發專案的步驟列出並排列優先順序,接著工程師們就會和 PM 討論專案,提出意見,讓團隊對於專案都有一致的共識,最後把專案的細節跟流程一起擬出來。

無論專案進行到哪個階段,每天早上都一定會有半個小時的 Daily Sync,看看每個人手邊的工作、是否遇到什麼困難、有沒有可以調整的地方 …。當然,在達成共識後進入到開發階段時,Daily Sync 一樣是每天不可或缺的會議,大多在這時候確認細節及互相討論實作功能後的意見。除此之外,其餘的時間都會專注於實作專案的開發,除了遇到問題互相討論外,都不太會被打擾。最後當專案進入尾聲時,就會測試產品功能是否跟原本預期的一樣,能不能如期運作,順利的話,專案就大功告成了。

而 Delivery team 是可以彈性調動的,工程師若是在同一個 Delivery Team 待久了,也可以跟團隊討論換去其他有興趣的 Delivery Team,挑戰新的產品功能專案。

Backend Team 的運作

現在 Backend 團隊的人數已經來到 18 人了,未來也還會繼續成長。這人數看似龐大,但每個人都能各司其職,各自有不同的負責領域跟對應的服務,所以大部分的時間都是跟自己的 Delivery Team 合作為主。但無論如何,在 Dcard 的 Function Team 都一樣有一些例行會議,讓團隊中的成員彼此暸解每個產品功能。

Dcard Backend 的例行會議

Backend Team 每個星期都會 Weekly Sync 一次,因為 Dcard 目前是採用 Microservice 的架構,不可避免的還是有要修改共同 service 的時候,所以每週的例會就會討論手邊的專案,也當作是 Design review,看看有沒有什麼不相容的地方,以免修改之後影響到其他服務。每週除了會 Sync 一次之外,為了不停下學習的腳步,團隊裡同事們也會不時分享技術,甚至成立讀書會,固定每兩週會有一次的 Study Session,把這段期間學到的東西拿出來分享,讓大家都能沐浴在知識的大海之中~

在 Dcard 特別的地方是,團隊的 OKR Release 是以兩個月為一個季,我們稱為一個 S。 Function Team 在每個 S 都會保留一週的 OKR Week 來規劃,像是研究新工具、修改內部 Library、重構 Legacy code 等等都有可能。如此一來不僅成員們能夠更好的開發,也讓未來 Function team 的開發能夠更加順暢,這時 RD 們就能暫時放下 Delivery team 的工作,讓工作換個口味,重新出發!

在 Backend 做了什麼嘗試

在 Dcard 的後端主要是以 Go 為開發語言,並部署在 GCP 的 Kubernetes 上面,而不同的團隊可能會接觸到不同的技術,像是搜尋相關團隊可能會用到 Elastic Search,分析用到 BigQuery,論壇則是跟據不同的情境有使用到 PostgreSQL、MongoDB、Redis 或是串接一些第三方服務如綠界、Twilio 等等。各個成員常常會很踴躍的分享各自的經驗,在週會 Design review 時也常常會討論到廢寢忘食,即便大家隸屬於不同的團隊,但事實上卻有緊密的聯繫再一起。

Dcard 在台灣社群的流量也算是數一數二,不論是網友精彩的文章,或是發生的熱門時事,都會造成巨大的流量湧入,所以偶爾會遇到 server down 的情況。每次發生 server down 時,都會儘速修復,事後也會再找出其他潛在風險,盡力降低大家受到的影響。此外,Dcard 也正在發展各種不同的領域,除了廣告團隊之外,也有電商團隊、全球化團隊、作者團隊、讀者團隊、推薦團隊等。

Remote Work

原本長期遠距前,每週三都可以 Remote,讓大家彈性掌握工作空間,工作更有效率。所以在我們疫情之下變成長期 WFH 時,並沒有受到太大的影響,很快地將日常的討論跟 meeting 改為線上模式。這也得利於 Dcard 很早就全部都用線上系統進行協作,也完全使用雲端化系統。也因為都是用習慣的系統,WFH 對於操作上幾乎沒有影響。HR 和 Backend 團隊也舉辦了不少在工作之餘的線上交流活動(像是:讀書會、輕鬆活動像是海龜湯、狼人殺等等),讓團隊之間還是能維持緊密的連繫。

OKR Release / Review

我們如何知道每次開發的專案目標?

公司從每年的戰略,切分成每一季的子目標去實現,而 Dcard 在這個基礎上將傳統的一季三個月縮短為一季兩個月,以便在快速發展的同時,更快速的做出應對,此外,公司各部門的發展目標,成效等也公開透明,在每季開始前向所有同仁簡介,每季結束後也會分享其成果,不只是加深了對其他部門的了解,更能強化了各部門合作。

在 Dcard 不只能學到所屬團隊領域的知識,透過各種會議、合作方式,不論隸屬於哪個 Team ,都會知道在各團隊內部的專案進度或技術等。

產品會議

每一週 PM 們除了自己的會議之外,在團隊的產品會議也會分享產品開發進度與未來的方向,透明公開的讓大家知道公司是往那邊前進。常常會有人發出疑問與建議、進行熱烈的討論,共同去找出更好的產品開發 roadmap。

值週生

每個 Function team 每週都會派一個人當作窗口,不論是 PM、Mobile、UX、或是 Backend,只要有任何疑難雜症,都會有人來與你接洽,一來避免了不知道問誰的窘境,二來也讓團隊成員們更熟悉彼此的業務,值週時不用太擔心,遇到問題大家都會很熱心地跳出來指點迷津,也有助於了解 Dcard 整體的架構。

Seminar

Study Session 跟 Seminar 蠻相像的,都是技術分享,但在每個月的 Seminar 中不只是自己隸屬團隊領域的知識,也包含其他團隊 (例如 iOS、Frontend、ML …) 的新技術,像是 Dcard Auth 機制,Web Text editor、Player 的實作,推薦系統的秘密武器,全球化的眉角等等,可以讓你更清楚其他 Team 到底在做什麼,也能了解到其他 Team 開發時最在意的部分。

Ask CEO Anything

在五月疫情開始之後,Dcard 至今為止都維持 WFH ,在遠距過程中,公司會舉辦 Ask CEO Anything 的活動,讓大家自行決定是否要匿名的向 CEO Kytu 提問,像是公司最近的產品策略、對公司的想像等任何話題,都會現身解答。

Dcard 需要你!

其實不管是和 Function team 還是 Delivery team 的合作中,大家的意見都很重要,團隊也很強調溝通。在面談的過程中,我們都很希望可以更暸解大家, 透過對談讓雙方更認識彼此,了解對工作的期待是否吻合。

加入 Backend Team 會有三次面談,方便彼此在經過一次次的交流後,能讓雙方對職位期待對等,並且探索是否有合作的機會。分為以下三個環節:

  • Phone Interview:請 Backend Team 的夥伴聊聊,我們會先初步了解你的經歷,會問得比較細節一些,並和 Backend 成員有初步交流。除此之外,我們會有個 Go 或是 Node.js 的程式小考。有什麼對這職位或我們的 tech stack 好奇的地方,也可以這時候詢問我們。
  • 1st Interview:首先會先和 Talent Operations team 的 HR 聊約半小時的時間,更認識彼此,並且會說明為何徵求這個職缺的夥伴加入。你也會和 Backend team 的數位成員一起花一小時的時間更深入聊聊技術,主題可能會從 programming language、 網路、資料庫、維運、系統設計都是可能會聊的範圍。
  • 2nd Interview:和 CEO — Kytu & Talent Operations Manager — Helen 聊聊,個別半小時。

不論你是否是我們要的人才,都可以和 Dcard 聊聊,或許互相認識之後會有合作的機會!
希望可以邀請技術都有熱忱的朋友,來到這裡和我們一起研究技術並開發更好的服務。

Junior Backend Developer — https://dcard.link/ccZ5V3
Backend Developer — https://dcard.link/ZBlRop
Backend Developer Architect — https://dcard.link/1L7gZx
Architect — https://dcard.link/k7srKl

--

--