程序员远程工作那些事儿 Live 演讲稿

程序员远程工作那些事儿 Live 演讲稿

今天是 2018 年 8 月 2 日,Live 是后天周六 11 点举行,早上接到了公司通知,周六去北京团建,时间是下午两点钟。

花了大概 4 个小时的时间重新根据之前 Live 的提纲草稿写了一份演讲稿。

Live 结束后的一周内会将演讲稿更新到这篇文章。

Live 地址 。

程序员远程工作那些事www.zhihu.com图标


为了把演讲稿语气停顿展示出来,直接贴开 Live 时的讲稿,不做对齐。

0. 热场

各位听友,大家好,很高兴各位能收听我的 live,先做一下自我介绍。
我是一个程序员、后端工程师,从13年10月份来北京,到18年1月份离开,在北京带了大概有4年多的时间。
先后在学堂在线、知乎就职,目前在原子钟从事远程工作,上班地点是山东潍坊。
非常巧的是今天下午刚好公司组织团建,昨天我就坐火车来到了北京,现在正在三里屯公司
里的一间会议室主持这场 live。

远程工作相对于坐班来说呢,在中国可能是不太常见,那选择收听这场 live 的听友们,
可能是对远程工作比较好奇,或者有一些疑问,或者脑海中对远程有一些自己的想象,
从14年我知道远程工作这个词之后呢,我就一直在关注有关的一些消息,

啊非常幸运的是目前也确实从事远程有半年之久了,

在这之间,我有了一些感悟,不时会在我的专栏做一些分享,那基本上隔一段
时间就会有小伙伴给我发私信,咨询我一些远程的问题,所以后来我就想,开个 live 想跟大家聊一聊,去帮助大家印证一些对远程的看法,解答一些疑惑。


1. 为什么要远程工作

    - 追求自由的工作环境

		为什么要远程工作?首先我有一个问题想问大家,在你们心目中,你们认为远程工作的工作状态是什么样的?

		不同的人可能对这个问题会有不同的想象,那我最初听到远程后,脑海中第一个浮现的就是:

		早晚不用上下班,想睡到几点就睡到几点,想什么时候干活就什么时候干活,
		在一个地方呆够了可以满世界跑,一边旅行一边工作,没有领导的眼睛在盯着你等等等等,
		其实这些想象概括下来,就是对追求自由工作环境的一种美好愿景,毕竟在我看来
		工作的本质是为了生活,工作生活变成生活工作。
		
    - 程序员的工作性质
    	程序员本身的工作性质特别适合于远程,只要给他们一份完备的需求文档、设计稿、服务器资源、网络和
    	一台笔记本电脑,剩下的就是他们自己的逻辑设计,体力编程了,在这个工作阶段,对于熟练工来说,越是一个
    	人安静的思考,效率越高。

    	可以把程序员的工作状态与作家类比,不同点则在于程序员本身除了自己的编程活动外,内部还分为很多工
    	种,例如前端、后端、iOS、Android、大数据等等,需要跟产品、设计、以及其他程序员合作通力完成一项项
    	目,因此避免不了一些交流和沟通。

    	那对于交流和沟通,之前组内流传着这样一种说法,A 说哎,这个谁谁谁是谁啊?B 说不知道啊,
    	我只知道他的头像和昵称。

    	在公司里大部分人都是网友。所以绝大部分的交流和沟通又可以通过现代的聊天工具、任务管理工具、高质量的文档做到尽可能少的面对面交流。

    	举个例子,在知乎和学堂在线的工作时候,jira 接到一个其他部门提过来的 bug,(哦 jira 是一种任务
    	管理工具),任务上会有对应的描述,如果描述不是很清楚,则会选择 slack、微信、qq 等聊天工具,
    	找到任务提出者去咨询对应的问题,除非事情特别着急,才会跑到对应的人面前去聊,但这种面聊大部分情况,
    	只是为了催促任务进行。

    	所以有这样工作性质的职业适合远程:没有太多急迫的沟通需求,不需要特别的工作环境。		

    - 过长的通勤时间

    	还有一个重要的原因是,过长的通勤时间。

    	在中国,互联网公司是一种新兴产业,地域分布可能 80% 以上在北上广,杭州深圳成都。当然,即使不在
    	互联网公司的程序员,也会面临通勤时间过长的问题。严寒酷暑,等待公共交通,或者自己驾驶时天天经历
    	早晚高峰,这些都是极大降低幸福感的事情。


