异步调用案例

In March 2020 our work related world changed drastically due to COVID-19. Previously our teams were mostly on-site and co-located. At the beginning of the lockdown in Germany though this all changed and we found ourselves in a completely new work environment where everyone was all of a sudden remote.

到2020年3月,由于COVID-19,我们与工作相关的世界发生了巨大变化。 以前,我们的团队大多在现场并在同一地点。 在德国禁闭初期,这一切都发生了变化,我们发现自己处于一个全新的工作环境中,每个人都突然变得遥不可及。

These significant shifts are scary. They bring a lot of uncertainty and shakiness into the work environment, but they also do present an opportunity to re-inspect and re-evaluate the way we collaborate and build software together in teams.

这些重大变化令人恐惧。 它们给工作环境带来了很多不确定性和不稳定性,但是它们也确实提供了一个重新检查和重新评估我们在团队中共同协作和构建软件的方式的机会。

I’m an engineering director responsible for multiple engineering teams at New Work. Over the last months I decided to go all-in on that opportunity with my teams, and to rethink and revise the way we work in this new remote situation in order to make the most of it. In this post, I will share with you everything I’ve learned about this topic in the past 6 months. I will talk about how we got there, what challenges we faced on the team and management side and how we re-adjusted multiple times along the way to find our new groove. Lastly I will try to give you my answer to the looming question of “Is it worth it?”

我是一名工程总监,负责New Work的多个工程团队。 在过去的几个月中,我决定全力以赴地与团队合作,并重新思考和修改我们在这种新的偏远情况下的工作方式,以充分利用这一机会。 在这篇文章中,我将与您分享过去6个月中我对该主题学到的一切。 我将谈论我们如何到达那里,在团队和管理方面面临的挑战以及如何在寻找新的机会的过程中多次进行重新调整。 最后,我将尽力回答“是否值得?”这个问题。

我们有一些远程体验,所以我们认为 (We had some remote experience, or so we thought)

I lied a bit in the introduction. Remote wasn’t completely new to us. Since 2017 I have at least one full remote team member in Augsburg and even though the rest of his team works in Hamburg, this already had a significant impact on collaboration in the respective team.

我在简介中撒了点谎。 遥控器对我们来说并不陌生。 自2017年以来,我在奥格斯堡拥有至少一名正式的远程团队成员,即使他的其余团队在汉堡工作,这也已经对各自团队的协作产生了重大影响。

You might ask yourself why we had this mixed setup with one remote colleague and the rest being on-site in the first place, so let me explain. Sometimes opportunities cross your path, that are hard to resist. After having worked with this team member as a freelancer, we knew that he was a perfect fit for the team. He made the team better in terms of expertise, brought something special to the team through his personality and instantly clicked very well with the rest of the personalities in the team. The only problem: He already had made his decision to re-locate to Augsburg from Hamburg (where our headquarters are located). It was a bit unusual in our company back then, but I decided to do a leap of faith and trust our ability to make it work and I haven’t regretted the decision a single time in the last 3 years.

您可能会问自己,为什么我们要与一位远程同事进行这种混合设置,而其余人员首先要在现场,所以让我解释一下。 有时,机遇横穿您的道路,这是难以抗拒的。 在与该团队成员一起担任自由职业者之后,我们知道他非常适合团队。 他在团队的专业知识方面做得更好,通过他的个性为团队带来了一些特别之处,并立即获得团队中其他个性的好评。 唯一的问题:他已经决定从汉堡(我们总部所在地)搬到奥格斯堡。 那时我们公司有点不寻常,但我决定进行一次信念飞跃,并相信我们有能力使其发挥作用,在过去的三年中,我没有一次后悔这一决定。

We had no grand plan on how to make this work, only a very simple process:

我们没有关于如何进行这项工作的宏伟计划,只有一个非常简单的过程:

  1. Continuously monitor and identify what doesn’t work anymore or is worth improving

    持续监控并确定哪些行不通或值得改进
  2. Adjust things as you go (ideally through small experiments)

    随时进行调整(最好通过小实验)
  3. If the change improves the situation, keep it and proceed to the next pressing issue. Otherwise come up with a new idea for the current issue.

    如果更改可以改善这种情况,请保留并继续处理下一个紧迫的问题。 否则,针对当前问题提出新的想法。

In a nutshell we happily tinkered our way forward.

简而言之,我们高兴地修补了前进的道路。

What we learned on the way is that information flows much more informal and faster when you’re on-site. It’s very easy to feel disconnected as a remote colleague, when the rest of the team is working on-site. While you could carve out the work so that it can be done in isolation from the team, we didn’t want to go down that path. We wanted him to continue to be an integral part of our daily work, not an appendix.

我们从此过程中学到的是,当您在现场时,信息的流动更加非正式和快捷。 当团队的其他成员在现场工作时,很容易感到与远程同事断开连接。 尽管您可以完成工作,以便可以与团队隔离地完成工作,但我们不想走这条路。 我们希望他继续成为我们日常工作不可或缺的一部分,而不是附录。

The first thing we did is making all our agile ceremonies (stand-ups, retrospectives, etc.) more remote-friendly. This mostly meant switching away from stickies and whiteboards to online-counterparts. We invested more in our JIRA setup, used Fun Retro for retrospectives and introduced a big TV / camera setup into the team space.

我们要做的第一件事是使我们所有的敏捷仪式(站立,回顾等)变得更加友好。 这主要意味着要从即时贴和白板转换为在线交易平台。 我们在JIRA设置上进行了更多投资,使用Fun Retro进行了回顾,并在团队空间中引入了大型电视/摄像机设置。

Next up, we made sure that every important decision and information was captured and made available in electronic form. We switched from informal exchanges to lightweight decision records and made meeting notes mandatory. While that felt like overhead at the start, very soon everyone started to appreciate the additional transparency into the team and also the ability to backtrack when a decision was made. While we started keeping ourselves informed via good old email in the early days, we soon switched to Confluence to have them in a more structured form and easier searchable.

接下来,我们确保捕获每个重要的决定和信息并以电子形式提供。 我们从非正式的交流转为轻量级的决策记录,并强制要求会议记录。 尽管开始时感觉像是开销,但很快每个人都开始欣赏团队的额外透明度以及在做出决定时能够回溯的能力。 当我们开始通过早期的旧电子邮件来保持自我通知的时候,我们很快便选择了Confluence,使它们的结构更加结构化且易于搜索。

