软件后台板块流程图_如何在软件开发中保持板块旋转

软件后台板块流程图

Imagine you have seven plates spinning on top of sticks in front of you. Each is precious and it’s up to you to keep them from toppling over. The last thing you want is a floor full of broken plates (unless you’re at a Greek wedding, in which case smashed plates might be the goal).

想象一下,在前面的木棍上有七个盘子在旋转。 每一个都是珍贵的,您有责任防止它们崩溃。 您想要的最后一件事是装满碎盘子的地板(除非您正在参加希腊婚礼,在这种情况下,砸碎的盘子可能是目标)。

Sometimes this is what software development can feel like. As part of the comms pod (one of the engineering pods within Xero’s platform engineering team), we own a diverse collection of products. Each has a critical role to play in the function of Xero as a whole. In this analogy, each is a spinning plate.

有时候,这就是软件开发的感觉。 作为comms pod(Xero平台工程团队中的工程Pod之一)的一部分,我们拥有各种各样的产品。 每个角色在Xero的整体功能中都起着至关重要的作用。 以此类推,每个都是旋转板。

Keeping the plates balanced should be easy, right? Just keep them spinning. But it’s not always that simple. The plates all behave differently; they are handmade and have their own quirks and imperfections. And to ensure they keep spinning, we have to keep switching our attention from one to the other, and taking the right action to ensure disaster doesn’t strike.

保持盘子平衡很容易,对吗? 只是让它们旋转。 但这并不总是那么简单。 板块的行为各不相同; 它们是手工制作的,具有自己的怪异和缺陷。 为了确保他们继续前进,我们必须不断将注意力从一个转移到另一个,并采取正确的行动以确保灾难不会发生。

The more we have to switch our attention, the greater our cognitive load. Cognitive load is how much stuff we have bouncing around in our short term ‘doing’ memory. Too much of it isn’t good, it leads to stress and mistakes — in this case, a higher chance that we’ll be distracted for a moment and the plates will come crashing down.

我们越需要转移注意力,我们的认知负担就越大。 认知负荷是我们在短期“做”记忆中反弹的东西。 太多的东西是不好的,它会导致压力和错误-在这种情况下,我们分心的机会更大,盘子会崩溃。

减轻我们的认知负担 (Reducing our cognitive load)

A year ago, the cognitive load in our team was really high. This resulted in a few mistakes that led to some inevitable breakages. Around this time, the opportunity arose for me to move from my role as Senior Engineer in the pod, to taking on the responsibility of People Lead. I saw an opportunity to reduce our cognitive load, mitigate the risk of operational failures and empower our team to do great things, so I took on the role.

一年前,我们团队的认知负担确实很高。 这导致了一些错误,导致不可避免的损坏。 大约在这段时间里,我有机会从担任吊舱高级工程师的角色转变为承担People Lead的职责。 我看到了一个机会,可以减少我们的认知负担,减轻操作失败的风险并赋予我们的团队做伟大事情的权力,因此我担任了这个角色。

Luckily, a couple of years ago I had completed the M@X 101 (Managing at Xero) course. Our facilitator referenced one of her favourite leadership books, Turn the Ship Around by former Navy captain, David Marquet, who details his experiences operating a nuclear submarine. I made a note of it and when I made the decision to pursue a leadership path, read the book. Its concepts really resonated with me and I could see how they could be applied to improve the way we develop software.

幸运的是,几年前,我已经完成了M @ X 101(在Xero进行管理)课程。 我们的协调员参考了她最喜欢的领导著作之一,前海军上尉戴维·马奎特( David Marquet)的《转船》 ,详细介绍了他操作核潜艇的经历。 我记下了它,当我决定追求领导地位时,请阅读本书。 它的概念确实引起了我的共鸣,我可以看到如何将其应用于改善我们开发软件的方式。

Marquet was trained to give orders in the traditional leadership model, which he refers to as ‘know all, tell all’. It’s where the leader knows the answers, so gives the orders. This resulted in the crew doing things because they were told to, rather than using their own instincts and skills — and everyone suffered as a result. But what Marquet did next changed everything.

Marquet受过训练,可以按照传统的领导模型下达命令,他称之为“全知,全知”。 领导者知道答案的地方,因此发出命令。 这导致工作人员做事是因为他们被告知,而不是使用自己的直觉和技能-每个人都因此而受苦。 但是,马奎特接下来所做的一切改变了一切。

