如何远程工作并仍然是最好的

本文概述

  • 远程工作者的工具带
  • 远程工作最佳实践:错误跟踪
  • 远程工作最佳实践:团队沟通
  • 在可以设置最佳实践的项目上
  • 推荐建议
  • 总结
瑞恩·威尔考克斯(Ryan Wilcox)作为一名远程员工已成长了将近10年, 现在担任srcmini工程师和他自己公司的创始人, 同时担任全球公司的顾问和开发人员。他目前在网络和iOS产品公司Fanzter的全职工作。
远程工作者的工具带 如果你习惯于日复一日地上班, 那么无论是合同项目还是全职工作, 开始新的遥控器或在家中工作都可能有些令人生畏。
但是这种工作方式越来越受欢迎, 一些非常著名的公司为其提供了认可。
多年来, 我已经成功地使用这些工具在各种规模和期限的项目上进行了远程工作。在这篇文章中, 我希望列举出我在各种情况下工作时获得的一些最佳做法。这里的远程和在家工作指南涵盖了针对软件和硬件的具体建议, 以及达到团队截止日期的提示。
远程或家庭办公室设置
我不能太过强调正确的办公室设置的重要性。它既可以提高你的生产力, 又可以使你看起来更专业。例如, 耳机对于避免在线通话中产生回声至关重要。当作为遥控器工作时, 类似这样的小事情将大有帮助。
以下是我认为在自己的家庭办公室中必不可少的一些远程工作工具:
  • 耳机。我特别喜欢有线耳机, 因为它们在关键时刻不会耗尽电池电量。你会经常穿它, 所以请确保你感到舒适。我有两个iMicro耳机:一个用于我的办公桌, 另一个用于我的笔记本电脑包。作为笔记本电脑包式耳机, 它具有两个出色的品质:因为它是USB供电的, 所以我不必担心保持电池充满电, 而且如果包中有破损, 更换起来非常便宜。实际上, 我发现这种特殊的耳机对于长时间的电话会议来说有点不舒服。如果你要进行很多操作, 那么我建议你使用Corsair Vengeance 2000:一款舒适的无线头戴式耳机, 带有电池功能, 可以全天工作。 (顺便说一句:这些都不是引荐链接。)
  • 安静的地方, 可以关闭一扇门, 尤其是如果你与其他人住在一起, 尤其是有家人的时候。
  • 稳定的Internet连接或良好的备份连接。例如, 我有DSL, 并且如果DSL出局, 则在电话上设置了网络共享。如果你经常遇到Skype问题或挂断电话, 那么在可能试图管理多个远程员工的其他人的眼中, 你的可靠性和专业性就会降低。
  • Skype。这对于临时电话会议, 与客户的即时消息传递, 甚至创建低礼仪的聊天室都是很有用的。
  • SkypeOut, 可让你从电话接听Skype联系人并进行通话。这很棒, 特别是在你不在电脑旁并且(你错误地计算了时间, 客户遇到紧急情况等)的时候。
  • 电热水壶。有时候我想喝热咖啡, 但是不想打扰我的流程以喝些咖啡。
  • 加仑水罐。烧水壶或喝水。用于长时间的编码会话或长时间的电话会议。
如何远程工作并仍然是最好的

文章图片
其中一些听起来很明显, 但是你会惊讶于没有达到此处所有要求的遥控器数量。作为开发人员, 我们需要一个安静的空间进行思考, 并且不受干扰。作为远程工作者, 我们需要一个安静的地方来不间断地举行电话会议, 会议, 配对编程会议等。仅在沙发上工作可能不是一个好的长期远程工作解决方案。
软件工具
有很多好的软件工具可以补充典型的开发环境, 并帮助你克服与远程工作相关的挑战。这里是我非常喜欢的一些:
  • AwayFind, 它用于处理紧急电子邮件, 特别是会议与会者的最后一分钟消息, 因为它可以通过SMS将其消息转发给你。
  • 时区转换器, 用于与世界各地的客户和同事合作。我喜欢Time and Date的世界时间时钟, 每个时区, 世界时间好友或The Time Now, 以便为视障人士提供更易于访问的版本。
  • 团队中每个人的聊天室/ IRC室。这可以是正式的(例如, 篝火室), 也可以是Skype聊天室(保持简单, 愚蠢)。
  • 错误跟踪器-这值得一提, 请参阅下文。