In addition, we did put a lot of emphasis on pairing or even mob-programming on different topics in the team. So everybody slowly got used to paring via a screen sharing tool.

此外,我们确实非常重视团队中不同主题的配对甚至是暴民编程。 因此,每个人都逐渐习惯于通过屏幕共享工具进行配对。

Then something interesting happened. The video calls stayed sometimes open for the whole day, even though the onsite colleagues and our remote colleague weren’t necessarily pairing. This remote person had become a natural extension to the team and VC was our magic mirror into the respective worlds. It became also the place for a lot of our kitchen type of discussions.

然后发生了一些有趣的事情。 即使现场同事和我们的远程同事不一定配对,视频通话有时仍会整天开放。 这个遥远的人已经成为团队的自然延伸,而VC是我们进入各个领域的魔镜。 它也成为了我们很多厨房类型讨论的地方。

Rounding this up, we deliberately took turns also working from home. Originally it was meant to as an exercise to build remote empathy. The idea was that everybody should experience first hand the situation our remote colleague is in, to make him or her more conscious and aware of the challenges. This was a big AHA moment for many of us in the team, since we realised at some point that it doesn’t really matter so much where we physically are and that we could also produce great results when the team is not co-located.

总结一下,我们特意轮流在家工作。 最初,这是为了建立远程共情的练习。 这个想法是,每个人都应该亲身体验我们远程同事所处的状况,以使他或她更加意识到和意识到挑战。 对于我们团队中的许多人而言,这是一个重要的AHA时刻,因为我们意识到在某个时候,身体上的位置并没有多大关系,而且当团队不在同一地点时,我们也可以产生出色的结果。

That was back then. For more than two years we iterated progressively on this setup and moved and more into a remote(-ish) direction.

那是那时。 在两年多的时间里,我们逐步迭代了此设置,并将其移向一个遥远的(-ish)方向。

And then COVID-19 came. We thought we were well prepared …

然后COVID-19出现了。 我们认为我们已经做好了准备……

2020年3月,我们都离开了办公室 (In March 2020 we all left the office)

From then on everybody was working remotely.

从那时起,每个人都在远程工作。

异步调用案例_异步案例研究
Our now deserted office space
我们现在废弃的办公空间

We expected the transition to be rather smooth, but it wasn’t. The devil is always in the details.

我们期望过渡会相当顺利,但事实并非如此。 魔鬼总是存在于细节中。

  • For one thing, we had never been completely remote with the whole team. Some of us always stayed on-site.

    一方面,我们从未与整个团队完全遥不可及。 我们中有些人总是呆在现场。
  • We also didn’t stay remote for longer than a few days individually (except our member in Augsburg obviously).

    我们也没有单独待在远端超过几天(显然除了我们在奥格斯堡的成员)。
  • Until that point the rest of the company also was largely on-site oriented (even though we have other office locations and are used to having messenger chats and video calls)

    在那之前,公司的其他部门也基本上都是以现场为导向的(即使我们在其他办公地点,也习惯于进行Messenger聊天和视频通话)
  • Lastly and this is probably the biggest issue: Our views on communication were largely primed around a synchronous style of communication, the kind that you typically have on-site, but this style doesn’t scale well in a remote environment (as I try to explain later).

    最后,这可能是最大的问题:我们对交流的看法主要是围绕同步交流方式提出的,这种交流方式通常是您在现场使用的,但是这种方式在远程环境中无法很好地扩展(因为我尝试稍后解释)。

A lot of obvious things in retrospect, but more often than not, you don’t really see these kind of things when you’re in the field.

回想起来,有很多显而易见的事情,但通常来说,在野外时,您并没有真正看到这些事情。

The first weeks were plagued with technical issues. On the company side the v*n and bandwidth needed to be scaled up to match the demands of the full workforce working online. On the team side, some members only had a very slow internet connection at home or didn’t have a working room or even a working desk to begin with.

前几周困扰着技术问题。 在公司方面,需要扩展v*n和带宽,以适应整个在线工作人员的需求。 在团队方面,有些成员在家中只有很慢的Internet连接,或者根本没有工作室,甚至没有办公桌。

While the infrastructure issues on the company side were almost all fixed within roughly one to two weeks, it took us longer to improve the individual working setup, but within the first month we had most of the things sorted out and everyone could join a video call when necessary.

虽然公司方面的基础设施问题几乎都在一到两周内得到解决,但我们花了更长的时间来改善个人的工作环境,但是在第一个月内,我们整理了大部分事情,每个人都可以加入视频通话必要时。

但是…… (However …)

Interesting things happen when a messaging tool like Slack or Teams become the standard means to communicate with each other in a company. I think it boils down to basic human preferences to stick with what we know and then trying to preserve this in a new environment, while at the same time exploring the boundaries of this new environment.

当像SlackTeams这样的消息传递工具成为公司中彼此通信的标准方法时,就会发生有趣的事情。 我认为可以归结为人类的基本偏好,即坚持我们所知道的,然后试图将其保存在新的环境中,同时探索这种新环境的边界。

What we observed in a nutshell is that a lot of teams (us included) tried to continue business as usual. Meetings became online meetings or video conferences. However they became much more frequent, because in general you have much more informal syncs outside of normal meetings than you are typically aware. You know the kind of interactions where two or three people quickly put their heads together and immediately dissolve afterwards. Also engineering managers had to adjust to a new world, where they didn’t see everyone in the team space anymore, which at least for some creates a sense of unease that they tried to mitigated by — you guessed it — more online meetings.

简而言之,我们观察到许多团队(包括我们在内)试图继续照常营业。 会议变成了在线会议或视频会议。 但是,它们变得更加频繁,因为通常来说,在正常会议之外,您进行的非正式同步处理比您通常所知道的要多得多。 您知道两种或三种人Swift集中头脑并随后立即消散的那种互动。 此外,工程经理还必须适应新的世界,他们再也看不到团队空间中的每个人,至少对于某些人而言,这产生了一种不安感,他们试图通过增加在线会议来缓解(您猜对了)。

