分布是或否? 采访六个月找不到开发人员的人

团队前夕, 带领早餐 “远程团队。 “开始”我们与wemake.services的技术总监-Nikita Sobolev( sobolevn )进行了交谈 。 尽管寻找开发人员,特别是经验丰富的开发人员,是团队负责人或项目经理的噩梦,但仍然很少有人决定切换到与远程工作者一起工作。 但是,尼基塔(Nikita)几年前从根本上解决了这个问题。 怎么了 让我们弄清楚!



面试中还会出现两个:面试官(I.)和Nikita Sobolev(N.)

关于一般的工作方法和控制点数


::几乎所有团队负责人和开发经理都抱怨说,他们找不到办公室里的开发人员。 特别是在该地区。 以喀山为例。 在六个月的时间里,他们找不到自己的开发人员,但仍然坚持坐在办公室旁边的每个人。 这似乎给人一种虚幻的控制力吗?

N .:恰恰是控制的错觉。 让我们从定义远程工作开始。 在这里,我不想首先区分远程工作和非远程工作,但我需要研究一下工作本身。 在工作中,他们需要不同的东西。 从9:00到18:00坐着工作,做点事,从原则上讲,就足够了。 我称这种方法为“小时”-您来这里了,因此必须静坐。 仅此而已。 没有更多的正式要求。 尤其是狡猾的雇主可以提出一些荒谬的KPI,以最大程度地减少产品中的错误数量。 或其他废话。 然后,不少狡猾的程序员将在没有有用活动的情况下学习对其进行优化。 一切都不会改变。

第二种方法称为“结果”。 从原则上讲,当您开始检查结果时,与您来的时间,离开的时间以及所做的事情无关。 也就是说,如果对您来说重要的是,此功能在星期一有效,而在星期一它有效-原则上,其他所有内容都不会使您感兴趣。

:嗯,您了解那么应该有更多的控制点。 因为您可以等待一个月才能得到结果,然后事实证明此人没有执行任何操作。

N :是的,是的。 结果并不大。 结果很小。 当我们试图获得一个整体的结果时,我们有很多小的中间结果。 这些小小的中间结果对我们也很有价值,也很重要。 多亏了他们,我们才能看到一个清晰的过程,一个人如何从A点到达B点,他做出了哪些决定,他编写了什么代码,接下来看到了什么功能,他以什么顺序进行工作。 我们获得了完全的透明度。 原则上,对我们而言,位于远程还是不远程都无关紧要。

我们有一个项目,一个全球目标和一定的节奏,我们正在朝着这个目标迈进。 我们看到每个中间结果,我们可以控制其质量,控制其全球方向。 如您所见,远程或非远程工作在这里并不重要。 对于初次接触的人来说,远程工作并不重要。

关于人,冥想式编程和udalenka的两个主要原则


I .:我知道您的整个团队都是分散的。 看来您非常相信人,而我从另一个技术代表那里读到,他不相信人,只相信控制和时限。 在您看来,您的职位如此高,使得一个人能够独立执行任务,而无需您进行清晰,持续的指示和控制。 您如何看待:所有开发人员都能在这种模式下工作吗? 什么样的人会应付,哪些人需要持续监控?

N .:我真的很相信人。 但是有一些细微的差别。 如果有人来说他会做什么,那一刻我就会相信他。 另一件事是,以大而重要的事情来信任他是不合逻辑的。 不是因为他很坏而欺骗,而是因为它太大了,它可能包含很多困难,一个人无法体力应付,让自己,项目和我失望。 为什么要带来这种情况? 因此,主要思想是任务应该很小并且可以理解

我完全相信一个人可以理解的一个小任务,他说:“这里有一个或两个小时的任务。 您可以按照自己的意愿去做。 这是我们的完成标准,这是您的工具。” 因此,在这两个小时内,没有人碰过他,他可以自由地做任何事情。 两个小时后,他带来并说:“这是我的结果。” 或者他说:“这不可能在两个小时内完成,这就是原因。 我为未来提出了这样的解决方案。”

碰巧,习惯于在办公室工作或习惯于其他外包工作的人来找我们。 而且他们一个月内无法赚到任何钱。 只是因为他们没有遵循我们的简单规则,而是尝试在旧模式下工作。 当然,他们不会成功。 此外-他们无视我对机器人程序的建议。 是的,有问题。 因此,如果一个人是这样的典型上班族,习惯于每天召开三场会议并编写15分钟的代码,那么他可能会感到困难。 因为没有会议或其他任何干扰,所以只有代码和文档。 因此,我们正朝着无忧无虑和上下文切换的冥想编程迈进。

..:这种方案让我感到惊讶:当您给人们一些小任务时,一定有人可以看到整个项目并了解我们的前进方向。 事实证明,您的负载正在增加。 而且您必须控制这100个小任务,对不对?

N .:一个人的头部必须有一张完整的图片。 如果项目中的人不知道他们要去哪里以及为什么要做某事,他们将无法给出正常的结果。 因此无处不在:远程而不是远程-没关系。 但是,为了汇编此完整的构想,人们需要了解主题领域,需要了解业务问题,需要了解一些全球性的里程碑及其与业务任务和主题领域的联​​系。