He resisted telling the crew what to do, and instead allowed them to tell him how they would solve the problem. He also began injecting what he refers to as ‘deliberate action’ into everything the team did. It meant a crew member would pause and vocalise their intended action (what Marquet calls ‘signalling intent’), to try and remove the automatic mistakes that would occur from acting on muscle memory and unconscious competence.

他拒绝告诉船员该怎么做,而是允许他们告诉他他们将如何解决问题。 他还开始将他所谓的“故意行动”注入团队所做的一切。 这意味着机组人员将暂停并发声其预期的动作(Marquet称其为“信号传递意图”),以尝试消除因作用于肌肉记忆和潜意识能力而引起的自动错误。

It’s like when you change gears in a car without having to think about it. You’re aware you’re doing something, but not really thinking the process through.

就像您无需考虑在汽车中换档一样。 您知道自己正在做某事,但并未真正考虑整个过程。

I observed this ‘automatic’ behaviour when we were deploying software. Our development pipeline was smooth and fast and we were used to releasing code to production with no problems. It became part of the pod’s unconscious competence. But it also meant sometimes team members would take action without communicating what they were doing to the team, or really thinking it through. And that was a common culprit for the errors that were happening.

我在部署软件时观察到了这种“自动”行为。 我们的开发流程流畅,快速,我们习惯于将代码发布到生产中而没有任何问题。 它成为吊舱潜意识能力的一部分。 但这也意味着有时团队成员会采取行动,而没有向团队传达他们正在做的事情,也没有真正考虑到问题。 这是造成错误的常见原因。

我们如何引入信号意图 (How we introduced signalling intent)

The first step was to introduce the concept to my team. I wanted to ensure I was doing it in the right way, at the right time, so I thought back to what I had learned in another excellent leadership book, Patrick Lencioni’s The Five Dysfunctions of a Team. It describes five common team dysfunctions and uses a pyramid to show the levels — trust being at the foundation of the pyramid.

第一步是将概念引入我的团队。 我想确保自己在正确的时间以正确的方式进行操作,所以我回想起我在另一本出色的领导力著作《 Patrick Lencioni的团队的五个功能障碍》中学到的东西。 它描述了五个常见的团队功能障碍,并使用金字塔来显示级别-信任是金字塔的基础。

So I asked myself: are my people at a stage where they are open to changing the way they work? And do they trust me and each other?

所以我问自己:我的员工是否处于一个开放的阶段,可以改变工作方式? 他们彼此信任我吗?

Having regular one-on-one sessions in place with each of my people had equipped me with enough knowledge to be confident they would be open to trying something new. We had also built up mutual trust within the team, which I hoped would bring with it an openness and willingness to improve the way we communicate with each other.

与我的每个人定期进行一对一的交流,使我掌握了足够的知识,可以确信他们愿意尝试新事物。 我们还建立了团队内部的互信,我希望这会带来开放性和愿意改善我们彼此沟通的方式。

I raised my observations to the team for discussion and explained how, in my view, some recent situations could have had better outcomes if we had stopped to think and communicated our intended actions to the team. I posed the question to the team: How could the outcomes have been different if we had shared our intentions with the team, before taking action?

我向团队提出了自己的看法,以进行讨论,并解释了我的看法,如果我们停止思考并将预期的行动传达给团队,那么最近的一些情况可能会有更好的结果。 我向团队提出了一个问题:如果在采取行动之前与团队分享了我们的意图,结果会有什么不同?

更好的沟通与协作 (Better communication and collaboration)

The team was quick to grasp the concept and receptive to giving it a try. Since then, the pod has been practicing applied intent as a behaviour. Not in such a strict fashion as you may expect on a submarine. But whenever the team does a deployment or makes a change, they’ll let everyone know. In practical terms, this is usually communicated via the pod’s Slack channel.

团队很快掌握了这个概念,并愿意尝试一下。 从那时起,广告连播就开始将应用意图作为一种行为进行练习。 不像您期望的那样以严格的方式在潜艇上。 但是只要团队进行部署或进行更改,他们都会让所有人知道。 实际上,这通常是通过Pod的Slack渠道传达的。

It may seem like common sense, but it is very easy to get into a pattern of unconscious action unless you are actively taking the time to think about what it is you are about to do.