At the same time the messaging tool started to become the wild west. When everybody is still figuring things out AND the rules of engagement are still unclear AND writing a message to someone or even calling someone without upfront notice is very, very easy to do, it’s bound to happen. Even worse, when someone immediately answers an expectation is silently formed: That it’s ok to ping everyone at any point in time and that you can expect a fast answer.

同时,消息传递工具开始普及。 当每个人仍在弄清楚事情的情况,交往的规则仍然不明确,并且向某人写消息甚至打电话给某人而没有事先通知时,这非常非常容易做到,这势必会发生。 甚至更糟的是,当有人立即回答期望时,默默地形成了:在任何时间点对所有人进行ping是可以的,并且您可以期望得到快速的回答。

This is pretty much the perfect storm for team performance. We humans have a very hard time with constant context switches and interruptions. Especially cognitive demanding work, requires uninterrupted slices of work. But the silent social contract has already been kinda established, that everyone can be contacted at any point and can answer as soon as possible. Unregulated messaging amplifies undesired interaction models. So if you’re in company where people just strolled by to your desk to talk with you without upfront notice, expect this behaviour tends to get more frequent in the messenger-backed working world.

这几乎是团队绩效的完美风暴。 我们人类在不断地进行上下文切换和中断的过程中非常艰难。 尤其是对认知的要求很高的工作,需要不间断的工作。 但是,已经建立了无声的社会契约,可以随时与每个人联系并尽快做出答复。 不受管制的消息传递会放大不需要的交互模型。 因此,如果您所在的公司只是人们闲逛到您的办公桌前与您交谈而没有事先通知,那么在信使支持的工作环境中,这种行为会变得更加频繁。

But it doesn’t end here, we came in the team to the conclusion that online meetings with a more than 3 people aren’t the same as presence meetings. There’s just too much to be missed in terms of visual and audio cues. Usually you only see the speaking person and depending on the tool you use, you can’t even see everyone in the team at the same time. Worse, online meetings really start to degrade when you don’t have a good meeting code of conduct, meaning when people start interrupting each other and the speaker camera jumps from person to person. We haven’t even talked about connection losses, audio delay, etc.

但这还不止于此,我们进入团队的结论是,与3人以上的在线会议与在场会议并不相同。 在视觉和音频提示方面,有太多东西值得错过。 通常,您只会看到发言人,而且根据您使用的工具,您甚至无法同时看到团队中的每个人。 更糟糕的是,如果您没有良好的会议行为守则,那么在线会议确实会开始退化,这意味着人们开始互相打扰并且扬声器摄像头在人与人之间跳跃。 我们甚至都没有谈论连接丢失,音频延迟等问题。

What was previously a meeting typically full with energy, easily can become a burden in this setup.

以前通常充满活力的会议很容易成为这种设置的负担。

那么该怎么办呢? (So what to do about it?)

From my point of view, you can easily break down what we did into 3 different stages.

从我的角度来看,您可以轻松地将我们的工作分解为3个不同的阶段。

These stages are:

这些阶段是:

  1. Taming the messaging tool (or reducing the load of notifications that colleagues face, while setting clear expectations)

    驯服消息传递工具(或减少同事面对的通知的负载,同时设定明确的期望)

  2. Introducing asynchronous collaboration in existing ceremonies (for instance rethink how stand-ups, design discussions etc. could be done asynchronously)

    在现有仪式中引入异步协作(例如,重新考虑如何异步进行站台,设计讨论等)

  3. Switching the default mode of the team to mostly asynchronous communication (and be very explicit on when to use synchronous communication)

    将团队的默认模式切换为大多数异步通信(并且明确何时使用同步通信)

Please note that this is not meant as a guide, recipe or how-to. These ideas worked for us, but they are context dependent and might or might not work in your organisation. At best try to view them as invitations for experiments on your side, in case you find them interesting.

请注意,这并不作为指南,食谱或操作方法。 这些想法对我们有用,但它们取决于上下文,并且在您的组织中可能有用也可能无效。 最好尝试将它们视为您身边的实验邀请,以防您发现它们有趣。

阶段1:驯服消息传递工具 (Stage 1: Taming the messaging tool)

The first thing we tried to wrap our heads around is how we could make better use of messaging internally, lowering the amount of notifications and making it more useful to all team members.

我们试图绕开头脑的第一件事是如何在内部更好地利用消息传递,减少通知的数量,并使之对所有团队成员更有用。

We use Slack at our company, but I guess the same challenges and solutions also arise in other tools like MS Teams.

我们在公司使用Slack ,但是我猜想在MS Teams等其他工具中也会遇到同样的挑战和解决方案。

Back in March 2020 we had a single private channel for our team, as well as multiple topic specific public channels. In the private one we happily @mentioned our colleagues, without thinking too much about it. Pretty much the equivalent of just asking over the monitor to one of your colleagues.

早在2020年3月,我们为团队提供了一个私人频道,以及多个主题特定的公共频道。 在私下里,我们很高兴地提到了我们的同事,却没有考虑太多。 几乎等同于将显示器问给您的一位同事。

We also posted nice-to-know updates, things we found funny and all sorts of other topics that weren’t necessarily interesting to all parts of the team. Especially gif-integrations have the tendency to get out of hand quickly (I’ve been guilty of that myself). Some of us felt, that they were drowning in notifications and started to mute all of them to get some rest. That’s not the place to be, if messaging place such an important communication role in your team.

我们还发布了令人耳目一新的更新,发现有趣的事情以及各种其他主题,这些主题对于团队的所有成员而言不一定都是有趣的。 尤其是gif集成易于Swift失控(我一直对此感到内gui)。 我们中的一些人感到,他们淹没在通知中,并开始使所有人静音以获取休息。 如果消息传递在您的团队中扮演了如此重要的沟通角色,那不是地方。

As a result we decided to split our private channel and introduced a new one called hangout, strictly for more social stuff. The idea was that we reduce the frequency of messages in the work related one, while the new one has no restrictions what so ever what kind of discussion is possible there. So the equivalent of the typical water-cooler talks you often have in the office.

因此,我们决定拆分我们的私人频道,并引入了一个名为hangout的新频道,严格来说是为了提供更多社交内容。 我们的想法是,我们减少与工作相关的消息的发送频率,而新消息则没有任何限制,因此在那里可以进行什么样的讨论。 因此,这相当于您在办公室经常进行的典型的水冷式通话。

