写点什么

轻装上阵: 减少团队的启动时间

  • 2007-12-04
  • 本文字数:2678 字

    阅读完需:约 9 分钟

面对现实:团队的变化

在 过去的几年里,我和很多团队一起工作过,有的时间很长,有的则很短。我注意到在这些团队中,都面临一个相同的问题,即团队的成员总是在变化。通常,任何项目背后的变动都会引发这样的改变:比如员工生病或者度假,项目需求增加,出现新的项目或者仅仅是员工希望能改变当前的工作。然而像每日站立会议、结对编程等这样的敏捷实践,如果没有足够的上下文场景,就无法提供给新员工以足够有用的信息。这是因为敏捷实践并不能直接提供新团队成员的学习需要。因此我建议使用其他一些实践以便有效减少新成员的"启动时间"。

将排队论(Queuing theory)应用于团队中

在制造业中,从订货到交货这段时间基本上都会分为四部分,包括:

  • 启动(Setup)——产品等待进入运作(Run)阶段的耗时。
  • 运作(Run)——产品从待处理阶段进入处理阶段的耗时。有时会分为处理耗时和等待耗时两个部分。
  • 移动(Move)——产品转移到下一个阶段的耗时。
  • 等候(Queue)—— 产品进入下一个启动(Setup)阶段前的所有耗时。

将相同的概念应用到团队以及团队中有新的成员加入的情况时,你就能得到如下图所示的结论:

由于从订货到交货这段时间的后两部分(移动和等候时间)不会影响一个独立的项目,因此我们的关注点通常都会落到前两部分上(启动和运作时间)。对于团队的新成员来说,启动时间指的就是他能融入团队并充分发挥自己能力所花费的时间。其中,团队需要吸收并培养新人,教会他们各种技巧,直到他们可以发挥自己最大的潜力为止。为这些事情所付出的所有时间和努力,构成了启动时间。运行时间则与成员在项目中工作的效率有关。

Brook 在他的《人月神话》中非常详尽地阐释了新人加入会对项目带来的影响,尤其是已经陷入困境的项目。除了新人了解项目需要花费的时间外,书中还强调了伴随更多 人员的加入,会产生更多沟通的开销。提携培训新人还会进一步拖延项目的进度。用于与其他团队成员沟通的开销通常会延续在完整的项目过程中。综上所述,新员 工加入由此产生的总开销可以下面的图表表示:
大多数过程都致力于促进团队的通力合作,帮助降低项目运营的开销。但是它们都忽略了一件事,减少新人用于熟悉环境所需的时间——比如,新成员多快可以加入到团队中,或者团队处理成员变更的能力有多强。

敏捷实践关注运行时间,而非启动时间

"学习"对于每一种敏捷方法论都是不可分割的一部分。其中大多数都关注于短期的反馈环、进行自我反省以及强调持续改进。

但是,每个新进入项目的人在进入项目一段时间后,对学习的需求会变得大相径庭。

对于新的团队成员来说,消化信息的过程通常会带来更多的问题。像在 Scrum 站立会议上说的“我昨天做了……”这种话,会触发新人更多的问题,比如“他 们在说什么,这与我所了解的又有什么联系呢?”结对编程的效果也会有变化,如果结对的那个新人对整个项目有个大致的了解,效果会好些;但如果只是面对一个 接一个的 User Story,效果就会很差,毕竟此时窥一斑而难以见全豹。我曾经见到过,当面对大量琐碎的信息碎片,也没有一条明确的线索将它们串连到一起时,很多团队的新员工都会感到很沮丧。

新人需要学习的主要内容是关于项目的概貌(larger context)。他们要找到应该了解的知识,逐步理解领域相关的词汇表,并融入团队及其文化。项目越复杂,加入的人数越多,这个阶段就需要持续更长的时间。 了解了项目的概况之后,就要学习一些更加深入的知识了。有了概况中包含的信息,其他信息就变得更容易被接受了。每日站立会议、结对编程、测试驱动开发等这些 敏捷实践,它们提供的所有信息只有放在一个更大的场景中才会真正有用。前述的这些敏捷实践并不会直接关注团队新成员的不同的学习需求。你应该怎么做?答案 是:应用其他特定的实践来减少新团队成员的“启动时间”。

利用“提携 (onboarding) 策略”减少使用时间

