Logo
Section 1 / 12

人们

让我们来了解大型团队中的人的因素,以及它如何影响大型项目中的决策。

导入

人们

让我们来了解大型团队中的人的因素,以及它如何影响大型项目中的决策。

信任是责任的姐妹。
—— 亚洲谚语

概述

组建大型团队来实施系统,背后有多种原因。最常见的原因是项目范围过大,小团队难以应对。当然,某些大型项目若由小团队执行,反而可能更高效。即使项目规模庞大,采用小团队开发有时仍能更快完成(甚至效果更好),主要原因在于沟通问题在小团队中出现的概率远低于大团队。

大型团队的成因

以下是组建大型团队的一些常见原因:

  • 团队规模可能是出于政治考量。 团队人数有时反映了项目的优先级,也常体现项目管理层的重要性。仅凭这一点,就足以推动一个系统采用大型团队来实施。汤姆·德马科(Tom DeMarco)曾在 #key# OOPSLA 2001:OOPSLA 是 ACM SIGPLAN 关于面向对象编程、系统、语言与应用的会议 #key# 上讨论过这一问题。他指出:

“令人惊讶的是,一个失败但规模庞大的项目负责人,往往比一个成功但规模小的项目负责人受到更高的评价!”

  • 项目被设计得符合现有团队的规模。 有时团队已经存在,例如在一些组织中,我们常看到许多人无所事事,只等着项目启动。没有人质疑这个项目是否真的需要这么多人。相反,大家更倾向于调整项目内容,以确保所有人都有事可做。尽管对某些公司(尤其在某些国家)而言,根据团队规模调整项目可能比裁员更容易(主要受法律限制影响),但这并非普遍情况。

当然,始终值得反思为何要使用大型团队,但这并非我们的核心关注点。我们假设项目将由大型团队推进,并希望依然通过敏捷流程实现成功。当在大型团队中引入敏捷开发时,必须应对人员、团队、互动及沟通结构等方面的诸多挑战。

...
Working with a large team

团队规模至关重要

团队规模本身带来一种特殊风险——团队过大反而会成为项目进展的障碍。其中一个原因是决策质量通常会下降。例如,团队越大,越容易出现决策模糊或被推迟的情况。根本原因在于,人们在大型团队中往往倾向于逃避责任。由于团队成员众多,责任容易被分散。

...
People in team

错误的决策,胜过模糊或延迟的决策

模糊或延迟的决策会使团队陷入困惑,导致成员无法确定应朝哪个方向前进。这要么造成项目停滞——无人敢在未获指示的情况下行动;要么导致大量个人决策——每个成员都按自己认为最好的方式行事。这些个体决策常常相互矛盾,最终导致开发方向混乱,项目陷入僵局。

这两种现象都会让整个团队感到极度挫败。我们曾参与一个失败项目的重启工作。在访谈团队成员时,我们询问他们认为重启最可能陷入的陷阱是什么。有趣的是,大多数人将“缺乏明确决策”列为最大风险。

因此,尽管看似反常,但做出一个清晰但最终错误的决定,再加以修正,反而优于迟迟不做决定。错误的决定能带来学习机会;而拖延决策则不会。如果一直推迟,我们永远不知道它究竟是对还是错。但一旦做出错误决定,我们就能从其后果中吸取教训,并基于新经验纠正错误。

决策的传达与落实

做决策是一方面,另一方面是确保决策不仅被所有人知晓,而且真正被执行。一个被做出却未落实的决策,本质上等同于被推迟的决策。只有当我们真正执行并观察到结果后,才能判断决策是否正确。

尽管这些道理听起来显而易见,但类似问题却反复出现,这清楚表明:这些决策要么从未真正做出,要么没人意识到它们是问题。

...
Communicate decisions to everyone

任务职责不清与责任缺失

如前所述,大型团队中决策质量差的主要原因是对承担责任的回避。团队成员越多,就越难明确谁对哪项任务负责。这常常导致出现“职责空白区”,具体表现为:

  • 任务责任重叠: 多人对同一任务负有责任,但他们彼此并不知情。幸运的话,大家会以相同方式完成任务;不幸的话,各自为政,做法冲突。
  • 任务责任缺失: 没有人主动承担某项任务,每个人都以为是别人的责任。讽刺的是,这往往导致人人互相指责,却无人真正行动。

更糟糕的是,随着团队成员增加,这类问题的风险也随之上升,出现频率也会更高。

...
Everyone responsible for each task

敏捷性与广阔性

人员:责任