At the same time we set the expectation that it’s totally fine to mute the hangout channel and no answer should be expected there. Who wants to join can chime in at their preferred time; who doesn’t, stays focussed on whatever he or she is doing.

同时,我们期望将视频群聊通道设为静音是完全可以的,并且那里没有人期待任何答案。 想要加入的人可以在自己喜欢的时间加入; 谁不做,就专注于他或她在做什么。

We also agreed that our internal team channel (the strictly work related one) never gets fully muted. What does “fully muted” mean here? Even in the work related channel, you have discussions where it’s totally fine to chime out and ignore new incoming messages for an ongoing discussion. This is where threads in Slack shine. They allow bundling messages together and can be selectively muted. Another rule of thumb was introduced: Structure communication by threads AND that it’s fine to mute a thread, if someone felt he can’t contribute to the discussion in that particular thread.

我们还同意,我们的内部团队渠道(与工作密切相关的渠道)永远不会完全静音。 “完全静音”在这里是什么意思? 即使在与工作相关的频道中,您也可以进行讨论,在其中进行讨论并忽略新传入的消息完全可以。 这是Slack中的线程闪耀的地方。 它们允许将消息捆绑在一起,并且可以有选择地静音。 引入了另一条经验法则:通过线程进行结构通信,并且如果有人认为他无法在该特定线程中进行讨论,则可以静音该线程。

What naturally came next following one of our March retrospectives was the first discussion about the expectations around @mentions in our work related channel. That you can easily ping people in modern messaging tools, doesn’t always mean that you should. And even if you’re inside a strictly work related channel, this doesn’t necessarily mean that all content posted there is urgent and has to be reacted on immediately.

在我们三月份的一次回顾之后,接下来自然是关于工作相关频道中有关@mentions的期望的第一次讨论。 您可以轻松地在现代消息工具中对其他人执行ping操作,但这并不总是意味着您应该这样做。 即使您在与工作相关的严格渠道内,也不一定意味着发布在该渠道上的所有内容都是紧急的,必须立即做出React。

Back then we answered this with a single “rule of of thumb” (instead of a formalised protocol): Before hitting enter, be certain that you do want people to be aware and react immediately. When this is true, use @mentions. Otherwise delete the “@” from the message.

那时,我们用一个“经验法则”(而不是正式的协议)回答了这个问题:在按Enter键之前,请确保您确实希望人们意识到并立即做出React。 如果是这样,请使用@mentions。 否则,从消息中删除“ @”。

Some of us started to be very explicit in their messages themselves about their expectations on reactions:

我们中的一些人开始在自己对自己对React的期望的信息中非常明确:

  • For instance messages starting with FYI are simply that, for your information. No reaction necessary (but discussions are possible in the accompanying thread)

    例如,以FYI开头的消息就是为了供您参考。 无需做出React(但可以在随附的主题中进行讨论)

  • Others started with Input needed on … until … to give the asynchronous exchange guardrails through a due date.

    其他人从Input needed on … until …开始Input needed on … until …通过截止日期提供异步交换防护栏。

But it also works into the opposite direction. In our public channels, the ones where we provide support to other teams in our company, we very early started to use emoticons to indicate feedback. So for instance

但这也朝相反的方向发展。 在我们向公司其他团队提供支持的公共渠道中,我们很早就开始使用表情符号来表示反馈。 例如

  • when an external request was actively looked at we gave them the ???? emoticon,

    当积极考虑外部请求时,我们给了他们表情符号,
  • when we were working on something else, we gave it the ???? icon

    当我们在做其他事情时,我们给它????图标
  • when the question had been answered, we gave it a simple ✔️

    当问题被回答后,我们给了它一个简单的✔️

This is how it looks like in practice

这是实际的样子

异步调用案例_异步案例研究

We also came up with some small rules of engagement in online meetings that helped making the meetings more scalable. For one thing, we tried to not interrupt the speaker anymore but instead signal to the speaker that we have something to say by the ✋ emoticon. Or we would signal agreement or disagreement through ???? and ????. Pretty tiny things if you think about it, but they tremendously help when you have online meetings with more than three people.

我们还提出了一些参与在线会议的小规则,这有助于使会议更具可扩展性。 一方面,我们试图不再打扰说话者,而是向说话者发信号说我们的表情符号有话要说 否则我们会通过????和signal表示同意或不同意。 如果您考虑一下,这将是很小的事情,但是当您与三个以上的人进行在线会议时,它们将极大地帮助您。

We didn’t see it back then, but slowly and continuously, this establishes a communication protocol. The interesting point here is that we became more aware how we wanted to use messaging and online meeting tools, the more concise our usage became.

那时我们还没有看到它,但是缓慢而持续地建立了一个通信协议。 这里有趣的一点是,我们的使用变得越简洁,我们就越意识到我们想如何使用消息传递和在线会议工具。

阶段2:在现有仪式中引入异步协作 (Stage 2: Introducing asynchronous collaboration in existing ceremonies)

After working some weeks in this mode, we realised that the stand-ups felt a bit unnatural in this environment. I mentioned earlier that we also had some technical pain in the earlier weeks after the lockdown that might have pushed us into the direction we eventually took, but I believe we would have ended where we are now even if we didn’t have the technical problems in the early stages.

在这种模式下工作了几周后,我们意识到在这种环境下站立起来感觉有点不自然。 我之前提到,锁定后的前几周我们也遇到了一些技术难题,这可能使我们朝着最终的方向前进,但我相信即使我们没有技术问题,我们也将以现在的状态结束在早期阶段。

Riding on the wave of the first successful changes to how we use messaging, we decided to try to be a bit more radical and run an experiment for a month: We replaced synchronous stand-ups with a diary format automated by a scheduled task in Slack.

在第一次成功改变消息传递方式的浪潮中,我们决定变得更加激进,并进行了一个月的实验:我们用Slack中的计划任务自动将日记本格式的同步站起来了。

One of the core ideas here was that it doesn’t really matter how and when progress is reported. Some of us do it at the end of their day, others do it in the morning. What matters is that the information is eventually there and everybody is aware what’s going on. This is how it looked in practice (details blurred for obvious reasons).

这里的核心思想之一是,报告进度如何以及何时报告并不重要。 我们中的一些人在一天结束时这样做,其他人则在早晨这样做。 重要的是信息最终将存在,并且每个人都知道发生了什么。 这是它在实践中的外观(出于明显的原因,细节变得模糊)。

