第7章 为什么巴比伦塔会失败

来源:互联网 发布:淘宝有2元东西包邮的吗 编辑:程序博客网 时间:2024/05/17 08:40

第7章 为什么巴比伦塔会失败

标签:人月神话

现在整个大地都采用一种语言,只包括为数不多的单词。在一次从东方往西方迁徙的过程中,人们发现了苏美尔地区的一处平原,并在那里定居下来。接着他们奔走相告说:“来,让我们制造砖块,并把它们烧好。”于是,他们用砖块代替石头,用沥青代替灰泥(建造房屋)。然后,他们又说:“来,让我们建造一座带有高塔的城市,这个塔将高达云宵,也将让我们声名远扬;同时,有了这个城市,我们就可以聚居在这里,再也不会分散在广阔的大地上了。”于是上帝决定下来看看人们建造的城市和高塔。看了以后,他说:“他们只是一个种族,使用一种的语言,如果他们一开始就能建造城市和高塔,那以后就没有什么难得倒他们了。来,让我们下去,在他们的语言里制造些混淆,让他们相互之间不能听懂。”这样,上帝把人们分散到世界各地,于是他们不得不停止建造那座城市。
————《创世纪》,11:1——8


    • 第7章 为什么巴比伦塔会失败
      • 巴比伦塔的管理教训
      • 大型编程项目中的交流
      • 项目工作手册
      • 大型编程项目的组织架构


巴比伦塔的管理教训

  • 据《创世纪》记载,巴比伦塔是人类继诺亚方舟之后的第二大工程壮举,同时,其也是一个彻底失败的工程。让我们来学习巴比伦塔在管理上的教训。
  • 这个项目有什么好的先决条件?

    1. 清晰的目标?是的,但目标近乎不可能
    2. 人力?非常充足
    3. 材料?丰富的泥土和柏油沥青
    4. 足够的时间?是的,没有任何时间限制的迹象
    5. 足够的技术?是的,有成熟的金字塔技术,砖石建筑技术等
  • 他们为什么还会失败?

    1. 缺乏交流
    2. 缺乏交流的结果————组织

大型编程项目中的交流

  • 现实也是如此,因为左手不知右手在做什么,所以进度缓慢、功能不合理和系统缺陷等问题纷纷出现。随着工作的进行,许多小组慢慢地修改自己程序的功能、规模和速度,他们明确或者隐含地更改了一些有效输入和输出结果用法上的约定。
  • 需要从系统角度来考虑和衡量该变化,以及公开、广泛地发布变更结果

  • 团队如何进行相互之间的交流沟通呢?

    1. 非正式途径
    2. 会议。常规项目会议,团队一个接一个进行简要的技术陈述
    3. 工作手册

项目工作手册

  1. 是什么?
     它是对项目必须产出的一系列文档进行组织的一种结构。项目所有的文档都必须是该结构的一部分。这包括目的、外观规格说明、接口说明、技术标准、内部说明和管理备忘录。

  2. 为什么?
     技术说明几乎是不可少的。第二个原因是控制信息发布。
     项目手册的第一步是对所有的备忘录编号,从而每个工作人员可以通过标题列表来检索是否有他需要的信息。(树状的也许会更好)

  3. 处理机制?(团队的规模增大以后,该如何处理项目工作手册?)

    • 工作手册的实时更新是非常关键的
    • 通过不间断的文档维护来解决
    • 微缩胶片(或其他工具作为补充)
  4. 现在如何入手?
    …………

大型编程项目的组织架构

  • 团队组织的目的是减少所需的交流和合作的数量,因此良好的团队组织是解决上述问题的关键措施。
  • 减少交流的方法是人力划分限定职责范围
  • 树状组织架构是作为权力和责任的结构而出现的。交流是通过网状结构进行的。

  • 让我们考虑一下树状编程队伍,以及要使它们行之有效,每棵子树所必须具备的基本要素。它们是:

    1. 任务(a mission)
    2. 产品负责人(a producer)
    3. 技术主管或结构师(a technical director or architect)
    4. 进度(a schedule)
    5. 人力的划分(a division of labor)
    6. 各部分之间的接口定义(interface definitions among the parts)
  • 产品负责人的角色是什么?
     他主要的工作是与团队外部进行向上的沟通和水平的沟通。建立团队内部的沟通和报告方式。确保进度目标的实现,根据环境的变化调整资源和团队的架构

  • 技术主管的角色是什么?
     几乎完全是技术性的。

  • 产品负责人和技术主管所拥有的特殊技能可以用不同的方式组合,组合结果控制了和支配了他们之间的关系。团队的搭建必须根据参与的人员来组织,而不是将人员纯粹按照理论进行安排。

  • 存在三种可能的关系,它们都在实践中得到了成功的应用。

    1. 产品负责人和技术主管是同一个人。(3~6个人的小型队伍中)
    2. 产品负责人作为总指挥,技术主管充当其左右手。
    3. 技术主管作为总指挥,产品负责人充当其左右手。

 巴比伦塔可能是第一个工程上的彻底失败,但它不是最后一个。交流和交流的结果——组织,是成功的关键。交流和组织的技能需要管理者仔细考虑,相关经验的积累和能力的提高同软件技术本身一样重要。

0 0