• 注册
    • 如何远程工作并保持做到最好

    • 查看作者
    • 如何远程工作并保持做到最好

      Ryan Wilcox作为远程员工已经茁壮成长了近10年,现在他既是Toptal工程师,又是自己公司的创始人,为世界各地的公司担任顾问和开发工作。他目前在一家网络和iOS产品公司Fanzter全职工作。

      远程工作者的工具箱

      如果你习惯于日复一日地进入办公室,那开始一个新的远程或在家工作的工作,无论是合同项目还是全职工作,于你而言可能会有点吓人。

      但这种就业方式越来越受欢迎,一些非常著名的公司都认可它。

      多年来,我已经成功地使用这些工具在不同规模和持续时间的项目上进行了远程工作。通过这篇文章,我希望能列举一些我在各种情况下工作的最佳实践。这里的远程和在家工作指南从软件和硬件的具体建议,到能让你的团队按时完成任务的技巧。

      远程或家庭办公设置

      我怎么强调都不为过,拥有正确的办公室布置的重要性。它既能让你更有效率,也能让你看起来更专业。例如,耳机对于避免在线通话时的回声是至关重要的,这样的小东西对远程工作有很大的帮助。

      这里有一些远程工作的工具,我认为在我自己的家庭办公室里是必不可少的。

      • 耳机,我特别喜欢有线耳机,因为它们在关键时刻不会耗尽电池。你会经常戴着它,所以确保你得到一些舒适的东西。我有两个iMicro耳机:一个放在我的办公桌上,一个装在我的笔记本包里。笔记本包里的耳机有两大特点:因为它是USB供电,我不必担心保持电池充电,而且如果它在我的包里压坏了,更换它非常便宜。实际上,我发现这个特别的耳机对于长时间的电话会议来说有点不舒服;如果你要做很多这样的事情,那么我推荐Corsair Vengeance 2000:一个舒适的,带有电池功能的无线耳机,让你可以工作一整天。

      • 安静的可以思考的地方,有一扇门可以关上--尤其是当你和别人住在一起的时候,尤其是当你有家庭的时候。

      • 稳定的网络连接,或良好的备份连接。例如,我有DSL,并且在DSL中断时在手机上设置了tethering。如果你经常出现Skype问题或掉话,在其他人眼中,你就会变得不那么可靠和不那么专业,因为他们可能会试图管理几个远程员工。

      • Skype,这很适合用于临时电话会议、与客户的即时通讯,甚至是创建低仪式聊天室。

      • SkypeOut,它可以让你从手机上接听和拨打Skype联系人的电话。这真是太棒了,特别是当你离开电脑的时候,(你算错了时间,客户有急事等)。

      • 电热水壶,有时候,我想喝热咖啡,但不想为它打断工作。

      • 加仑的水壶,用于水壶,或饮用。用于长时间的编码会议,或长时间的电话会议。

      其中一些听起来很明显,但你会惊讶于有多少远程信息没有在这里打上所有的标记。作为开发人员,我们需要一个安静的空间来思考,不受干扰。而作为远程工作者,我们需要一个安静的地方来主持电话会议、会议、配对编程会议等,不受干扰。只是在沙发上工作,可能不是一个好的长期远程工作解决方案。

      有很多好的软件工具可以补充你典型的开发环境,帮助你克服与远程工作相关的挑战。以下是我非常喜欢的几个工具:

      • AwayFind,它很适合用于紧急邮件,特别是会议与会者的最后一分钟消息,因为它通过短信将他们的消息转发给你。

      • 时区转换器,用于与世界各地的客户和同事合作。我喜欢Time And Date的World Time Clock、Every Time Zone、World Time Buddy或The Time Now,以方便视障人士使用。

      • 为团队中的每个人建立聊天/IRC室。这可以是正式的(例如,Campfire室)或只是一个Skype聊天室(保持简单)风格。

      • Bug跟踪器,这应该有一个单独的章节,所以见下文。

      计划会议时,一定要确认两个时区。而当你收到邀请时,你应该总是倒着算,确保你得出的数字是一样的。如果会议涉及多个时区,我喜欢把UTC时间也包括在内。因为每个人都应该知道他们与UTC的偏移,这是另一个检查,以确保每个人都在同一页上。

      几年前,我曾在一个规模不小的Rails团队中工作。几个团队成员至少有一部分时间是远程工作,团队文化是很多工作都会在晚上完成。我当时通过官方团队负责人提议建立一个聊天室,指向Campfire或其他付费聊天服务。几个星期过去了,没有任何行动,我决定建立一个只有开发人员参加的Skype聊天室,以检验我的理论,即聊天室对团队来说是一种资产。事实证明,这个实验非常成功,以至于我们一直在使用Skype聊天室,而不是其他解决方案。当我离开项目近一年后,这个Skype聊天室仍在使用。有时候,简单可以是最好的选择。

      后来,在同一个项目的关键期限内,我们建立了一个Skype聊天室,其中包括开发人员、业务分析人员、项目经理和客户,因此问题可以由普通小组快速解决。虽然没有开发者专用聊天室那么活跃,但效果还是很好。Skype聊天可以通过一些群聊命令来进行管理和控制,设置聊天角色和设置访问权限,这让你可以真正根据自己的用例来定制聊天室。即使是这样简单的设置,也能提高远程工作效率。

      远程工作最佳实践:Bug跟踪

      我喜欢从我使用的bug跟踪器中了解三件事:

      • 我现在在做什么?

      • 这款软件的下一个版本我有什么打算?

      • 整个团队这次发布软件的可交付成果是什么?

      每一个都有一个目的。

      首先,"我现在在做什么?"。当你在传统的办公室工作时,你会有背景聊天,这让你对其他人在做什么有一个大致的了解。在bug跟踪系统中明确标明"是的,我现在正在积极地工作",可以为远程工作引入类似的模式和感觉。

      其次,"下一个版本我的任务是什么?"意思是,"我负责什么bug"或者"我处理什么bug"。每个团队中肯定会有一些背靠背,但如果你想抓一个bug,或者需要一些帮助来敲定发布的bug,知道该问谁也是好事。

      也有可能你的团队根本不是这样工作的:例如,你的工作流程可能是每个开发人员只被分配一个bug,当他们的一个bug完成后,就把未分配的那堆bug捡起来。这也可以是富有成效的。

      "软件的下一个版本"不一定是什么大的版本--我曾在团队中,"下一个版本"意味着"3天后,我们将为客户端发布一个新的alpha版本"。但让大家知道这个新版本会有什么内容还是很好的。尤其是当你当前的单子完成后,你会把未分配的单子挑掉。

      远程工作最佳实践:团队沟通

      对于一些人来说,团队沟通是远程工作或在家工作中最令人恐惧的部分。但只有当你让它成为问题时,这才会成为问题。

      在办公室里,当你在去往座位的路上从大家身边走过时,会有一些闲聊,大家会说"你好"。你的同事知道你在上班,因为他们看到你,在那边,在办公桌前,在工作。

      远程工作者需要稍微明确一点--除非你告诉他们,否则没有人知道你在工作。但如果你建立了正确的沟通方式,你的同事就会在按下按钮时就能找到你,而不是漫步穿过办公室,走下电梯等。

      这些技巧更多适用于作为更大团队一部分的远程管理员工,但如果只是你作为唯一的开发人员,可能会很有用。

      让人们感受到你的存在,不要隐身

      我从Wide Teams Podcast第48集捡到了其中的几个想法。

      在一天开始的时候,上IRC(或者你的团队使用的任何工具)说"你好",聊一聊大家的日子过得怎么样,等等,等等。哪怕是上IRC问一下孩子、周末、运动队或周末黑客的情况。当人们知道你目前在家里努力工作时,你就不会成为隐形人。建立关系,让人们知道你在那里

      在聊天中与人聊天,确保你与同事保持联系。这和你在咖啡室里碰到的人不一样,等等,等等。你需要明确地联系并保持联系,这样当你提交代码或需要协助时,人们就会做好准备。

      开始一天"、"午餐时间"、"回来"等信息

      除了让人感觉到你的存在,你还应该让你的远程团队成员知道你何时不工作。就像在传统的办公环境中一样,你不希望在一天中的其余时间里消失,让你的同事们悬在那里。

      如果你在一个团队中和其他一些开发人员一起工作,或者管理远程员工,那么当你开始一天的工作时,签到是很有意义的。一句简单的"大家早上好",让大家知道你已经在办公桌前准备开始项目的工作,而不再是在家里或者床上。

      白天吃午饭或工作休息时发"1小时后回来"的信息也不错。远程工作在很多方面都很好,但有一种令人担忧的情况是,你问同事一个问题,却没有收到回复。他们不回复是因为他们离开了30分钟吗?还是因为他们深陷其中,不听聊天?也许是在开会?"Be back in......"消息可以缓解这些顾虑,使工作流程更加顺畅。

      当你下午做完后,让大家知道你什么时候回来。也许是"明天早上见",或者是"今天晚上晚些时候回来完成的工作"。但就像"1小时后回来"的信息一样,它们设定了一定的期望值,你的团队可以适应这个期望值。

      有一个有趣的创业公司叫Sqwiggle,可能会解决其中的一些问题(虽然我自己还没有尝试过)。除了每隔几秒钟给你拍一张照片,它还可以让团队成员点击你的照片开始视频/音频聊天,同时还提供了文字聊天组件。图片背后的想法是,一目了然地看到你是否在电脑前。我是在Wide Teams Podcast第83集听到Sqwiggle的。

      关于可以设置最佳实践的项目

      远程自由职业者的工作总是与众不同。有时你被带到一个现有的开发团队中,纯粹是作为人员的补充。也许这个团队已经在一起一段时间了,在这种情况下,他们已经建立了沟通惯例。

      另一方面,有时你是项目中唯一的开发人员,与非技术客户合作。你可以设置自己的软件开发最佳实践,并对如何运行操作有一定的控制权。以下是我十几年远程工作经验中的一些最佳实践。大多数情况下,这些都是针对半周(20小时/周)或全周的时间表(40小时/周)。

      站立会议

      召开站立会议来讨论项目的状态是有道理的。这些在传统的办公室里非常常见,但没有理由它们不能为远程团队带来成效:它们只是另一种强制双方沟通的方式:客户和开发人员。

      传统的站立会议会问你昨天在做什么,今天要做什么,是否有什么障碍。考虑到你的团队规模,这种形式可能有用,也可能没用:如果是一个单一的开发者项目,那么这些实际问题就没有意义了。

      多久开一次站立会议其实取决于团队规模和文化。不过,以下是我的建议。

      • 1-3名开发人员:每周2次站立式会议。

      • 4名以上的开发人员:每天1次站立会议。

      对于1-3个开发人员,这些问题大多是不言而喻的:你知道每个开发人员在做什么,因为在他们耕耘票据的过程中很容易跟踪他们的个人工作:每个人都知道每个人在做什么,因为只是没有那么多人在做工作。

      对于规模较大的远程团队,有更多的部分在运动:你要确保没有人通过复制工作或进行不兼容的更改来踩到任何人的虚拟脚趾。

      考虑到Toptal的按周付费结构,每周两次会议可以让客户有足够的时间来表达对项目的关注,免得他们觉得被骗了周费。一周只开一次会,可能意味着客户对工作质量不满意,而开发人员没有时间调整可交付成果。

      先进的远程团队可能有其他方法来保持所有利益相关者在同一页面上,而不安排一个实际的会议,同时他们在家工作。我还是喜欢和别人通电话/Skype/Hangouts,然后用这种方式开会。

      对于小团队来说,每周两次站立会议的效果非常好:课程修正很快,但开发人员在每次会议期间仍然有一些实质性的东西要汇报。

      远程交付下一个版本

      根据项目的大小,对于小型(1-2个开发者)的项目,我喜欢每周向客户发送交付成果,对于大型(3个以上开发者)的项目,我喜欢每两周发送一次。这种节奏让开发人员有足够的时间来完成可观的工作块,包括一个界面(或改进的用户体验)让客户看到。

      对于非技术性客户来说,他们唯一能衡量进度的标准就是他们在屏幕上看到的东西。

      对于开发人员来说,重要的是要记住,特别是对于非技术性客户来说,你能用用户界面可视化的进度往往是客户唯一关心的事情。非技术客户并不关心你这周推送了500行代码,或者你在与某个Web服务交互时遇到了困难,他们衡量进度的唯一标准是他们能在屏幕上看到的东西。这并不是说在后端做好工作是无关紧要的,而是说你需要让这些好的工作在客户眼里都是实实在在的。

      这就是为什么我喜欢每周或每两周一次的交付成果。任何比这更短的时间往往会让开发人员陷入困境:也许他们被困在做后端工作两天,没有时间完成界面,所以他们没有任何东西可以给客户看。

      根据软件项目的类型,并不是所有这些客户端版本都会对外发布。例如,如果你正在做一个Rails项目,你可能希望立即部署已批准的更改;另一方面,对于一个移动应用,你可能会将一个版本称为"1.3a10",但当前的版本只是稍后部署的新的1.3版本软件的更大功能集的一部分。

      这就是远程错误跟踪器最佳实践的作用。有了bug跟踪,客户就知道了。

      1. 团队在这个交付品上的工作是什么?

      2. 如果它已经完成了

      3. 如果工作已经得到客户的认可

      客户知道对这个版本的期望,而开发人员也知道他们面前的工作是什么。

      如果你的远程团队已经足够成熟,可以使用持续部署和/或看板,那么这很好。然而,这两种技术都是非常先进的技术,更适合于具有强大的、基于开发者文化的组织。大多数组织,定制软件开发被认为是必要的,但成本很高,可能还没有准备好使用这两种技术。为什么会这样呢?我见过的两种情况是,客户无法跟上开发人员希望他们审查的变更数量,或者优先级变化太快,开发无法完成任何一件事。

      建议

      如果你确实碰巧走进了一个团队,你将建立最佳实践,我在下面列出了一些管理远程工作的工具。请记住,这些只是我的建议:当然,这份指南并不适合每个人;如果你不喜欢这些工具,可能有别的工具更适合你的需求。

      • Planscope.io,每周模式。这是一个时间跟踪器+bug跟踪器+项目估算工具,当你在项目上工作时,每天都会给客户发邮件,让客户看到进度和预算的情况。这很适合1-4个开发人员/月规模的项目。

      • App Trajectory是一款适用于小团队的bug跟踪器,它专注于估算,并将项目分解成一到两周的块状(迭代)。App Trajectory可以告诉你在一次迭代中完成了多少工作,以及在完成所有已知工作之前还有多少次迭代。这很适合2-12个开发者/月规模的项目。

      • Pivotal Tracker是一款针对客户的Bug跟踪工具,专注于敏捷方法论。如果你正在进行正式的敏捷迭代,或者项目规模以开发人员/年为单位,这是很好的选择。

      • 聊天用的FlowDock,与普通的IRC或Skype聊天相比,Flowdock具有一些优势:除了与流行的服务整合外,它还可以让你给对话打上标签,以便日后快速参考。FlowDock还保留了一个状态活动列表(代码检查等),它与一般的聊天分开。

      • 同样,Campfire也很适合聊天。

      结论

      开始使用远程或在家工作可能是一个相当大的调整,无论是对你还是对客户。我有过非常正确的经历,也有过非常错误的经历。但是,如果它是正确的,它可以成为客户或雇主解决"人才紧缺"问题的绝佳方式,并为那些生活在主要技术中心或"创业"中心之外的开发人员创造更广泛的机会。在正确的最佳实践到位的情况下,开发人员远程合作可以获得一整个世界的效能。

      || 翻译:数字游民指南
      || 原文作者:['Ryan Wilcox', 'Ryan Has More Than Years Of Programming Experience In Numerous Languages', 'Is An Expert In Workflow Analysis', 'View Full Profile', 'Software Developer', 'About The Author', 'Ryan Has Over Years Of Programming Experience', 'Extensive Knowledge Of Ruon Rails', 'Ios Cocoa', 'Javascript']
      || 原文链接: 链接
    • 0
    • 0
    • 0
    • 128
    • 请登录之后再进行评论

      登录

      赞助广告,谢谢理解

    • 发表内容
    • 做任务