异步调用案例_异步案例研究
Stand-ups as a Slack thread
站立作为松弛线程

The first month of using this new stand-up form went by and falling back to our good old habits we did a quick evaluation online meeting to decide how to continue with this. Two interesting findings from that meeting

使用这种新站立表格的第一个月过去了,回到了我们良好的旧习惯,我们进行了一次在线评估快速会议,以决定如何继续进行。 那次会议的两个有趣发现

  1. The team unanimously wanted to continue the async standup

    团队一致希望继续异步站立
  2. At the same time the team realised that there was also another element to daily stand-ups they had not considered before and that was now missing: The social component of just hearing and seeing each other in person every once in a while.

    同时,团队意识到,他们以前从未考虑过的日常站立活动中还有另一个要素,而现在却不见了:只是偶尔听见和见面的社交成分。

So we did decide to ditch the old fashioned way to do stand-ups.

因此,我们确实决定放弃老式的站立姿势。

To compensate for the social aspects, the team proposed another experiment: Having a daily 15–30m coffee break together (as an online video meeting).

为了补偿社交方面的影响,研究小组提出了另一项实验:每天有15-30m的咖啡休息时间(作为在线视频会议)。

That experiment failed.

该实验失败了。

We ran it for some weeks but ultimately we never got it to a point where everyone found it useful enough to continue the practice. Scheduling was an issue (e.g. finding a slot where all team members could potentially join). Optionality could have also been part of the problem (We didn’t want to make the meeting mandatory and wanted the team to join when the felt like they wanted to). In the end the meeting was often skipped or only a few people were there frequently and we decided to end that experiment before the month was over.

我们将其运行了几个星期,但最终我们没有达到每个人都认为它足以继续进行练习的地步。 安排是一个问题(例如,找到所有团队成员都可以参加的位置)。 选择性也可能是问题的一部分(我们不想强制会议,而是希望团队在他们愿意时加入)。 最后,会议经常被跳过,或者经常只有很少的人在那里,我们决定在该月结束之前结束该实验。

We did eventually find a way and frequency that fits our team and an asynchronous work model, but in order to explain how we got there, I have to introduce another thing first: RFCs

我们最终确实找到了适合我们团队和异步工作模型的方式和频率,但是为了解释我们如何到达那里,我必须首先介绍另一件事: RFC

After the first foray into asynchronous work modes, we decided to take another bet: Taking the way we change our work (environment) asynchronous.

在首次尝试异步工作模式之后,我们决定下一个赌注:采用我们异步更改工作(环境)的方式。

Previously we did it mostly in meetings. We realised that looking outwards there was already a pretty good, proven model out there for doing the same asynchronously: Request for Comments, which is basically the way the internet and many successful open source projects are evolved in a collaborative, asynchronous fashion.

以前,我们主要在会议中这样做。 我们意识到,向外看,已经有一个很好的,经过验证的模型可以异步执行相同的操作: Request for Comments ,基本上是Internet和许多成功的开源项目以协作,异步方式发展的方式。

We searched a bit for blueprints and ultimately ended up copying and adjusting the Github based setup from the Rust programming language.

我们搜索了一些蓝图,最终最终从Rust编程语言复制并调整了基于Github的设置。

This is how ours looks like.

这就是我们的样子。

异步调用案例_异步案例研究
Our Github repository for running and documenting RFCs
我们的Github存储库,用于运行和记录RFC

It enables anyone in the teams to asynchronously propose a change to the way we run things in the form of a Github pull request. The standardised format and lifecycle ensures that our team members really think their idea through (motivation, proposal, drawbacks, open questions, etc.).

它使团队中的任何人都可以以Github拉取请求的形式异步地提出对我们运行事物的方式的更改。 标准化的格式和生命周期可确保我们的团队成员真正地通过想法(动机,建议,缺点,未解决的问题等)来思考他们的想法。

Soon after the repository was created, the pull requests came in. One of the first being one that brought back a part of the standup, albeit in a revised form.

创建存储库后不久,便发出了拉取请求。第一个请求是拉回部分站立状态的请求,尽管它是经过修改的形式。

异步调用案例_异步案例研究
A merged RFC
合并的RFC

In a nutshell the team decided that it wanted to have a good old look together at our JIRA board once a week in the form of an online meeting. It’s a meeting that we’re now doing there, that you don’t find in this form in a standard agile playbook. It’s a bit like an internal review:

简而言之,团队决定希望通过在线会议的形式每周一次在我们的JIRA董事会上有一个很好的旧外观。 这是我们现在正在那里举行的一次会议,您在标准的敏捷手册中找不到这种形式的会议。 这有点像内部审查:

  • Every Tuesday (some members are on part time and not there on Monday) we look at our past weeks achievements together on the board and celebrate cleaning out the Done column.

    每个星期二(某些成员在兼职,而星期一不在),我们会在董事会上一起查看过去几周的成就,并庆祝清理完成列。

  • This meeting is mandatory for everyone.

    所有人都必须参加这次会议。
  • It gives us a nice spot to give some kudos to each other, give closure to some topics and also to quickly talk about pressing issues.

    它给了我们一个很好的交流的机会,互相赞扬,结束了一些话题,还快速讨论了紧迫的问题。
  • We also use this meeting to take a look together at our team KPIs (lead time, cycle times, throughput, deployment rate, flow distribution, etc.) and how they evolved.

    我们还使用这次会议来一起查看我们团队的KPI(交货时间,周期时间,吞吐量,部署率,流分布等)以及它们的演变方式。

The weekly rhythm seems to work fine for us and we consider it a good tradeoff between the old and the new ways.

每周的节奏似乎对我们来说很好,我们认为这是在新旧方法之间进行权衡的好方法。

The more we did RFCs, the more we learned also how we could do them better. One share worthy topic is giving RFCs a decision / due date.

我们做RFC的次数越多,我们就越了解到如何做得更好。 一个值得分享的话题是给RFC一个决策/到期日。

异步调用案例_异步案例研究
Merged RFCs with due-dates
合并的RFC与截止日期