这可以通过对文档中的操作进行详细说明来完成。 也就是说,创建一种语言,可以理解的需求,创建业务模型和场景,可以理解的图形和图表,做出的决策,用例和用户场景。 这不是说我们只需要这样的功能,不是,而是为什么需要它,谁将使用它,在这种情况下,此功能的陷阱是什么。 该文档可让您对我们的发展方向有一个完整的了解 。 我要说的更多,由于我们将所有这些小难题连接在一起,所以我们得到了这样的“任务链”,并且开发人员可以了解我们从哪里开始,我们要去哪里以及我们在哪里。

代码本身也非常重要,它不是以“这里有很多垃圾”的方式编写的。 拥有清晰的架构,清晰的规则和良好的模式。 而且代码与我们在高业务水平上所做的事情相关。 当您查看一个班级时,您已经发现这不仅仅是一个班级,而是一个负责特定业务领域的班级-“哦,有!”。 在这一点上,优秀的开发人员已经了解了他们在做什么,然后他们可以开始自己创建任务。 他们将做一小部分,然后他们理解:“啊,我们仍然需要前进。”

在这一切中,我唯一的作用就是简单地控制方向,并确保一定的适当性。

I .:我理解您的想法,即一个共同的愿景对于一个人而言,正确理解/执行任务并查看其对项目的贡献是最重要的。 但是在您的工作系统中,我看到了另外2条原则-首先,这需要非常高级的开发人员,其次,这是一个编写得很好的文档。 对不对

H :是的。 现在我们回到远程工作。 因此,为什么我们选择此选项,而不是“办公室”选项。 现在您恰好注意到了这两点是关键。

首先是强大的开发人员。 在哪里找到它们? 世界各地的强大开发人员分布不均。 在某些地方,有更强大的开发人员,而同时它们更便宜。 例如,为什么我们要与莫斯科的公司竞争,当我们的资源更有限时,莫斯科的公司可以为强大的开发商支付很多钱? 有一个很棒的地区市场,亚洲市场或非洲市场,或其他后苏联国家的市场。 那里有强大的开发人员,但价格便宜几倍。

重要的是要了解,我们不会像每个人通常那样将廉价开发人员的时间浪费在昂贵的开发人员身上。 我们力求以同样的价格找到最好的。 而且我们提供了透明的付款系统 。 赚了多少-收到了多少。 由于本地市场的原因,公司在与好的开发人员方面存在问题,但我们没有。

第二点是文档。 好的文档只能在需要时才能编写。 因为如果它是从棍子下面写的而不被查看,更新,那么它很快就会变坏。 好的文档,例如在开源项目中,它是如何编写的? 她是人们学习和利用此开源项目的唯一途径。 如果人们发现文档中没有某些内容,他们会创建一个任务并说:“您的文档中没有某些内容。” 您说:“哦,我现在修复它。” 如果一个人坐在他旁边,他只会问你:“这时应该做什么?” 而你被迫回答他。 而且在此过程中,文档将不是很好。 为了使文档更好,人们需要保持距离并且不能直接沟通。

关于薪酬制度和团队建设


I 。:有趣的是,事实证明,当人们与人相距遥远时,因为他们可以阅读文档,所以更容易参与项目,并且在办公室里他们必须寻找谁开始编写的,这本书的来历是什么,意味着什么?

N .:是的,这对他们来说变得更加容易,因为远程工作的整个过程都基于新人的到来。 有两个工作选项:自动化和文档编制。 许多事情更容易实现自动化:例如,部署。 而且如何工作更容易在文本或图形中描述。

在办公室工作的团队中,在我看来这是不可能实现的。 我经常听到您需要为此花费很多时间,如果您坐在附近,那么您的工作速度会更快。 如果这是一个短暂的冲刺,并且您需要在一周内制作某些应用程序的原型,则面对面工作可能会更快。 但是,如果我们谈论的是一个持续数年的项目,那么它将非常迅速地批判性地积累所有已知问题。 一段时间后,将无法使用它。 这是我看到的所有软件的问题,这些软件是用传统模型编写的。

I 。:当您转向与分布式团队合作时,您有什么恐惧和偏见? 还是不是?

N .:自然会有恐惧,我们在异地工作的第一批员工是按照旧系统(即工资)工作的。 当您支付薪水时,您不在乎。 因为您想在一个人卖给您的时间内充分利用自己的时间。 然后,我有很多疑问和偏见。 而且根本没有控制权。 我很快意识到,以这种格式,远程工作无效。

结果,我们减少了该实验。 现在,我对办公室颇有偏见。

有人希望我在地球上某个特定位置的某个地方,限制了我的行动自由。 他还希望我将所有时间都花在他身上,从而限制了我的活动自由。 对于许多人来说,这种选择似乎很正常,这很奇怪。

