我廠 OpenResty Inc. 是一家創業公司,也是一家全員遠程的公司。我廠支持團隊成員在全世界範圍內,任意選擇時間和地點進行工做。html
像咱們這樣的公司並很少。不過就眼下這個情景,可能不少公司、不少同窗,都要或主動或被動,或長或短地選擇遠程工做。那麼做爲一名在遠程公司中將近兩年半的程序員,我想跟你們分享一些遠程工做的體會。程序員
分享的內容會集中在我認爲你們可能會忽視的點,一些顯而易見的點,好比找到靠譜的人作靠譜的事、打字說不清楚就趕忙視頻音頻、決議要落實到郵件,這種放之天下皆準則的道理,就再也不贅述。segmentfault
首先咱們要給遠程工做劃定一個範圍。本文中的「遠程工做」,有幾個標準:安全
至於接私單、作外包、搞諮詢,我經驗很少,就不在討論範圍以內了。服務器
在這樣的公司裏遠程工做,其實跟在普通公司上下班打卡,並無很大的差異:markdown
差別更多的表如今工做形式上,好比上下班時間、工做地點等。遠程工做者有更大的選擇餘地。爲了可以真正作到這一點,遠程工做多半會採用結果考覈,即只要求你們準時提交工做結果,而不強調讓你們保證工做時間。工具
固然也存在更嚴格的形式,好比說要求你們工做期間必須打開攝像頭,必須隨時響應其餘人的呼叫,等等。那些也不在今天的討論範圍以內。單元測試
劃定範圍以後,討論就容易多了。接下來咱們先看一看遠程工做和傳統的「坐班工做」之間,有什麼區別。測試
很顯然,即便你未曾參與過遠程工做,也應該能看出來,差別主要有兩點:ui
接下來先說溝通。
咱們能夠簡單地把溝通分爲有價值溝通和冗餘溝通。顧名思義,有價值溝通就是平常工做當中用來解決工做需求的溝通。好比需求評審、安排工做、bug 反饋等;而冗餘溝通則是跟工做無關的溝通,好比吃中飯時聊聊足球、明星八卦,議而不決的各類會,等等。通常來講,你們都很重視有價值溝通,但經常忽視冗餘溝通。
其實兩種溝通模式在工做當中都很是必要。
有價值溝通能夠幫助咱們解決工做當中遇到的問題,它是咱們比較關注的一方面。不少同窗嚮往遠程工做,正是以爲坐班工做中,被開會、扯淡等無效溝通侵佔了太多時間,設想若是能夠只保留有價值溝通,那麼工做效率必定會更高,工做也會更開心。
因此,參與遠程工做以後,雖然處於不一樣的時間、不一樣的地點,保證有價值溝通也並不困難。(反過來講,若是連有價值溝通都保證不了,那麼這個團隊就不該該遠程。)
通常來講,能夠這樣提高溝通效率:
總結一下:基本上只要有必定的工做經驗,想把事情作好的團隊,要達成這幾點應該不難。
不少時候,咱們看不上冗餘溝通,以爲那都是在浪費時間。廁所隨便聊個八卦,上下班路上扯扯球賽,有什麼價值麼?
在從事遠程工做以前,我也以爲這些溝通可有可無。可是遠程一年半以後,當我由於缺乏冗餘溝通難以理解同事老闆、長時間倍感煎熬以後,才發現,原來冗餘溝通,對於咱們告終彼此、塑造彼此之間的關係很是重要。
沒有冗餘溝通,對於某位同事、領導,咱們就不知道:
因而,當某位同事敲出簡短的語句,看起來僅僅在描述業務狀態時,你不知道他有沒有帶着情緒;當他說出好中差的評價時,你不知道按照他的語言體系,到底是好仍是壞,有多好,或者有多壞。
團隊考評也會受此影響:有些人標準比較寬鬆,總以爲本身幹得挺好(好比我);有些人要求嚴格,對本身評價比較苛刻。因而,就要求不管是團隊仍是領導者,都要理解他人,才能給出公正的評價。
因此,若是長期缺少冗餘溝通,同事之間就很容易出現裂痕,而且隨着共事日久,裂痕也會日益加深。
解決方案很簡單:增長冗餘溝通。坐班的公司裏你們能夠一塊兒吃飯,一塊兒上下班。那麼對於咱們遠程公司,同城的同事能夠按期找個咖啡廳或者共享空間一塊兒辦工,一週一次或者兩週一次都是不錯的頻率;若是團隊成員天各一方,實在距離太遠,那麼至少一個季度也要聚一次,哪怕人聚不齊,對於能到場的人來講,也是很是重要的交流機會。
若是不方便線下聚會,也能夠在 IM 裏開闢專門的聊天頻道,而且鼓勵你們聊閒天。相信我,你們有的是閒聊扯淡羣,不會真的在公司閒聊羣裏聊得一發不可收拾。
總結一下:有價值溝通很重要,可是通常來講容易獲得保證。忽視冗餘溝通,長期來看,會大大提高團隊的溝通成本。只有維持適當的冗餘溝通,才能保證團隊溝通效率,
下面來講監管。
對於遠程工做來講,監管也是一個難題。由於不在一塊兒,你根本不知道其餘人在幹嗎。若是是計件工做,那麼徹底結果考覈就好;可是程序員是一項腦力工做,須要創造力和想象力,代碼質量也不容易考察。
那麼應該怎麼辦呢?個人建議以下。
首先,所謂「用人不疑,疑人不用」,對於遠程團隊,成員自己的敬業態度很是重要。套用 NBA 經理的話說:我能夠教 ta 寫代碼,但我沒法教 ta 好好工做。因此,必須先選擇合適的人。若是團隊成員依賴強硬的管理,那麼就必須放棄前面預約的「結果考覈、彈性時間」,轉而要求你們必須在正常工做時間工做,準時簽到,全員工做時間都要開啓攝像頭,等等。以坐班模式來執行遠程工做。
接下來,要作到明確需求、明確驗收標準,減小沒必要要的溝通需求。
之前在坐班的公司,你們對交付物的驗收並不嚴格,畢竟都坐在一塊兒,哪裏不明白喊一嗓子,5 分鐘就說清楚了。可是在遠程工做時,由於每一個人的工做時間、工做地點都不同,甲發出一個問題,乙可能兩三個小時以後纔會看到並回復,那就太耽誤時間了。
因此必須嚴格制定交付物的標準,而且嚴格執行。以我熟悉的技術開發爲例,應該知足:
團隊管理者要理解這一點,並堅定執行,還要給你們留出足夠的空間去完成這些事情。一要相信流程,二要相信工具,減小人工管理。
最後,遠程團隊裏的每一個人最好都有很強的主人翁意識,可以主動發現問題、解決問題,主動理解流程、維護流程。我曾經寫過一篇文章:遠程工做須要的特質:願意負責,也是這個意思。受限於溝通不順暢、監管不能,若是不能每一個人都發揮本身的主人翁意識,乾等着別人來推進,那麼團隊的工做效率確定高不起來。
總結一下:制定好制度,選擇好工具,減小主動管理,你們一塊兒遵照規則,主動推動工做,纔是遠程管理的要點。
基本上,可以維持冗餘溝通,讓團隊互相理解互相支持;而後制定好流程和規範;不要犯蠢。大家的遠程工做基本上不會碰見大問題。
工具在遠程工做中扮演的角色很重要,但想要作好並不困難。大部分流行的協同工具作得都不錯,你只須要按照本身團隊的規模、使用習慣、特性需求、付費能力,選擇某個或某幾個工具就好。
因此接下來也不算推薦,而只是列舉咱們在用而且以爲不錯的工具。
咱們的代碼都託管在 GitHub 上,而且順便拿它的 issues 作需求管理。文檔管理通常都直接用 markdown 寫在項目裏,不多用 wiki 等組件。
GitHub 的 code review 功能很是好用,是保障代碼質量的利器。
咱們用 Travis 和自建的 CI 系統跑測試。
Slack 真的很棒,能夠集成各類第三方應用,搜索功能也很好用。
我最喜歡的是收藏功能:咱們是全球化的遠程公司,有些同事(包括老闆)跟咱們不在一個時區(準確的說差 15 個時區),因此常常面臨早上一開電腦各類羣裏 100+ 聊天記錄的狀況。使用收藏功能,能夠在瀏覽聊天記錄的同時方便的把需求標記下來,比起拿個小本抄寫方便許多。還能夠快速的跳到最新的內容,或者跳回去。目前還沒發現別的 IM 有這個功能。
其實咱們用 Gsuite。這個應該也不用多作介紹,不過國內對 email 的依賴程度不高,基本上能用就行。
早先咱們用 Skype,後來以爲效果不太理想,就切換到 Zoom 上。暫時沒有特別的亮點,可是效果和穩定性都不錯。
咱們使用了各類雲服務器,自己並無內外網之別。從安全角度來講,全體提升安全意識,比內外網隔離更有保障(固然後者能夠更好的防蠢)。
遠程工做對人的要求很高,並非全部人都適合遠程工做。另外我並不以爲遠程就比坐班好,就值得追求。可是若是你和你的團隊選擇了遠程工做,我但願上面分享的幾個點有用。祝你們 2020 一切順利。
本文參與了 SegmentFault 思否徵文「遠程辦公」,歡迎正在閱讀的你也加入。