We noticed that we could push a decision on how to move forward with a proposal by simply time-boxing the RFC. Before it had the tendency to linger around for quite a while. Now decisions of that kind were being made in higher frequency. (In full recursive style, the decision to apply time-boxing to all RFCs was also done by an RFC ????)

我们注意到,通过对RFC进行时间装箱,我们可以决定如何推进提案。 在此之前,它有很长一段时间徘徊的趋势。 现在,此类决策的频率更高。 (以完全递归的方式,将时间限制应用于所有RFC的决定也由RFC done完成)

There’s only one element in this stage that we introduced fairly early, which we consider quite valuable in this new setup and that is still in use by us: Weekly digests.

在此阶段,我们很早才引入了一个元素,我们认为它在新设置中非常有价值,并且仍在使用:每周摘要

Weekly digests were a first idea for the question of how to continuously keep track of progress, priorities, obstacles, new insights and information. What I started doing with my team-leads at the start of 2020, even before COVID-19 and the lockdown happened, is a curated report of a work week, a journal so to speak.

每周摘要是如何持续跟踪进度,优先事项,障碍,新见解和信息的问题的第一个主意。 从2020年初开始,甚至在COVID-19和封锁发生之前,我就开始与团队负责人进行合作,这是一份关于每周工作的精选报告,可以这么说。

异步调用案例_异步案例研究
Overview of our weekly digests in Confluence
Confluence每周摘要的概述

Having such a report is quite useful, because it allows you to backtrack information, individual and team developments over the course of the year. It builds a second brain and helps us keeping an overview over things. We team-leads mostly used this as our internal tool and didn’t bother our teams so much with this.

拥有这样的报告非常有用,因为它使您可以回溯一年中的信息,个人和团队的发展。 它建立了第二个大脑,并帮助我们保持对事物的概览。 我们的团队负责人大多将其用作内部工具,并没有因此而困扰我们的团队。

In a nutshell the report gives an overview of

简而言之,该报告概述了

  • what larger initiatives we’re currently working on

    我们目前正在开展哪些更大的计划
  • in what state they are (good old-fashioned traffic light color scheme)

    它们处于什么状态(良好的老式交通信号灯配色方案)
  • what new information is available for those topics

    这些主题有哪些新信息可用
  • what was planned for this week (and what was actually achieved)

    本周的计划(以及实际实现的)
  • our ambition for next week

    我们下周的野心
  • noticed roadblocks

    注意到的障碍
  • general updates

    一般更新

for the respective week.

每个星期。

异步调用案例_异步案例研究
An example of a weekly digest
每周摘要的示例

And of course we use Slack to remind us to write that thing

当然,我们使用Slack来提醒我们写点东西

异步调用案例_异步案例研究
Slack reminder for weekly digests
每周摘要的松弛提醒

When the lockdown happened, we took this as an opportunity for transparency, decided to move this format out into the open and share it with all of our team members. After the asynchronous stand-ups happened, the curation even became much simpler, since it allowed us to simply inspect the written standup notes and pre-fill the digest.

当锁定发生时,我们以此为透明的机会,决定将这种格式公开发布并与我们所有团队成员共享。 在异步站起来之后,策展变得更加简单,因为它使我们能够简单地检查书面的站起来笔记并预先填写摘要。

It wasn’t a decision that was thought through with all implications back then, but looking back at it today, I believe that it allowed us to kill yet another kind of dreaded meetings: Team meetings that end up being status updates. I never found those valuable as someone having to report status to my boss. It’s something that almost always can be done asynchronously.

当时并没有考虑到所有含义的决定,但是今天回头看,我相信它可以使我们杀死另一种令人恐惧的会议:最终成为状态更新的团队会议。 我从来没有发现那些有价值的人,因为他们不得不向我的老板报告身份。 这几乎总是可以异步完成的。

Also having this part externalised from team meetings allows focussing team meetings on much more useful topics, such as the social aspects or even working on strategy level topics together.

将这部分内容从团队会议中外部化也可以使团队会议集中于更有用的主题,例如社交方面,甚至可以共同处理策略级别的主题。

阶段3:将团队的默认模式切换为异步通信 (Stage 3: Switching the default mode of the team to mostly asynchronous communication)

All of these refinements change the way the team operates. Some of the changes here had a subtle effect. Others changed the foundations of how we work together. I think we can count that into the “not so subtle” category.

所有这些改进都改变了团队的运作方式。 这里的某些更改产生了微妙的影响。 其他人改变了我们合作方式的基础。 我认为我们可以将其归类为“不是那么微妙”。

What I can definitely say after the last months is that the preferences on how to do work are shifting. The results speak for themselves (taken from a recent internal survey that we did)

我可以肯定地说,过去几个月后,人们对工作方式的偏好正在发生变化。 结果不言而喻(摘自我们最近进行的内部调查)

异步调用案例_异步案例研究
Part of an internal survey about the way we work
关于我们工作方式的内部调查的一部分

You see this new world view in how our teams approach new topics, where new questions have been added to the mix ala “can we do this asynchronously?” and “what’s our mode if we try to solve this outside of meetings?”.

您会在我们的团队处理新主题的方式中看到这种新的世界观,在新主题中,新问题已添加到组合中“我们可以异步执行吗?” 和“如果我们在会议之外尝试解决此问题,我们的方式是什么?”。

New offerings we introduced in our area also follow this model (we’re not typical delivery team, but also offer in-house consulting). For instance we introduced a new format of application audits internally recently that is, you guessed it, Github-based and fully asynchronous.

我们在本地区推出的新产品也遵循这种模式(我们不是典型的交付团队,但也提供内部咨询)。 例如,我们最近在内部引入了一种新的应用程序审核格式,即基于Github的完全异步的格式。

异步调用案例_异步案例研究
Our repository for asynchronous application audits
我们用于异步应用程序审核的存储库

And the teams preference of working this way also started to sneak into other adjacent initiatives where some of our team members are involved, which is an interesting development to see.

而且,团队对以这种方式工作的偏好也开始潜入其他一些我们团队成员参与的计划中,这是一个有趣的发展。

One additional element that you can throw into the mix to improve the asynchronous work mode of your team, is being more clear and precise regarding expectations around decisions and communication around decisions. So basically who decides what and what kind of expectations exists to inform about what was decided. While this is beneficial to have in on site teams, I believe it’s a super valuable tool to have in an asynchronous work situation.