计划会议时, 请始终确认两个时区。并且当你收到邀请时, 你应该始终向后进行数学运算, 并确保输入相同的数字。如果会议涉及多个时区, 我也希望包括UTC时间。由于每个人都应该知道自己与UTC的偏移量, 因此这是另一项检查, 以确保每个人都在同一页面上。
几年前, 我在一个体面的Rails团队中工作。几个团队成员至少在一部分时间内进行远程工作, 而团队文化是晚上需要做很多工作。我建议当时由官方团队负责人建立一个聊天室, 指的是Campfire或其他付费聊天服务。几周没有采取任何行动, 我决定只与开发人员建立一个Skype聊天室, 以检验我的理论, 即聊天室对于团队而言是一项资产。实验证明非常成功-如此成功, 以至于我们一直使用Skype聊天而不是其他解决方案。大约一年后我离开该项目时, 此Skype聊天室仍在使用中。有时候, 简单可能是最好的选择。
后来, 在同一项目的关键期限内, 我们建立了一个Skype聊天室, 其中包括开发人员, 业务分析人员, 项目经理和客户, 因此, 一般团队可以快速解决问题。尽管不如仅开发人员聊天室那么活跃, 但它仍然运行得很好。可以通过一些群聊命令, 设置聊天角色和设置访问权限来主持和控制Skype聊天, 这使你可以根据用例真正定制聊天室。甚至如此简单的设置也可以提高远程生产力。
远程工作最佳实践:错误跟踪 我想从我使用的错误跟踪器中了解三件事:
  • 我现在在做什么?
  • 下一个版本的软件对我有什么帮助?
  • 此版本的软件整个团队的可交付成果是什么?