这看起来似乎是常识,但是很容易陷入无意识的行为模式,除非您积极地花时间考虑一下自己将要做什么。

In addition to helping us slow down and think about what we are doing, it has improved the way we communicate with each other. As team members began sharing their intentions, it gave others a chance to provide feedback to help mitigate any risks. This approach has also encouraged the team to think more about how they’re solving problems, rather than taking an action because they were told to.

除了帮助我们放慢脚步并思考我们在做什么之外,它还改善了彼此之间的沟通方式。 当团队成员开始分享他们的意图时,它给其他人提供了提供反馈意见以帮助减轻任何风险的机会。 这种方法还鼓励团队更多地思考如何解决问题,而不是因为被告知而采取行动。

If problems do occur, the pod dives in to resolve the issue before allowing it to become a wider problem, something that used to only happen from time to time. This means breakages happen less, which in turn helps reduce the cognitive load of the team, because we’re not dropping what we’re doing to focus on issues as they arise. Essentially, we have less plates to juggle.

如果确实发生问题,那么在允许它成为更广泛的问题之前,吊舱会全力以赴解决问题,而这种情况过去常常不时发生。 这意味着破损的发生率降低了,这反过来又有助于减轻团队的认知负担,因为我们不会放弃正在做的事情来关注出现的问题。 从本质上讲,我们可以减少争斗的机会。

Do we manage to always keep all of our plates spinning? Even with the best systems in place, accidents can happen. There are areas that we need to keep improving, and we are human after all, with our own quirks and imperfections like the plates we’re spinning. But now when something does go wrong, we’re all clued into what’s going on. This is especially helpful for people on call, so if they are brought into help with an issue, they already know the context.

我们是否设法使所有板块始终保持旋转状态? 即使安装了最好的系统,也可能发生事故。 在某些方面,我们需要不断改进,毕竟我们是人类,我们有自己的怪癖和不完善之处,例如我们正在旋转的盘子。 但是,当出现问题时,我们都可以了解发生了什么。 这对值班人员特别有用,因此,如果他们在遇到问题时得到帮助,他们已经知道背景了。

It has also helped us enjoy a much more collaborative environment. Our team engagement scores are up and everyone has a greater appreciation of the contributions of individual members towards the efforts of the team as a whole.

它还帮助我们享受了更加协作的环境。 我们的团队敬业度得分不断提高,每个人都对单个成员对整个团队的贡献做出了更大的评价。

入门实用提示 (Useful tips to get started)

For anyone interested in applying this concept within their own team, here are some tips to consider:

对于有兴趣在自己的团队中应用此概念的任何人,请考虑以下一些技巧:

  • Developing trust and rapport with your people is key, as it creates a sense of openness and willingness to communicate. If your people are hesitant to vocalise their intended action or share how they will solve the problem, then you need understand why and address that first

    与您的员工建立信任和融洽关系是关键,因为它可以营造开放感和沟通意愿。 如果您的员工不愿表达自己的预期行动或分享他们如何解决问题,那么您需要了解原因并首先解决

  • If you want to truly uplift your team, you need to gain their buy-in for the change to be adopted. Use real-life examples to show how communicating intended actions could have improved outcomes in that situation

    如果您想真正提升您的团队,则需要获得他们的支持才能采用更改。 使用现实生活中的例子来说明在这种情况下交流预期的行动可以如何改善结果

  • It’s important to be engaged, curious and observant as you tweak the approach to suit your team. Consider what channel is best for your team to signal intent, or what format best suits the kind of information you need to communicate

    在调整适合团队的方法时,保持敬业度,好奇心和观察力非常重要。 考虑哪种方式最适合您的团队传达意图,或者哪种格式最适合您需要传达的信息类型

  • I recommend reading Turn the Ship Around, which demonstrates how subtle changes in behaviours can really impact a team.

    我建议阅读“转机” ,该书演示了行为上的细微变化如何真正影响团队。

  • Another book I recommend is The Five Dysfunctions of a Team, which shows how you can overcome common causes of dysfunctions within teams

    我推荐的另一本书是《团队的五个功能障碍》 ,该书展示了如何克服团队内部功能障碍的常见原因

翻译自: https://medium.com/humans-of-xero/how-to-keep-the-plates-spinning-in-software-development-b3df0fb222fc

软件后台板块流程图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值