您可以添加到混合中以改善团队的异步工作模式的另一个要素是,对决策的期望和决策的沟通更加清晰和精确。 因此,基本上是由谁决定什么以及存在什么样的期望来告知已决定的。 虽然这对现场团队而言是有益的,但我认为在异步工作情况下这是一种非常有价值的工具。

We use Appelo’s Delegation Boards to be precise on communication and decision expectations. I have created a board that is explicit on expectations between me and my team-leads. Similarly they have created one for the interaction with their team.

我们使用Appelo的委派委员会来精确沟通和决策期望。 我创建了一个董事会,明确了我和团队负责人之间的期望。 同样,他们为与团队互动创建了一个。

异步调用案例_异步案例研究
One of our team delegation boards
我们的团队代表团之一

This again follows the idea to cut down unnecessary communication. You don’t have to ask, if you either already know the answer on how to proceed OR there’s a place where you can look this information up.

这再次遵循了减少不必要的通信的想法。 您不必问,是否已经知道如何进行操作的答案,或者是否有地方可以查找此信息。

我们没有切换到异步模型的地方 (What we didn’t switch to the asynchronous model)

So a lot of things have been changed in the past 6 months, but I want to highlight what we purposely didn’t move into the asynchronous model.

因此,在过去的6个月中,很多事情都发生了变化,但是我想强调一下我们故意没有纳入异步模型的内容。

We never took our 1:1s asynchronous. I think it’s more important than ever to keep in touch personally with your directs/team members in the asynchronous setup. As a team lead, you lack all the tiny interactions on the office floor. And your team members need a baseline of stability in this highly volatile, chaotic year. So if there’s one very strong recommendation, that I would like you not to forget: Cutting down on online meetings doesn’t mean abandoning face to face time with the individual team members (especially when you’re a team lead).

我们从未将1:1异步化。 我认为在异步设置中与您的指挥/团队成员保持个人联系比以往任何时候都更为重要。 作为团队负责人,您缺乏办公室地板上的所有细微互动。 在这个高度动荡,混乱的一年中,您的团队成员需要稳定的基准。 因此,如果有一个非常强烈的建议,我希望您不要忘记:减少在线会议并不意味着放弃与单个团队成员面对面的时间(尤其是当您成为团队负责人时)。

Retrospectives are still mostly synchronous. We moved the preparation of the boards and input async (you can submit in FunRetro, but not make it visible yet), but the discussion and the identification of action items is still done in a good old meeting. From our point of view, you get the most unfiltered opinion and the raw emotion about something when it’s not in written form. While we could replace this meeting technically, we don’t consider it a valuable thing to do.

回顾仍然大部分是同步的。 我们移动了董事会的准备工作,并输入了异步信息(您可以在FunRetro中提交,但尚未使其可见),但是讨论和确定行动项仍然是在一个很好的旧会议上进行的。 从我们的角度来看,如果不是书面形式的内容,您会得到最未经过滤的意见和原始情感。 尽管我们可以从技术上代替本次会议,但我们认为这不是一件有价值的事情。

Grooming or ticket preparation stays partially asynchronous. Description + acceptance criteria are prepared asynchronously ahead of the grooming meeting. The meeting itself could probably be run asynchronously, but so far we didn’t move it to an asynchronous model. Maybe the pain is not big enough here, but so far nobody heavily pushed for it being fully asynchronous.

修饰或票务准备部分保持异步。 说明和接受标准是在修饰会议之前异步准备的。 会议本身可能是异步运行的,但是到目前为止,我们还没有将其移至异步模型。 也许这里的痛苦还不够大,但是到目前为止,没有人为完全异步而大力推动。

We also make sure to have chit-chat sessions over video from time to time. Whenever we feel like it we simply open up a video chat and whoever wants to chime in is invited to do so. That’s our replacement for the coffee talks that you would have.

我们还确保不时通过视频进行聊天会话。 每当我们感到高兴时,我们只需打开视频聊天,然后邀请任何想加入的人加入。 那是我们代替您进行的咖啡洽谈。

挥之不去的问题:值得吗? (The lingering question: Is it worth it?)

There’s no straight answer to this yet, I’m afraid. I can’t present you an overwhelming success story so far. I try to give you an impression on the different observations we made.

恐怕还没有直接的答案。 到目前为止,我无法向您介绍一个压倒性的成功故事。 我试图给您一个关于我们所做的不同观察的印象。

First of all, this mode of work has a huge positive effect on employee satisfaction. The team largely agrees that we developed ourselves into a direction that matches what the team needs.

首先,这种工作方式对员工满意度产生了巨大的积极影响。 团队在很大程度上同意我们已朝着与团队需求相匹配的方向发展。

异步调用案例_异步案例研究

I already shared earlier that the team developed also a strong preference for working in this mode.

我早些时候已经分享过,团队也非常喜欢使用这种模式。

异步调用案例_异步案例研究

Did we witness productivity gains by switching into this mode? No, that’s not the case so far. The contrary actually, we see a slight dip in through-put and an increase in cycle and lead-time at the moment.

切换到该模式是否可以见证生产率的提高? 不,到目前为止,情况并非如此。 相反,实际上,我们发现吞吐量目前略有下降,并且周期和交货时间有所增加。

We judge this currently as temporary effects because the change in work mode is so significant. But they highlight that you probably shouldn’t expect immediate gains by switching into this work mode.

我们目前认为这是暂时的影响,因为工作模式的变化非常重要。 但他们强调,您可能不应该期望通过切换到这种工作模式而立即受益。

异步调用案例_异步案例研究
A typical change management curve
典型的变更管理曲线

We believe we’re currently somewhere in the dip, the typical loss of productivity when something is massively changed in a team environment. It takes time for everyone to re-adjust to the new ways of working and as somebody who is leading such a transition, I can definitely tell you that you need a bit of thick skin and patience to go through that phase. But I’m also at the same time positive that eventually the gains will come and we will cross our performance limits.

我们认为我们目前处于低谷,这是团队环境中发生重大变化时典型的生产力损失。 每个人都需要花费时间来重新适应新的工作方式,而作为领导这种过渡的人,我可以肯定地告诉您,您需要一些浓密的皮肤和耐心才能完成此阶段。 但是我同时也很乐观,最终收益会到来,我们将超越性能极限。

