
如果您尝试在搜索引擎中找到“围攻”或“围攻”,那么搜索结果的很大一部分将与“对人的心理虐待”有关。 因此,最好立即寻找“暴民编程”。 目前(2019/02/27),Yandex的前10名结果中只有
一篇用俄语发表(而那是翻译),但是有很多英文文章。 如果您流利地看待它们,那么大多数都是理论,而不是任何实际案例的分析。 每个人都说这将帮助团队提高效率,在本地分配项目专业知识,并在人员中发展软技能。 我自己在其中一项Scrum培训中测试了围攻,坦率地说,很高兴! 与团队协商后,我们决定进行测试围攻。
在这种工作方式的优点中,我们为自己确定了价值观,例如团队内部专业知识的传播以及每个参与者的其他技能的发展。 组织了一次专门针对围攻的会议后,我们为自己设定了三个目标:首先,尝试在实践中进行围攻。 其次,要了解我们的案例中存在哪些不利因素和负面因素。 第三,确定是否将上述价值带给我们的团队。
什么是围攻
作为伍迪·祖尔(Woody Zuill)的工作作风的创始人描述如下:
很棒的人在一台计算机上同时在一处完成一项任务。
也就是说,当团队不断合作并共同应对任何任务时,Mobbing是一种工作风格。 同时,任务经历了生命周期的所有必要阶段,每个团队成员与每个人同时进行工作。 这样,整个团队就可以沉浸和理解任务。
围攻有几个作用:
- 驾驶员:坐在一个普通的工作场所,完全按照导航员的指示去做。
- 导航器:向驾驶员提供指导。 如果他不知道该怎么办,他会与暴民(车队的其他成员)进行协商,并向驾驶员广播必要的动作。
- Mob:参与开发,告诉导航员驾驶员应该做什么。
- PO(产品负责人):确切知道会发生什么。 设置团队运动的所需方向。 它可以是驱动程序和导航器。
- 主持人:监控规则的遵守情况,宣布轮班安排,提出想法。 希望有一个人担任这个角色。
围攻包括一个会话,该会话由多个周期组成,每个周期由多个班次组成。
会话-团队完成任务的一段时间。 在会话之前,选择任务并将其划分为多个阶段,并确定其目标-作为结果,需要获得什么,例如功能的增加。
更改-更改驱动程序和导航器角色之间的时间间隔。 更改通常持续15-20分钟。 轮班时间越短,速度越高,团队敬业度更高。
游戏规则
在换档期间,驾驶员坐在共享计算机上,并完全按照导航员的指示进行操作。 该团队会观察并在必要时讨论需要做什么。 导航员安排了此讨论,并向驾驶员广播了他现在到底需要做什么。 驾驶员只听导航员的指示,并且可以向他提问。 导航员可以将问题广播给团队。 主持人“停放”了已表达但由于某种原因或其他原因而未使用的想法。
在角色更改结束时,将驾驶员和导航员角色以预定顺序转移给其他人:当前导航员移至暴民,驾驶员成为导航员,而下一个人又成为暴徒的驾驶员。 当团队的每个成员拜访每个角色时,“圆圈”都会关闭,也就是说,循环结束。

