几年前,我曾在欧洲托管服务提供商 Basefarm 担任服务经理。 我所在的团队负责为客户提供基础设施和托管服务支持。
我们的客户之一是瑞典最大的商业电视台 TV4。 作为我们协议的一部分,我们团队的四名工程师每月将为 TV4 投入 400 小时。 客户提出了一个简单但令人恼火的问题:他们似乎总是在等待我们实施他们想要的更改。
他们的开发团队认为我们是他们交付系统的瓶颈。 另一方面,我们的团队感到压力很大。 我们觉得我们永远无法完成任何事情,但不得不奔波于客户和项目之间,并 постоянно 救火。 没有任何增长,因为每个人都在处理不断涌入的工单。 至少可以说,没有人感到高兴。
因此,我们决定与客户的开发团队建立更协作的关系。 让我解释一下我们是如何做到的,以及我们从中吸取了什么教训。
问题
客户的大部分产品都是内部开发的。 当 TV4 想要发布新内容时,他们将新代码部署到暂存和生产环境的过程很慢。 对他们来说,交付周期太长了(尤其是在他们竞争激烈的市场中)。 他们希望快速发布更新,但在他们将代码发送给我们并创建工单请求我们将其推送到暂存或生产环境后,什么也没发生。
好吧,至少在他们看来是这样。
在我们这边,团队压力很大,并且不断受到新的优先级、请求或紧急事件的干扰。 工程师们主要是在救火,这意味着他们没有时间正确地修复或改进问题(或自己学习新事物)。 此外,由于同时进行多个项目和任务,他们进行了大量的任务切换——因此,没有任何事情能够完成。
创建真正的团队
团队成员或多或少只是坐在一起,但并没有真正一起工作,这很常见。 他们每个人都有自己的待办事项列表和工单,并且他们每个人都参与不同的项目。 我们的目标是创建一个团队,让每个人都可以在任何时间参与任何任务。 团队应该作为一个整体工作,而不仅仅是四个人在同一个房间里做自己的事情。
为了做到这一点,我们需要在任务上进行配对,以实现即时知识共享。 我们需要停止在团队成员之间划分客户。 这是开发中的一种典型做法——有些人称之为“结对”或“群体”编程——它对于运营团队也同样有效。
以下是我们是如何做到的。
我们可视化工作流程的过程
1. 写下所有任务
根据我们从书本上学到的知识以及 TV4 的建议,我们决定使用看板来帮助我们进行这种新的工作方式。 第一步是写下所有正在进行和计划中的工作。 每个人都将他们的工单和待办事项列表转移到我们物理看板上的便利贴上。 (当您这样做时,重要的是不要隐藏或淡化任何内容;在开始时将所有内容都放上去。 您可以在稍后整理其余内容。)
2. 对工作进行分类
为了更容易区分不同类型的任务,我们决定对卡片进行分类。 我们选择了以下类别
- 问题
- 改进
- 任务(包括变更请求和服务请求)
我们确定我们不会为“事件”创建卡片,因为我们认为应该立即处理这些事件。 在这些情况下,团队直接在工单系统中工作。 我们还确定所有工作都应对应于系统中已注册的工单,并且我们开始在每张卡片的顶部放置工单号。
接下来,我们将工单的标题放在卡片上,以便我们可以掌握它的内容。 更多详细信息可在工单系统中找到。
我们最初在每张卡片的左下角设置了截止日期; 但后来,我们将其更改为工单创建日期。 随着卡片开始在看板上流动,标记停滞的卡片比监控截止日期更重要。
在每张看板卡片的右下角,我们放置了客户缩写,这使我们能够快速区分我们团队正在处理的客户。 我们用红色贴纸标记了被阻止的卡片。 每位团队成员还收到了两个彩色磁铁,以指示他们当前正在处理的卡片。
3. 创建看板
在我们对工作进行分类后,创建看板的第一个迭代版本变得容易得多。 我们没有计划那么长远,因为我们意识到看板布局在初期会发生很大变化。
我们的初始设置是
- 待办事项,用于所有已识别的即将到来的工作
- 下一步,要处理的优先级卡片
- WIP(在制品),我们现在正在积极处理的工作
- 验收,要由客户验证、测试和接受的工作
- 完成,已完成的工作
现实冲击
当我们把所有的便利贴都贴在看板上后,新系统的现实真正冲击了我们。 WIP 列中有太多卡片了。 难怪我们和客户都觉得我们什么都没完成!
我们决定停止开始新项目,直到 WIP 减少到更合理的数量。 说起来容易做起来难。 客户和利益相关者想知道他们的工单以及他们新的、即将到来的(重要)工单发生了什么。 说“不”是件苦差事。 我们不得不解释说,如果我们能够完成我们已经开始的工作,最终每个人都会受益。
举行每日同步会议
对我们(和管理层)来说,最可怕的部分是我们引入的透明度级别。
我们开始与客户举行每日同步会议,以便我们可以回顾昨天完成的工作、今天的工作重点以及是否有任何事情阻碍了我们。 为了使这项工作如我们所愿,我们必须诚实地告诉 TV4 是否有事情卡在另一个部门; 团队是否因疾病、休假或类似原因而人手不足; 或者我们是否会在一段时间内忙于其他客户的工作。
这些是您通常永远不会直接告诉客户的事情,因为如果我们时间或人手不足,这实际上不是他们的问题。 但是通过开始公开谈论它,我们可以讨论替代方案或以不同的方式确定优先级,直到我们可以赶上进度。 当然,我们并不总是意见一致,但大多数情况下,我们可以处理每种情况并专注于手头最重要的任务。
处理中断
一个很大的时间窃贼——也是压力的重要原因——是中断。 它们通常来自多个来源:监控系统、事件、客户直接联系我们、客户经理冲进来加速处理某些事情、直线经理想要重新确定优先级,或其他团队成员寻求帮助。 我们知道,如果我们想要集中精力、最大限度地减少任务切换并将我们的 WIP 工单保持在合理的限制范围内,我们就需要对这些中断采取一些措施。
为了保护团队,我们决定任命某人担任“守门人”角色。 守门人将处理所有传入的事件,包括前来询问问题、尝试加速任务和讨论优先级的人员。 如果守门人自己无法解决事件,他会与团队中可以提供帮助的人员联系。 守门人不会将工单转交给其他技术人员; 他们将一起解决事件,以便守门人可以学习并在下次自行解决类似事件。 守门人角色是滚动安排,每次四小时。
但是,如果发生重大事件,我们将“拉动安灯绳”,所有人都会组队共同解决正在发生的事件。
自动化
TV4 的开发人员希望能够根据自己的意愿尽可能频繁和快速地将新版本推送到生产环境,即每天多次。 当时,标准流程(适用于所有客户)非常耗时,需要多个部门的参与。 客户必须在我们的服务台创建“变更请求”; 服务台反过来将工单传递给负责实施变更的技术团队。 工单返回到服务台,然后服务台联系客户要求验证版本。 如果一切看起来都很好,客户将打开一个新的“变更请求”以在生产环境中发布。
整个发布过程有时可能需要数周。
我们看到了许多改进的机会。 我们首先允许客户自己在暂存环境中进行发布。 这有助于我们缩短交付周期,同时致力于在最终解决方案中尽可能多地实现自动化。 结果是一个大部分自动化的流程,带有检查点,其中一个完全由客户触发。 通过这种方式,我们成功地将发布频率从每周或每两周一次提高到每天多次发布——正如客户所期望的那样。
反馈和回顾
为了评估我们的工作进展以及需要改进的地方,我们每周举行回顾会议。 这些会议是讨论哪些方面做得好、哪些方面可以改进以及我们应该停止做什么的好方法。
我们通常只与团队一起开会。 但有时,客户的代表也会参加。 我们从回顾中获得的首批见解之一是,我们发现我们忽略了一些客户。 由于每张客户卡片都进行了颜色编码和标记,因此很容易在查看一周或两周后所有已完成的卡片时发现趋势,并看到几乎所有内容都只针对一个客户。 那么下周我们就可以更多地关注其他客户。
那么进展如何呢?
整个过程并非“一帆风顺”,但我们确实有了一个良好的开端。 由于外部情况,团队在第一周经常不得不与其他项目和客户合作,因此我们只能投入 50 个小时的工作时间(而不是约定的每周 100 个小时)。
但在接下来的一周,我接到了 TV4 一位首席开发人员的电话。 我担心客户会对我们的结果不满意。
我大错特错了。
相反,他告诉我这些新的改进有多棒。 事实上,他说,这是他们成为客户以来最好的一周。
这说明了很多问题,因为他们是 Basefarm 的首批客户之一。 这向我们表明,通过专注于我们目前正在做的事情,与客户一起确定优先级,并且在我们完成正在进行的任务之前不开始新事物,我们可以用一半的时间工作,并让客户更加满意!
我们也遇到了不少挫折。 最常见的是“WIP 蔓延”。 有几次,当我们注意到卡片在看板上卡住时,人们开始感到压力。 但看起来我们应该有正常的工作量! 然后我们聚集在看板旁,要求团队的每位成员都诚实透明:我们是否正在处理看板上没有显示的任何内容? 通常,我们是——一些“仅”需要一个小时左右的小事情,但最终变得越来越大。 在我们的一次看板重置中,我们又开始将 31 张卡片算作正在进行中(远远超过了约定的 WIP 限制!)。
最终,新的工作方式向整个公司表明,我们和客户都从更好的协作中受益,并且它开始 распространяться 到其他团队,每个团队都根据自己的需求和特定客户进行调整。
本文是开放组织工作手册项目的一部分。
2 条评论