Here are a couple of things that make the transition to asynchronous work harder than one might initially think

有几件事使向异步工作的过渡变得比最初想象的要难

  • The ability to communicate properly in written form should not be taken for granted. It takes time to learn how to express yourself in text. Don’t forget that you don’t have all the other clues that you usually have in face or audio conversations. It’s simply harder to judge what emotions are attached to a delivered message. This usually the source for a lot of misunderstandings and communication inefficiencies. Everyone has to learn to be a bit more more explicit and precise in written form. And this takes time and practice.

    不能以书面形式正确交流的能力是理所当然的。 学习如何用文字表达自己需要花费时间。 不要忘记,您没有面对面或音频对话中通常具有的所有其他线索。 判断传递给邮件的是什么情绪简直是困难得多。 这通常是造成许多误解和沟通效率低下的根源。 每个人都必须学会以书面形式更加明确和准确。 这需要时间和实践。

  • The tendency to work in isolation seems to increase with this setup. We were coming from a mode that was using a high amount of collaboration, pairing, etc. and interestingly we saw WIP-limits starting to be ignored and people working more in parallel than before. I think that’s fairly natural effect and also highlights well that asynchronous work modes tend to work best (that is without a lot of friction) if the work itself also somehow is aligned to working in an asynchronous fashion (which is true for most success stories you read about, but not necessarily how your on-site team works). If you accept that this a consequence and you are willing to with it, you need to put extra emphasis on things being clear, concise and documented to purposefully reduce some of the interactions that would be usually resolved by talking over the monitor to some of your colleague or having a short meeting with them. However, if you want to maintain active collaboration in terms of pairing, etc. my experience is that you need to pay extra attention and work with the team to move that over into this setup. This is more what we’re currently trying to do. The gist here is: Don’t take it for granted that your collaboration mode transitions unchanged into this new environment.

    通过这种设置,孤立工作的趋势似乎有所增加。 我们来自一种使用大量协作,配对等的模式,有趣的是,我们看到WIP限制开始被忽略,人们比以前更多地并行工作。 我认为这是很自然的效果,并且很好地突显出,如果工作本身也以某种方式可以以异步方式工作(这对于大多数成功案例都是正确的),则异步工作模式往往会工作得最好(没有很多摩擦)。了解但不一定了解您的现场团队的工作方式)。 如果您接受这种后果并愿意这样做,则需要特别强调清楚,简洁和记录在案的内容,以有目的地减少通常通过与监视器交谈来解决的一些交互问题。同事或与他们短暂开会。 但是,如果您想在配对等方面保持积极的协作,我的经验是您需要格外注意并与团队合作将其转移到此设置中。 这是我们目前正在尝试做的事情。 要点是:不要将您的协作模式不变地过渡到这个新环境中是理所当然的。

  • Some colleagues need more time and help to transition to a more result oriented environment. Ultimately what happens when you move into such an environment is that everything is re-focussing a bit more on the results. This gives you a lot of freedom in how to structure your personal work day. What we observed in our environment though is that not every team member is able to do this without help on the way. The ability to structure your work and your commitments needs to be learned as well. Normally daily stand-ups and feedback in there provide some guardrails to help such colleagues along the way. These guardrails are missing if you move the stand-up into an asynchronous model (like we did). Some people, for instance past freelancers, had a far easier time than others with the new mode. Others struggled with delivering results for instance because they were working on many different topics in parallel and needed a nudge to get focus back on track. This is where 1:1s can play a good role in working with individual people to determine their challenges and needs in the work environment.

    一些同事需要更多时间并帮助过渡到更注重结果的环境。 最终,当您进入这样的环境时,将会发生的事情是一切都重新集中在结果上。 这为您在安排个人工作日方面提供了很多自由。 但是,我们在环境中观察到的是,并非每个团队成员都能在没有帮助的情况下做到这一点。 还需要学习组织工作和做出承诺的能力。 通常情况下,每天的站起来和反馈会提供一些护栏,以帮助这些同事一路走来。 如果将站立式支架移入异步模型(如我们所做的那样),则会缺少这些护栏。 有些人,例如过去的自由职业者,比使用新模式的人要容易得多。 其他人则难以交付成果,例如因为他们正在并行处理许多不同的主题,并且需要轻推才能使精力重新回到正轨。 在这里,1:1与个人在确定工作环境中的挑战和需求方面可以发挥良好的作用。

总结思想 (Closing thoughts)

There’s a lot of buzz in the media in the last months around remote work, but remote work is not without its challenges. I my opinion remote work amplifies behaviour that you could argue that is already negative in the normal office space (like strolling by to a desk unannounced to ask a question). Always on, always available are anti-patterns. You need to come up with measures against these effects, otherwise the remote environment can be very a very undesirable place to be in.

There's a lot of buzz in the media in the last months around remote work, but remote work is not without its challenges. I my opinion remote work amplifies behaviour that you could argue that is already negative in the normal office space (like strolling by to a desk unannounced to ask a question). Always on, always available are anti-patterns. You need to come up with measures against these effects, otherwise the remote environment can be very a very undesirable place to be in.

What most people call beneficial about remote work in my opinion is actually not so much about the fact that it’s remote, but rather a switch to a more asynchronous work mode. And going consciously into that mode takes significantly more effort than just slapping Slack, Teams or Zoom on top our your daily business.

What most people call beneficial about remote work in my opinion is actually not so much about the fact that it's remote, but rather a switch to a more asynchronous work mode. And going consciously into that mode takes significantly more effort than just slapping Slack, Teams or Zoom on top our your daily business.

When there’s one thing you should take from this story: Don’t believe hypes. Such changes take significant time and effort in order to be successful. We decided to go all in, and we certainly haven’t seen the results yet, but we continue to believe that we will see them in the nearer future.

When there's one thing you should take from this story: Don't believe hypes. Such changes take significant time and effort in order to be successful. We decided to go all in, and we certainly haven't seen the results yet, but we continue to believe that we will see them in the nearer future.

We will report back to you at a later point in time whether that was a naive belief. Stay tuned and thank you for reading this!

We will report back to you at a later point in time whether that was a naive belief. Stay tuned and thank you for reading this!

翻译自: https://tech.xing.com/going-async-a-case-study-b28ec0bf92e8

异步调用案例

相关文章: