如何远程工作并且仍然是最好的
已发表: 2022-03-11Ryan Wilcox 作为一名远程员工已经发展了近 10 年,现在他既是全球公司的顾问又是开发人员,既是 Toptal 工程师,也是他自己公司的创始人。 他目前在网络和 iOS 产品公司 Fanzter 全职工作。
远程工作者的工具带
如果您习惯于日复一日地进入办公室,开始一个新的遥控器或在家工作,无论是合同项目还是全职工作,都可能有点吓人。
但这种就业方式越来越受欢迎,一些非常著名的公司为其背书。
多年来,我已经成功地在各种规模和持续时间的项目中使用这些工具进行远程工作。 通过这篇文章,我希望列举一些我为在各种情况下工作而获得的最佳实践。 此处的远程和在家工作指南的范围从针对软件和硬件的具体建议,到帮助团队按时完成任务的技巧。
远程或家庭办公室设置
我怎么强调正确的办公室设置的重要性都不为过。 它既能让你更有效率,也能让你看起来更专业。 例如,耳机对于避免在线通话期间的回声至关重要; 像这样的小事情在远程工作时会有很长的路要走。
以下是一些我认为在我自己的家庭办公室中必不可少的远程工作工具:
- 耳机。 我特别喜欢有线耳机,因为它们在关键时刻不会耗尽电池。 你会经常穿它,所以一定要穿舒适的衣服。 我有两个 iMicro 耳机:一个放在我的办公桌上,一个放在我的笔记本电脑包里。 作为一款笔记本电脑包耳机,它有两大优点:因为它是 USB 供电的,所以我不必担心保持电池充电,而且如果它在我的包里坏了更换也很便宜。 实际上,我发现这种特殊的耳机对于长时间的电话会议有点不舒服。 如果您经常这样做,那么我推荐 Corsair Vengeance 2000:一款舒适的无线耳机,具有电池功能,让您可以工作一整天。 (顺便说一句:这些都不是推荐链接。)
- 安静思考的地方,有一扇可以关上的门——特别是如果你和其他人住在一起,特别是如果你有家人的话。
- 稳定的互联网连接,或良好的备份连接。 例如,如果 DSL 坏了,我有 DSL 并且在我的手机上设置了网络共享。 如果您经常遇到 Skype 问题或掉线,那么在其他可能试图管理多个远程员工的人眼中,您将变得不那么可靠和不专业。
- Skype 。 这适用于临时电话会议、与客户的即时消息传递,甚至是创建低仪式聊天室。
- SkypeOut ,可让您从手机接听和拨打电话给 Skype 联系人。 这太棒了,尤其是当您离开计算机并且(您计算错误的时间,客户有紧急情况等)时。
- 电热水壶。 有时我想要热咖啡,但又不想打扰我的流程去拿一些。
- 加仑壶水。 用于水壶,或用于饮用。 对于长时间的编码会话或长时间的电话会议。
其中一些听起来很明显,但你会对这里没有达到所有分数的遥控器数量感到惊讶。 作为开发人员,我们需要一个安静的空间来思考,不受干扰。 作为远程工作者,我们需要一个安静的地方来不间断地主持电话会议、会议、结对编程会议等。 仅仅在沙发上工作可能不是一个好的长期远程工作解决方案。
软件工具
有很多优秀的软件工具可以补充您的典型开发环境并帮助您克服与远程工作相关的挑战。 以下是一些我非常喜欢的:
- AwayFind ,适用于紧急电子邮件,尤其是来自会议与会者的最后一分钟消息,因为它通过 SMS 将他们的消息转发给您。
- 时区转换器,用于与世界各地的客户和同事一起工作。 我喜欢时间和日期的世界时间时钟、每个时区、世界时间好友或现在时间,以便为视障人士提供更易于访问的版本。
- 团队中每个人的聊天/IRC 房间。 这可以是正式的(例如,篝火室)或只是 Skype 聊天室(保持简单,愚蠢)风格。
- 错误跟踪器——这应该有自己的部分,所以见下文。
计划会议时,请务必确认两个时区。 当你收到邀请时,你应该总是倒着计算,并确保你得到相同的数字。 如果会议涉及多个时区,我也喜欢包括 UTC 时间。 由于每个人都应该知道他们与 UTC 的偏移量,因此这是另一个检查,以确保每个人都在同一页面上。
几年前,我加入了一个规模相当大的 Rails 团队。 几个团队成员至少有部分时间在远程工作,团队文化是晚上完成很多工作。 我当时建议通过官方团队负责人建立一个聊天室,指向 Campfire 或其他一些付费聊天服务。 几个星期过去了,没有采取任何行动,我决定建立一个只有开发人员的 Skype 聊天室,以测试我的理论,即聊天室将成为团队的资产。 这个实验被证明是非常成功的——非常成功,以至于我们只是继续使用 Skype 聊天而不是其他解决方案。 大约一年后我离开这个项目时,这个 Skype 聊天室仍在使用。 有时,简单可能是最好的选择。
后来,在同一个项目的关键期限内,我们建立了一个 Skype 聊天室,其中包括开发人员、业务分析员、项目经理和客户,因此一般小组可以快速解决问题。 虽然不像仅限开发人员的聊天室那样活跃,但它仍然运作良好。 Skype 聊天可以通过一些群聊命令、设置聊天角色和设置访问权限来调节和控制,这使您可以真正根据自己的用例自定义聊天室。 即使是这样简单的设置也可以提高远程生产力。
远程工作最佳实践:错误跟踪
我想从我正在使用的错误跟踪器中了解三件事:
- 我现在在做什么?
- 对于该软件的下一个版本,我准备了什么?
- 整个团队针对该软件版本的可交付成果是什么?
每一个都有一个目的。
首先,“我现在在做什么?”:当你在传统的办公室工作时,你会有背景聊天——这让你对其他人在做什么有一个大致的了解。 错误跟踪器系统中的明确标记表明“是的,我现在正在积极处理这个问题”,可以为远程工作引入类似的模式和感觉。
其次,“下一个版本我准备了什么?” 意思是“我负责什么错误”或“我正在处理什么错误”。 在每个团队中肯定会有一些来回的问题,但是如果你想抓住一个错误,或者需要一些帮助来最终确定你的发布的错误,知道问谁也是很好的。
您的团队也可能根本不这样工作:例如,您的工作流程可能是每个开发人员一开始只分配一个错误,并在完成一个错误后挑选出未分配的一堆。 这也可以是富有成效的。
“软件的下一个版本”不一定是什么大问题——我一直在团队中,“下一个版本”的意思是,“从现在起 3 天后,我们将为客户发布一个新的 alpha 版本”。 但是每个人都知道这个新版本中会发生什么仍然是件好事。 尤其是如果您在当前票证完成时选择未分配的票证。
我在帖子底部包含了一些针对特定错误跟踪器的建议。
远程工作最佳实践:团队沟通
对于某些人来说,团队沟通是远程或在家工作中最令人生畏的部分。 但这只会是一个问题,如果你让它成为。
在办公室里,当你在去座位的路上经过每个人时,会有一些玩笑,人们会说“你好”。 你的同事知道你在工作,因为他们看到你在那边,在你的办公桌前工作。
远程工作者需要稍微明确一点——除非你告诉他们,否则没人知道你在工作。 但是,如果您建立了正确的沟通方式,您的同事只需按一下按钮就可以与您联系,而不是在办公室里闲逛、下电梯等。
这些技巧更适用于作为更大团队的一部分的远程管理员工,但如果只有您作为唯一的开发人员,这些技巧可能会很有用。
让你的存在感觉:不要隐身
我从 Wide Teams 播客第 48 集中获得了其中的几个想法。
在一天开始时,上 IRC(或您的团队使用的任何工具)并说“你好” ,聊聊人们的日子过得怎么样等等。即使这意味着上 IRC 并询问孩子、周末、运动队,或周末黑客。 当人们知道你目前正在家里努力工作时,你就不会变得隐形。 建立关系,让人们知道你在那里。
与聊天中的人聊天,并确保您与同事保持联系。 这与你在咖啡室等地方撞到人时不同。你需要明确地伸出手并保持联系,这样当你提交代码或需要帮助时,人们就准备好了。