2. 远程工作我收获了什么
	那我们先聊一聊远程工作我收获了什么

    - 优秀的同事

    首先是工作上,认可的事业和优秀的同事。
    目前所在的公司是主要在做大数据在线教育有关的业务,因为之前两年我在学堂在线的工作经历,
    对于教育行业非常认可。我是公司的第一个远程工作者,leader 和老板
    认可远程工作的模式,同事们除了出色专业能力之外,对于远程的工作协作也非常理解,关系极好。

    - 舒适的工作环境

    我自己打造了适合自己的,高质量代码的编程环境,一把好椅子和升降桌对腰背非常重要。
    以前坐班工作的时候经常性的会被,运营、产品、设计、会议打断你的编程思路,在家则可以高效的处理工作问题。

    - 其他生活中的经历

    远程最大的好处是有大量的自由时间。除了节省下来的通勤时间外,只要你高效完成工作,不影响其他同事
    项目进度,在任何时候需要休息的时候可以休息,做想做的事情。利用这些时间这半年我找到了女朋友、熟练掌握了
    驾驶技能、养了一只叫做米法的布偶、学会了一门乐器 ukulele、瘦了15斤。

3. 开始远程工作前应该具备什么样的技能

	那么,具备什么样的技能才能开始远程工作呢?
	我咨询过其他做远程的朋友,怎么样的人你认为可以招到你现在的公司开始远程?
	得到的回答是能独立开发项目。
	虽然简短,
    但是确实是最正确的答案,要能独立做项目,意味着工作者需要具有,
    优秀的专业能力、沟通能力、文档能力、和一些心里素质。

    - 专业能力

    专业能力我以后端为例,个人认为这样就能达标:
    可以独自负责一个中小型网站的架构设计,可以迅速实现主流的各种需求、
    例如auth、评论、点赞收藏、收付费、微信等,
    了解数据库、缓存的设计使用规范,低数量级服务器的部署简单维护。
    概括就是扔给你一个人,一个整站的需求,从后端设计,到开发部署,
    你个人认为处理下来基本没问题那就可以了。

    - 沟通能力

    沟通能力和文档能力我放在一起说,远程工作需要沟通,而且沟通成本是要大于坐班的,毕竟不能面对面交流,
    所以像白板、纸画手写,等沟通手段难以实现,沟通是通过视频、电话、各种聊天工具等来实现。
    无论是来自其他人的需求、还是自己的工作成果,减少无效沟通很重要的一种手段是详尽地文档。
    专业的文档格式也会让别人赏心悦目,觉得你更加可靠。然后聊天工具无论是采用 qq、微信、slack 等等,
    个人认为远程工作者不要怕话痨,毕竟通过这些工具可以把你的想法更多的传达出去,减少发生误会的可能性。

    - 良好的心理素质

    远程还需要有良好的心里素质,其中这几点比较重要:
    自律,远程工作由于办公地点的宽松,没有坐班时来自同事、领导直接的气场压力,工作量、效率很大情况下
    由自己把控,所以自律很重要,可以玩但是不能耽误事儿。

    抗压能力,不管是不是远程工作,很多时候开发会面临时间紧任务重的情况,
    远程时跟同事的交流时间,跟坐班相比是远远不足的,因此自己如何缓解心理压力也是很重要的一点。

    责任心,尊重 deadline,对项目质量负责。

4. 如何开始远程工作

	那么,如何开始远程工作呢?

    - 获得工作机会信息

    首先要知道可以去哪里获取远程工作机会的信息。这需要多关注一些社区论坛,例如一早一晚、v2ex、
    ruby china 等。当时知道的第一家远程工作的公司 tower 就是在 ruby china看到的。

    这里要推荐 github 的一个项目,叫做remote-working,这是一个非常棒的项目。
    汇总了大量远程工作相关的文章、招聘网站、远程工作团队的信息。

    当然最靠谱的还是同事介绍。例如我们公司的第二个远程工作者,是个前端同学,是我推荐来的。我在知乎离职的
    时候也有同事帮我介绍过一家远程的公司。
    
    - 自己接项目

    自己接项目也是一种选择,接项目的平台有很多,国内的有开源中国、coding、程序员客栈、
    ruby china、v2ex、猪八戒等,国外有freelancer.com、elance.com、github 等,
    优点缺点都很明显,单枪匹马起步困难、很难接到单子,国内上面我提到的平台我都有简单体验过,1个月内
    并没有接到单子,价格竞争,接单不稳定,如果是个小型团队可能好一些。除了平台可以接朋友
    介绍的一些单子。

    - 说服你现在公司的老板

    很多人在问,怎么能让我在现在的公司开始远程呢?如果你们公司之前从来没有远程的传统,
    只能靠你个人的人格魅力说服你老板,争取让你成为现在公司第一个在家工作的员工,
    这个比较难,需要看你是不是足够牛逼,不可替代,以及你自己是否能接受付出一些代价,
    例如薪酬的调整等等。

    - 创业合伙人

    下一种方式是作为创业合伙人,以远程工作者的身份加入。这并不是遥不可及的事情,例如我自己平时有些
    点子也会写一些东西,在开发微信有关内容、网站备案时发现需要企业资质,因此我去查了下注册公司的
    流程,现在注册一个公司的成本并不高几千元就可以注册一家公司,如果自己或者朋友有有钱景的想法,
    是完全有可能以创业合伙人的身份加入的,这时候你可以选择远程。
    
    - 成为独立开发者
    另外你可以成为一名独立开发者,例如 steam、ns 上大名鼎鼎的星露谷物语的作者当年就是单枪匹马写的这个游戏。