下面简要地列出了一些技术,在我的团队中,新员工们发现这些有助于帮助他们掌握必要的上下文场景,来理解其他敏捷实践提供的信息:

  • 预备 Email ——在新员工加入前,给他们发一封 Email,解释一下项目的背景,这样他们在正式工作前就可以先阅读一些资料,或者锻炼并学习与项目相关的技能和知识。

  • 业务问题的大视野——开一个会,告诉新成员项目背后的价值以及驱动力。让他们一点点地熟悉领域相关的术语,并把他们的工作放在一个更大的上下文环境中。

  • 具化架构——图表可以很好地用于将琐碎的概念放到更大的概念中。以此来将讨论聚焦在汇集知识和分析这些知识如何相互关联上面。

  • 项目问题透明——坦诚地公布团队已知的需要改进的领域。要关注如何提高、并制定计划,而不是一味地看到问题有多糟糕。

  • 细小的任务——将一件庞杂的工作划分为大量细小的任务,以便新的团队成员不需要很多麻烦就能理解项目团队成员正在做些什么。确保每项任务都能在相对独立的条件下完成。

  • 互相学习——让角色相似的人们一同工作,来分享他们学到的新知识和任何可能对其他人有用的技巧。这类会议应该集中在技能的学习与共享上。

  • 从学生到老师——尝试让新成员去帮助其他的团队成员。让新成员向其他的团队成员解释概念,这样既能巩固他们所学的知识,又能提高他们的思考方法。

  • 尊重个人的差异——让学习的过程适合每个人。使用图表、文档、CRC 卡或者任何事物,帮助他们更好地构建出项目的整体图景来。

  • 放手一搏——给予每个成员以足够的空间,让他们在一个安全的环境里犯错。有些教训如果是自己学习的,印象将更加深刻。

团队成员在不同项目间轮换不再困难

敏捷实践强烈推崇“学习”,但是它们只关注减少“运行时间”,而非“启动时间”,因此对于团队的新成员来说,敏捷并不是非常有效。理解了新成员对学习的不同需求后,就可以使用一些特定的“提携策略”,直接解决问题。然后采用其他实践持续减少“启动时间”。

大多人在加入新公司时都会经历一些入职的程序。你在项目使用的那一套有多有效呢?

关于作者

Patrick Kua 是 ThoughtWorks 公司的软件开发工程师、培训导师和教练。Patrick 热情地为他所在的团队创造价值,对于那些尽情享受生活的人, Patrick 也会热情对待。他相信,如果能把喜欢的事情和事业结合到一起,就会变得更好。在过去三年半的时间里,他指导、领导并参与了很多实践敏捷的团 队。

查看英文原文 A Leaner Start: Reducing Team Setup Times - - - - - -

译者简介:韩锴, ThoughtWorks 公司的咨询师,毕业于北京工业大学。主要关注领域为 Java SE 应用、Ruby 语言、Eclipse 插件开发以及敏捷开发方法实践,参与翻译了《Java 并发编程实践》、《Ant in Action 第二版》。参与 InfoQ 中文站内容建设,请邮件至 china-editorial[at]infoq.com

2007-12-04 20:551590
用户头像

发布了 53 篇内容, 共 16.5 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

找工作不得不知道的事

熊斌

认知提升 求职

职场“35岁现象”:焦虑 or 出路?是时候说出真相了!

狂师

职场 成长 软件测试 测试 软件开发

为什么每个软件人都要懂点系统架构?

刘华Kenneth

架构 DevOps 高可用 敏捷 高并发

缓存的五种设计模式

Rayjun

缓存

记录自有意义

彭宏豪95

人生 写作 感悟 记录

如何梳理画出牛逼的、高大上的架构图?

狂师

程序员 企业架构 开发者 软件测试 软件开发

Nacos 1.1.4 与微服务的实践经验记录

itfinally

Java 微服务 nacos

我愿沉迷于学习,无法自拔(三)

孙瑜

深度思考 程序员 感悟

Java并发编程系列——锁顺序

孙苏勇

Java Java并发 并发编程 多线程

Spring中的测试类~简洁方便

程序员的时光

spring

Boyer-Moore 算法

Kenn

算法 数组 Boyer-Moore

技术人员加薪二三事

南方

管理 职场 技术管理 加薪 劈空掌

动画设计的十个原则

养牛致富带头人

设计 动画

制作Unknown Pleasures效果图的3种方法

张云金_GISer

设计 T恤 GIS 地图

KubeFATE: 用云原生技术赋能联邦学习(二)

亨利笔记

Kubernetes 云原生 k8s FATE KUBEFATE

Redis学习笔记(概述)

编程随想曲

redis

聊聊测试工程师的价值

软件测试 质量 测试工程师产出 测试的价值

20 大类,100+ 网络副业兼职平台汇总推荐

一尘观世界

程序员 自由职业 副业 赚钱

Java新技术:文字块

X.F

Java 编程语言

为AndroidApk添加系统级签名

Howe

Java android

程序员陪娃漫画系列——上学路上

孙苏勇

程序员 生活 陪伴 漫画

游戏夜读 | 2020周记(4.3-4.10)

game1night

JAVA中Base64加密与解密

Howe

Java base64 加密解密

Kafka系列第4篇:消息发送时,网络“偷偷”帮忙做的那点事儿

z小赵

kafka 推荐 实时计算

动态规划问题的思路和技巧

Kenn

算法 动态规划

Spring Cloud概述

会飞的猪

聊聊数据库原理和索引结构:1000万条数据优化后为什么能提升1500倍

牧码哥

MySQL 数据库 数据结构 性能优化 索引结构

iOS Release 版本开启调试功能

liu_liu

ios release 调试

认识数据产品经理(一 数据产品经理的细分)

马踏飞机747

大数据 数据中台 数据分析 产品经理

Dubbo 概述

会飞的猪

从Integer开始阅读JDK源码

指尖流逝

Java jdk源码

轻装上阵: 减少团队的启动时间_研发效能_Pat Kua_InfoQ精选文章