每个都有一个目的。
首先, “ 我现在正在做什么?” :当你在传统办公室工作时, 你会遇到背景chat不休–这使你对其他所有人的工作有一个大致的了解。错误跟踪器系统中的明确标记, “ 是的, 我正在积极地进行这项工作” , 可以为远程工作引入类似的模式和感觉。
其次, “ 我的下一个发行版是什么?” 表示” 我负责哪些错误” 或” 我正在处理哪些错误” 。每个团队中肯定会有一些来回的交流, 但是也很高兴知道是谁问你是要抓住一个错误, 还是需要一些帮助来最终确定该版本的错误。
你的团队也可能根本没有这样的工作:例如, 你的工作流程可能是每个开发人员仅被分配一个错误开始, 并在完成一个错误后从未分配的堆中挑选出来。这也可能是有成效的。
“ 软件的下一个版本” 不必太大了–我去过的团队中, “ 下一个版本” 的意思是” 从现在起3天后, 我们将为客户发布新的alpha版本” 。但是让每个人都知道这个新版本中会有什么变化仍然是一件好事。特别是当你在当前票证完成后领取未分配的票证时。
我在文章的底部提供了一些针对特定错误跟踪器的建议。
远程工作最佳实践:团队沟通 对于某些人来说, 团队沟通是远程或在家工作中最令人生畏的部分。但这只会是一个问题, 如果你顺其自然。
在办公室里, 当你在每个人走到座位的路上溜达时, 都会有一些戏, 人们说” 你好” 。你的同事知道你在工作, 因为他们在你的办公桌旁看到你在工作。
远程工作者需要更加明确-除非你告诉他们, 否则没人会知道你正在工作。但是, 如果你建立正确的沟通方式, 则只需按一个按钮, 你的同事就可以使用, 而不是在办公室, 电梯等处漫步。
这些技巧更适用于作为更大团队的一部分的远程管理员工, 但如果仅由你作为唯一开发人员, 则可能会有用。
使你的存在感:不要隐身
我从Wide Teams Podcast第48集中摘录了其中一些想法。
一天开始时, 请使用IRC(或团队使用的任何工具)并说” 你好” , 聊聊人们的日子过得如何等等。即使这意味着要使用IRC并询问孩子, 周末, 运动队或周末黑客活动。当人们知道你目前正在家里辛苦工作时, 你就不会隐身。建立关系, 让人们知道你在那里。
与其他人聊天, 并确保你与同事保持联系。遇到咖啡屋等中的人时, 情况就不同了。你需要明确伸出手并保持联系, 以便在提交代码或需要帮助时, 人们已经准备就绪。
“ 开始一天” , “ 午餐时间” 和” 回来” 消息
除了让你感觉到自己的身影外, 还应在不工作时告知远程队友。就像在传统的办公室环境中一样, 你不想在一整天的时间里都消失不见, 而让你的同事闲逛。
如果你所在的团队中有许多其他开发人员或管理远程员工, 那么在开始工作之时就应该签入。一个简单的” 大家早上好” , 让人们知道你已经在办公桌旁准备开始该项目, 而不再在家里或床上。
在白天发送” 一小时后回来” 消息作为午餐或工作休息时间也很不错。远程工作对很多事情都非常有用, 但是一个令人担忧的情况是, 你向同事提出了一个问题而没有得到任何答复。他们是因为离开30分钟而没有回应吗?还是因为他们在该区域深处而不在听聊天?也许正在开会? “ 回来……” 消息可以减轻这些担忧并简化工作流程。
当你下午过完后, 让人们知道你何时回来。可能是” 早上见” , 或者” 今天晚上晚些时候回来完成[x]” 。但是, 就像” 1小时后返回” 消息一样, 它们设定了团队可以适应的特定期望。
有一个有趣的创业公司Sqwiggle可以解决其中的一些问题(尽管我自己还没有尝试过)。除了每隔几秒钟为你拍照之外, 它还允许团队成员单击你的图片以开始视频/音频聊天, 并提供文本聊天组件。图片背后的想法是一眼就能看到是否在电脑旁。 (没有比尝试与在线某人聊天并且没有迅速听到回音更糟糕的了。他们是否赶上了其他事情?在该区域深处?没有看到聊天通知?现在在洗手间吗?)。我在Wide Teams播客第83集中听说过Sqwiggle。
在可以设置最佳实践的项目上 远程自由职业演出总是不同的。 (这是吸引力的一部分!)有时, 你纯粹是作为人员扩充而被带入现有的开发人员团队。也许这个团队在一起已经有一段时间了, 在这种情况下, 他们已经建立了沟通惯例。
另一方面, 有时你是该项目的唯一开发人员, 并且与非技术客户合作。你可以设置自己的软件开发最佳实践, 并可以控制如何运行操作。以下是我十年左右的远程工作经验中的一些最佳实践。通常, 这些目标针对半周(20小时/周)或整周的时间表(40小时/周)。
站立会议
关于举行站立会议来谈论项目状态, 可以说些什么。这些在传统办公室中非常常见, 但是没有理由为什么它们不能使远程团队发挥作用:它们只是加强双方(客户和开发人员)之间沟通的另一种方式。
传统的站立会议会询问你昨天的工作, 今天的工作以及行进中是否有障碍。考虑到你的团队规模, 这种格式可能行不通:如果是单个开发人员项目, 那么这些实际问题毫无意义。
你应该多久召开一次站立会议, 这实际上取决于团队的规模和文化。但是, 这是我的建议:
  • 1-3个开发人员:每周2次站立式会议
  • 4个以上的开发人员:每日站立会议
对于1-3个开发人员, 这些问题大多是不言而喻的:你知道每个开发人员在做什么, 因为当他们通过票务时很容易跟踪他们的个人工作:每个人都知道每个人在做什么, 因为只有很少的人在做什么工作。
在规模更大的远程团队中, 有更多活动要做:你想确保没有人通过复制工作或进行不兼容的更改来踩踏任何人的虚拟脚趾。
鉴于srcmini的每周付款结构, 每周两次会议可以让客户有足够的时间表达对该项目的担忧, 然后才觉得自己不喜欢每周的价格。一周只开会一次可能意味着客户对工作质量不满意, 并且开发人员没有时间调整可交付成果。
高级远程团队可以采用其他方法将所有涉众保持在同一页面上, 而无需在他们在家工作时安排实际的会议。我仍然喜欢和某人通电话/ Skype /环聊, 并以此方式开会。
对于小型团队而言, 每周召开两次站立会议非常有效:可以迅速进行课程更正, 但是开发人员在每次会议中仍有大量需要报告的内容。
远程交付下一版本
根据项目的大小, 我喜欢小型(1-2个开发人员)每周一次向客户发送可交付成果, 大型(3个以上开发人员)项目每两周一次发送给客户。这种节奏使开发人员有足够的时间完成相当大的工作, 包括界面(或改进的用户体验)供客户查看。
对于非技术客户, 他们可以用来衡量进度的唯一度量标准就是他们在屏幕上看到的内容。
对于开发人员来说, 重要的是要记住, 尤其是对于非技术客户, 使用用户界面可以看到的进度通常对客户来说是唯一重要的事情。非技术客户不必担心你本周发布了500行代码, 也不必担心与某些Web服务的交互;他们可以用来衡量进度的唯一度量标准是他们在屏幕上看到的内容。这并不是说在后端进行良好的工作无关紧要, 而是你需要使所有这些良好的工作在客户眼中切实可见。
如何远程工作并仍然是最好的