围攻会议之后,我们每个人都分享了他的印象,并在此基础上得出了一些结论。 结果,我们得到了一个结果,该结果使人们了解了如何以及何时更好地使用围攻,以及它是否适合我们的团队。 我将从负面印象开始。
负数
有时,导航器的作用并不完全清楚。 例如,在某个时候,分析师可以担任这个角色,而开发人员可以成为推动者。 由于缺乏开发经验,导航员回想了该团队告诉他的内容,但并未完全理解“这意味着什么”。 结果,出现了这样的情况,即导航器根本没有任何意义来传送命令的指令,因为,首先,开发人员听到了该命令,那么为什么他需要中介? 其次,驾驶员了解如何在这种情况下采取行动,但根据角色规则,双手被绑住。
我们还注意到,如果导航员需要查看开发环境中的下一个选项卡以确定下一步,那么他需要表达这一想法并等待驾驶员切换选项卡。 当他向驾驶员表达要求时,他本人会做到这一点,每个人都“非常友善”并“请谢谢”。
困难在于我们有两个开发人员在远程工作。 首先,它增加了执行诸如“将光标切换到光标”之类的操作的时间:这样远程管理员可以在屏幕上显示某些内容,但同时不能控制鼠标。 为此,必须扩展会议控制窗口,使合适的人可以控制光标,并最小化窗口。 它并不需要很长时间,但是会分散注意力,将其从一项任务中解脱出来(刚刚开始介入),并且通常会造成干扰。 结果,每次换班后,新的导航员都必须询问上一个导航员他现在想做什么,两个人都必须记住这一点,“同步”,然后继续前进。
由于某些员工的“远程”,另一个困难是他们的邻居。 在某个时候,远程导航仪的邻居决定在整个房屋中钻孔,因此我们听到了伴随放大的各种伴随声音。 如您所知,这根本没有帮助我们。
由于我们的时间非常有限(每次围攻活动需要一个小时),因此我们的轮班时间非常短-每个班次只有5分钟(因此每个参与者都有时间至少一次拜访这个角色或那个角色)。 我认为这也强烈反映在进展中。 如前所述,会话的所有参与者仅在轮班结束时(直到结束前1-2分钟)才沉浸在任务中,并且在这短时间之后,所有人都被切换分散了注意力。 显然,您不会以这种方式做很多事情。
另一个团队希望有更多的时间“默默地”思考和讨论想法,但是频繁的轮换促使尝试用双手进行更多的研究,而不是理论上的假设。
对于一个小时的实验,我们没有采取最简单的方法:我们团队并不十分熟悉另一个项目的任务。 大多数时候,我们会弄清楚我们需要更改的那段代码通常是如何工作的。 在总共7个小时的工作中(每个团队成员1个小时),我们真的不了解该任务的执行方。
值得注意的是,整个团队从某种角度(包括测试人员)都可以看到问题的解决方案。 我们假设在将来(当我们到达适当的阶段时)这可能会对测试的客观性产生负面影响,因为我们都知道“它是如何工作的”,并且在潜意识中,我们将尝试避免瓶颈。 不幸的是,这只是一个假设。
但是我们的其他假设得到了证实。 甚至在会议开始之前,我们建议,如果在执行同一任务时遇到具有不同见解的人,那么将会有很多想法。 事情就是这样:有些开发人员建议通过集成测试来进行本地调试,而其他开发人员则建议通过完全实施应该更改的业务流程来进行本地调试。 双方都提出了令人信服的论点。 由于我们决定先尝试一种方法,因此我们摆脱了这种情况。如果在约定的时间,我们了解到该方法需要更多的人工,那么我们将使用替代方法。
事实证明,开发环境中的设置是一个绊脚石:每个开发人员都对自己的特定参数感到满意。 在这种情况下,只有一个开发环境,当然,并不是每个人都喜欢它的设置。
我们甚至犯了一个疏通错误:在轮班结束前不久,未来的司机去喝茶了。 结果,他的航海家也去了泡茶,因此我们浪费了一个时间。
如您所见,由于组织错误而产生了一些负面因素,但是,它们显示了如何做得更好以及为什么。
正面的
参与者指出,这种工作方式使通常从企业接收任务,对其进行分析和测试的人员能够深入研究直接解决这些问题的过程。 他们从另一方面看待他们的工作:任务在执行过程中经历了哪些步骤。 对于他们来说,显而易见的是,开发人员正在采取哪些措施以了解如何采用其解决方案。 因此,每个人都看到并理解任务当前正在发生什么。
对于我们中的某些人而言,显而易见的是,为什么开发人员在描述任务时经常需要进行更深入的分析,以及为什么有时乍一看就可以澄清问题,因此有时会显得有些荒唐。
无疑,这对我们每个人都是新的,宝贵的经验。 此外,这种不寻常的协作有助于增强团队精神,也就是说,它可以作为一种团队建设的方式:第一次,有人看到了对方的直接工作,在一定情况下了解了自己的想法。
结果
在讨论了彼此之间关于本次会议的反馈之后,我们得出了某些结论。
根据我们的结果,事实证明,在进行围攻时,您不应该与整个团队绝对合作,或者至少不应该一直与团队合作。 在我们的现实中,如果整个团队只从事一项任务,那么就不会与承包商进行谈判,也不会处理用户请求。 当然,您可以执行此操作直到轮班到来,但随后您需要分心,切换到每个人都在解决的任务,然后再次退出并记住在轮班之前您停止了什么。
导航员比驾驶员更有经验。 否则,当导航员试图从字面上传递驾驶员所说的话,而又没有完全理解“这意味着什么”时,结果就是电话坏了。 例如,您可以依次更改角色。 如果您无法为夫妇提供功能更强大的导航器,但是您需要教会人们不仅要根据他们的专业知识进行工作,那么我们认为,结对编程会更加有效。
我们给人的印象是,当新开发人员出现在团队中,或者团队中的某个人肯定要编程时,围攻将很有效。 然后,当与经验丰富的开发人员进行围攻时,新移民将迅速融入团队项目并了解公认的工作原理和规则。
以同样的方式,您可以完成一个团队中只有一个人拥有专门知识的任务(是的,我们有这样的人和这样的项目)才能在其余的人中传播知识。
我们假设围攻对老虎团队有益:为解决一些紧急任务而组建的团队。 但这至少可以在团队位于同一个房间并且为大多数开发人员准备好开发环境的情况下起作用。 否则,不必要的通讯因素将浪费时间。
如果一个团队刚刚组建,并且理想情况下正在与之一起组建一个新项目,那么围攻就可以很好地进行。 在这种情况下,每个参与者都将了解如何以及为何做出某些概念,体系结构和其他决策,有关该项目的知识将不平衡。
最终,需要换班的时间更长。 至少15到20分钟,而不是我们的5分钟。 您需要遵循以下规则:驾驶员只是导航员的手,没有自己的头脑。
因此,我们尝试在团队工作条件下进行围攻。 一些规则干扰了我们,一些我们误解了一些,我们犯了一些错误。 但是,我们自己思考着它是什么,是否可能以及我们是否需要以这种方式工作。 根据该实验的结果,我们没有完全接受我们自己确定为最重要的那些值。 值得考虑的是,由于轮班时间太短,我们仅尝试了一个小时的围攻,因为这些结果可能不是最可靠的。 当进行“全时”围攻时,不会出现某些问题,并且在“适应”该过程后将可以克服一些问题。 可能是,我们根本没有在这么短的时间内获得所需的价值。 要确定地知道这一点,在其他情况下值得尝试,但是这将是一个完全不同的故事。
聚苯乙烯您可以阅读并查看有关该主题的以下材料:
GOTO 2017-Mob编程:一种整体团队方法-Woody Zuill伍迪·祖尔(Woody Zuill)-暴民编程的一天Agilix咨询博客:通过围攻杀死队列并加速团队