显然,总有义务。 但就我而言,这些义务与结果有关。 也就是说,在这一刻,我必须这样做。 在办公室工作中,我有义务每天去办公室。 从上面,他们提出了一些其他要求,我可以巧妙地推迟这些要求。

答案是如此复杂。 如果您出于某种原因付款,则远程团队会陷入困境。 因为您根本无法控制任何东西。 而且,如果一切都正确完成,那么与现在相比,远程团队将是下一层劳动力组织。

图片

I 。:从您的角度看,正确构造的远程工作是什么样的? 某个开发人员准备在远程站点上工作,接下来会发生什么?

N .:对于开发人员来说,这是一个很好的例子。 这是一种开源现象。 开源-数百万开发人员可以远程自组织,没有人真正提供帮助。 他们做着全世界都在使用的令人敬畏的事情。

良好的远程工作看起来完全一样。 开源中的任何通信如何开始? 开发人员创建任务,说:“有些事情对我不起作用”,“我不理解文档”或“我想要新功能”。 您了解需要做些什么才能使他满意。 接下来是讨论,一些澄清的问题,也许这个任务胜过几个任务。 然后发送一个代码,关闭这些小部分。 通过测试和短绒棉签检查代码,然后进行审核。 然后将发布一个新版本。 实际上,仅此而已。

现在需要围绕项目进行整个人为创建的世界,这些世界来自“我们有15位团队负责人,6位项目经理和2位Scrum管理员”类别,以便用相同的资金挤出更多的人。 因为没有人能以所有重要和可控的方式检查结果。 专注于结果,没有它们一切都会起作用。

::您认为有采用这种模式的安全方法吗? 想象一下,办公室里有一个团队,有团队领导,有产品,分析等等。 他们严重缺乏开发人员,或者他们永久存在缺陷,或者截止日期临近。 在某个时候,他们得出结论,一个人不能那样生活。

N .:我会解释,我本人并没有处于安全过渡的境地。 而且我不知道会逐渐转换为该选项的公司。 我经历了一次非常痛苦的经历。 由于我们以旧的方式工作,所以我们有一个很大的钱孔,而且一切都变糟了。 我不得不解雇我们那一刻所有的人,实际上是重新开始。 一方面,这一刻非常困难,痛苦,而另一方面却非常简单,因为我不需要一路进行转换。 我刚刚切碎,然后重新开始。

:许多经理认为团队是他们的主要价值。 然后你解雇了所有人。 现在您是否认为在世界不同地区为您服务的人是一个团队?

N .:当然不会。 我通常反对在营业中使用“团队”一词。 我相信一个团队真的是独一无二的。 传统上,现在市场上最多只有一个团队。 在我们的案例中,它甚至不是团队,而是一群共同创造一个项目并赚钱的人。 他们不是不是团队的人,甚至都不是熟悉的人。 基本上,现在“团队”一词被用作对人的另一种操纵。

::有趣。 在管理分布式团队时,感觉就像一半的文章和演讲一样,涉及如何在不同时区召集该团队,讲不同语言以及如何使交互有效。 这对您来说是一个问题吗?

N :不值得。 此外,我反对人们强行集会这一事实。 我相信有这么多人跨越国界。 有工作的前沿,有个人生活的前沿。 在工作中,我准备与其他人交流。 因为这是工作,所以我并不总是选择与谁交流。 这是必要的-这意味着有必要。 但是,当人们开始与别人强行推我的鼻子时,我不想在工作以外进行交流,例如“和他们在一起”。 为什么突然呢? 我有我自己的朋友,我有自己的家人,为什么我要花时间弄不清楚谁,何时可以与对我重要的人聊天? 对我来说,这是完全无法理解的。

“不”,“也许”和“是”-在哪里寻找开发人员


:我是否正确理解,您只是不强加企业文化,也不强行整合您的团队,因此,人们有完全的自由选择做事,时间和与之沟通。 并给出结果,当然。

N :是的。 而且我会尽力区分我可以做的事情,因为我为此付出了钱,而我无权做,因为我只是付钱。

I .:我知道您的方法会导致很多人拒绝。 例如,在本文下面的文章中 ,有评论说您几乎是残酷的,您不会付钱给任何人,依此类推。 怎么了

N .:确实有这样的问题。 人们看到了他们想要看到的东西,以及他们曾经看到过的东西。 如果人们习惯于生活在一个被使用,欺骗,操纵和扔掉的行业中,那么他们会看到它。 如果人们习惯于在信任的氛围中生活,在优质的工作和平衡的环境中生活,他们就会看到它。 问题是,不幸的是,在我们的行业中,第一个优先于第二个。

. : , , , , , 15 ? , , …

. : , ! . , , .

. : ? , , , , - IT- ?

. : , . , . . . .

. . , . – . , YouTube, . , , . - – . – .

– . , , . , - . , , . – , .

: «» ( ), « » ( , , ) «» ( , . .). : , . , . , , . .

. : ! ?

. : . . , , .

. : , ?

. : . . .

PS , . ? !

, 2 2019 , - , : , 3 .

Source: https://habr.com/ru/post/zh-CN469417/


All Articles