“开始一天”、“午餐时间”和“回来”消息
除了让你感觉到你的存在,你还应该让你的远程队友知道你什么时候不工作。 就像在传统的办公室环境中一样,您不想在一天的剩余时间里消失,让您的同事悬而未决。
如果您与许多其他开发人员组成一个团队或管理远程员工,那么在您开始工作日时签到是有意义的。 一个简单的“大家早上好”,让人们知道您已在办公桌前准备开始项目工作,而不再在家或在床上。
在白天的午餐或工作休息时间发送“1 小时后回来”消息也很好。 远程工作对很多事情都有好处,但一个令人担忧的情况是,你问你的同事一个问题却没有得到回应。 他们是否因为离开 30 分钟而没有回应? 还是因为他们在区域深处而不听聊天? 也许在开会? “回到……”消息可以缓解这些担忧并简化工作流程。
下午结束后,让人们知道你什么时候回来。 也许是“早上见”,或者“今晚晚些时候回来完成[x]”。 但就像“1 小时后返回”消息一样,它们设定了您的团队可以适应的特定期望。
有一家名为 Sqwiggle 的有趣初创公司可能会解决其中的一些问题(尽管我自己还没有尝试过)。 除了每隔几秒拍一张你的照片,它还可以让团队成员点击你的照片开始视频/音频聊天,并提供文本聊天组件。 图片背后的想法是一目了然地查看您是否在计算机旁。 (没有什么比试图在网上与某人聊天但没有很快收到回复更糟糕的了。他们是否赶上了其他事情?在区域深处?没有看到聊天通知?现在在浴室里?)。 我在 Wide Teams 播客第 83 集听说了 Sqwiggle。
在可以设置最佳实践的项目上
远程自由职业演出总是不同的。 (这是吸引力的一部分!)有时,您被引入现有的开发人员团队纯粹是为了增加人员。 也许这个团队已经在一起有一段时间了,在这种情况下,他们已经建立了沟通实践。
另一方面,有时您是项目中唯一的开发人员,与非技术客户一起工作。 您可以设置自己的软件开发最佳实践,并对如何运行操作进行一些控制。 以下是我十年左右的远程工作经验中的一些最佳实践。 大多数情况下,这些都是针对半周(20 小时/周)或全周时间表(40 小时/周)的。
站立会议
关于召开站立会议讨论项目的状态,有一些话要说。 这些在传统办公室中很常见,但没有理由不能为远程团队提高工作效率:它们只是加强双方(客户和开发人员)之间沟通的另一种方式。
传统的站立会议会询问你昨天在做什么,你今天要做什么,以及你的路上是否有任何障碍。 考虑到您的团队规模,这种格式可能有效,也可能无效:如果它是单个开发人员项目,那么这些实际问题毫无意义。
您应该多久召开一次站立会议实际上取决于团队规模和文化。 但是,这是我的建议:
- 1-3 名开发人员:每周 2 次站立式会议
- 4+ 开发人员:每日站立会议
对于 1-3 名开发人员,这些问题大多是不言而喻的:您知道每个开发人员在做什么,因为在他们处理工单时很容易跟踪他们的个人工作:每个人都知道每个人在做什么,因为没有那么多人在做工作。
对于较大的远程团队,有更多的部分在进行中:您希望确保没有人通过复制工作或进行不兼容的更改来踩到任何人的虚拟脚趾。
鉴于 Toptal 的每周付款结构,每周两次会议让客户有足够的时间表达对项目的担忧,以免他们觉得每周的费用被欺骗了。 每周只开一次会议可能意味着客户对工作质量不满意,而开发人员没有时间调整可交付成果。
高级远程团队可能有其他方法使所有利益相关者保持在同一页面上,而无需在他们在家工作时安排实际会议。 我仍然喜欢与某人通电话/Skype/Hangouts 并以这种方式开会。
对于小型团队,每周举行两次站立会议非常有效:课程修正很快,但开发人员在每次会议期间仍有大量内容要报告。
远程交付下一个版本
根据项目的规模,我喜欢每周为小型(1-2 名开发人员)发送给客户的可交付成果,对于较大的(3 名以上开发人员)项目,每两周发送一次。 这种节奏为开发人员提供了足够的时间来完成相当大的工作块,包括供客户查看的界面(或改进的用户体验)。
对于非技术客户,他们可以衡量进度的唯一指标是他们在屏幕上看到的内容。
对于开发人员来说,记住这一点很重要,尤其是对于非技术客户而言,您可以通过用户界面可视化的进度通常是对客户而言唯一重要的事情。 非技术客户不在乎你本周推出了 500 行代码,或者你在与某些 Web 服务交互时遇到了困难; 他们衡量进度的唯一标准是他们在屏幕上看到的内容。 这并不是说在后端做好工作无关紧要,而是你需要让所有这些好工作在客户眼中变得切实可行。
鸣叫
这就是我喜欢每周或每两周交付成果的原因。 任何比这更短的东西通常会让开发人员陷入困境:他们可能会被困在两天的后端工作中并且没有时间完成界面,所以他们没有什么可以向客户展示。
根据软件项目的类型,并非所有这些客户端版本都会向公众发布。 例如,如果您正在处理 Rails 项目,您可能希望立即部署已批准的更改; 另一方面,对于移动应用程序,您可以将版本称为“1.3a10”,但当前版本只是稍后部署的新软件 1.3 版本的更大功能集的一部分。
这就是远程错误跟踪器最佳实践发挥作用的地方。 通过错误跟踪,客户知道:
- 团队为这个交付物准备了什么
- 如果已经完成
- 如果工作已经得到客户的批准。
客户知道对这个版本有什么期望,开发人员知道他们面前的工作是什么。
如果您的远程团队足够成熟,可以使用持续部署和/或看板,那很好。 然而,这些都是非常先进的技术,更适合具有强大的、基于开发人员的文化的组织。 大多数组织认为定制软件开发是必要的但成本高昂,可能还没有准备好使用这些技术中的任何一种。 为什么? 我看到的两件事是,客户跟不上开发人员希望他们审查的更改数量,或者优先级变化太快,开发人员无法完成任何一件事。
建议
如果您碰巧进入了一个将建立最佳实践的团队,我在下面列出了一些用于管理您的远程工作的工具。 请记住,这些只是我的建议:当然,本指南并不适合所有人。 如果您不喜欢这些工具,那么可能有一种工具更适合您的需求。
- Planscope.io ,每周模式。 这是一个时间跟踪器 + 错误跟踪器 + 项目估算工具,当您处理他们的项目时,它会每天向客户发送电子邮件,让他们了解进度和预算方面的进展情况。 这对于 1-4 个开发人员/月的项目非常有用。
- App Trajectory是一个针对小型团队的错误跟踪器,专注于评估项目并将其分解为一到两周的小块(迭代)。 App Trajectory 可以告诉您在一次迭代中完成了多少工作,以及完成所有已知工作之前的迭代次数。 这对于 2-12 个开发人员/月的项目非常有用。
- Pivotal Tracker是一个错误跟踪工具,面向专注于敏捷方法的客户。 如果您正在进行正式的敏捷迭代或项目规模以开发人员/年为单位衡量,这将非常有用。
- FlowDock用于聊天。 Flowdock 与普通的 IRC 或 Skype 聊天相比具有一些优势:除了与流行的服务集成外,它还允许您标记对话以供以后快速参考。 FlowDock 还保留与一般聊天分开的状态活动列表(代码签入等)。 (即,在 Web 界面中,自动状态更新在左侧,而聊天在右侧。)
- 同样, Campfire也非常适合聊天。
结论
对于您和客户来说,开始使用远程或在家工作可能是一个相当大的调整。 我已经做得非常正确,也非常错误。 但是,如果进展顺利,它可以成为客户或雇主解决“人才紧缩”问题的绝佳方式,并为居住在主要技术中心或“创业”中心之外的开发人员创造更广泛的机会。 开发人员通过适当的最佳实践进行远程协作,可以提高整个世界的效率。