5. 聊聊我远程工作的一些经历
	
	接下来聊一聊我个人刚开始远程时候的一些经历。
    
    - 为什么离职
    为什么离职。厌倦了北京的生活,从知乎离职,很大程度上是每天的通勤导致的。跟学堂在线前 leader 聊天,
    问他是否认识远程工作的团队,刚好他们在创业,我又是一个相对靠谱的员工,就给了我一个远程工作的职位。

    - 在当前公司的工作模式

    当前公司的工作模式是这样的,最初在北京跟团队磨合了4个月,然后回到潍坊。
    项目初期的需求会议,会召集与会者参与,我采用微信电话的方式进行会议讨论。
    讨论结束后后端组整体给出估期文档,API 约定文档,然后就是正常协作开发,联调测试,部署上线等,
    跟坐班时相同的工作。偶尔去北京出差。

    - 打造自己的办公场所
	
	我还利用自己的一部分积蓄,搭建了舒适的办公场所,投资桌椅、工具,这里不得不说椅子是除了电脑、显示器外
	最重要的投资,我之前的腰椎因为体重问题以及久坐已经有伤了,所以买了一把 herman miller 的椅子,完全不后悔,比去医院划算。桌子是升降桌,坐累了站起来写代码。

6. 远程工作需要用到的工具、习惯
    
    远程工作会用到一些工具,习惯。

    - 编程相关软硬件
    编程相关的软硬件我这里只说下重点推荐。

	两个屏幕,可以是两台电脑,或者一台电脑两个显示器,如果是两台电脑强烈推荐一个 app synergy,
	可以用一套键盘鼠标控制不同操作系统的两台电脑,解决了我 mac 和 windows
	争抢鼠标键盘的问题。两个屏幕非常方便,用一边看稿、开浏览器、数据库客户端,另外一边写代码。

    - 文档、沟通相关工具

    文档、沟通相关工具
    
    qq 传文件,微信语音电话,文档和任务管理工具,可选 confluence、jira,或者 teambition,tower 等。
	不管用什么工具,一定要记录文档,文档非常重要,包括记录平时的日报、API文档、需求约定等,远程工作
	的文档技能真的是最重要的能力之一。

7. 远程工作的缺点
	远程工作并不完美,有这么几个非常明显的缺点。

    - 沟通成本
    沟通成本比较大,以前讨论的问题的时候可以在会议室用白板解决,现在大部分时间在使用电话会议。

    - 同事感情维持成本
    同事间的感情维持成本。与团队成员的感情会变淡,毕竟不在一起工作,
    交流范围绝大部分也仅仅是于工作,一起团建的频率很低,目前大概每3个月我会去北京一次。

    - 容易产生惰性
    容易产生惰性,但是作为一个开发不要停止技术的进步。惰性产生的时候
    无论是在 github 上看一些优秀的代码,还是自己
    学下微信小程序开发等待,这都是不错的选择。

    - 职业发展不明确
    职业发展不太明确,大公司很难有远程职位提供,大一点的公司由于员工众多,
    会有超多的会议,和拖沓的流程,这些都不适合远程。那因为远程的性质,工作者很难去做一些跟人有
    频繁沟通的岗位,公司如何安排远程工作者的职业的晋升,也是需要领导摸索。


那么接下来的大概10分钟,看看同学们有没有什么问题。


时间过得很快,不知不觉已经 x 点了,之后我会把演讲稿分享到我的专栏。
如果之后大家有什么问题可以私信我,感谢大家的收听。

编辑于 2018-08-05

文章被以下专栏收录