文章图片
鸣叫
这就是为什么我喜欢每周或每两周一次的交付。比这还短的东西通常会使开发人员陷入困境:也许他们被困在后端工作两天了, 而且没有时间完成界面, 所以他们没有任何东西可以向客户展示。
根据软件项目的类型, 并非所有这些客户端版本都会向公众发布。例如, 如果你正在处理Rails项目, 则可能要立即部署批准的更改;另一方面, 对于移动应用程序, 你可以将发行版称为” 1.3a10″ , 但是当前发行版只是该软件的新1.3版本的更大功能集的一部分, 该新版本将在以后部署。
这是远程错误跟踪器最佳实践发挥作用的地方。通过错误跟踪, 客户知道:
  1. 该交付成果在团队的意义上是什么
  2. 如果完成了
  3. 工作是否得到客户的批准。
客户知道该版本会有什么期望, 而开发人员则知道他们要做什么。
如果你的远程团队足够成熟, 可以使用连续部署和/或看板, ??那就可以了。但是, 这些都是非常先进的技术, 更适合于具有强大的基于开发人员的文化的组织。大多数组织都认为自定义软件开发是必要的, 但代价很高, 因此可能尚未准备好使用这两种技术。为什么?我看到的两件事是, 客户无法跟上开发人员希望他们进行审查的变更数量, 或者优先级变更太快而无法开发完成任何事情。
推荐建议 如果你碰巧要进入一个团队, 在其中建立最佳实践, 我在下面列出了一些用于管理远程工作的工具。请记住, 这些只是我的建议:当然, 本指南并不适合所有人;如果你不喜欢这些工具, 则可能有一个更适合你需求的工具。
  • 每周模式下的Planscope.io。这是一个时间跟踪器+错误跟踪器+项目估算工具, 可以在你处理客户的项目时每天向他们发送电子邮件, 并让他们查看进度和预算方面的情况。这对于1-4个开发人员/月大小的项目非常有用。
  • App Trajectory是面向小型团队的错误跟踪程序, 其重点是估计项目并将其分解为一到两周的块(迭代)。 App Trajectory可以告诉你一次迭代要完成多少工作, 以及在完成所有已知工作之前要进行多少次迭代。这对于2-12个开发人员/月的项目非常有用。
  • Pivotal Tracker是面向客户的Bug跟踪工具, 重点关注敏捷方法。如果你要进行正式的Agile迭代或以开发人员/年为单位衡量项目规模, 那就太好了。
  • FlowDock聊天。与普通的IRC或Skype聊天相比, Flowdock具有一些优势:除了与流行的服务集成之外, 它还允许你标记对话以供以后快速参考。 FlowDock还会保留一个状态活动列表(代码签入等), 这些状态活动与常规聊天是分开的。 (即, 在网络界面中, 左侧是自动状态更新, 而右侧是聊天。)
  • 同样, Campfire也非常适合聊天。
总结 【如何远程工作并仍然是最好的】对于你和客户来说, 远程或在家工作都是一个很大的调整。我说的对, 对, 错。但是, 如果一切顺利, 这对于客户或雇主来说是解决” 人才紧缩” 问题的绝佳方法, 并且为住在主要技术中心或” 启动” 中心之外的开发人员创造了更多的机会。通过远程开发人员结合适当的最佳实践, 可以提高效率。

    推荐阅读