0

我在一个神话般的人月中读到,集成所需的时间是开发单个组件所需时间的 3 倍。

你们经历了什么?

4

7 回答 7

6

是和不是。集成工作量可能仍然是 3 倍,但现在它已在整个开发过程中摊销(例如早期集成、集成测试(尤其是 TDD 中)等)

我们仍然需要做这项工作,但它不再让我们感到惊讶。

于 2009-04-03T14:56:50.903 回答
5

那是指他们分别构建所有软件组件然后尝试将它们全部放在一起的糟糕的过去。聪明的人不再那样工作了——他们不断地整合

于 2009-04-03T14:49:22.200 回答
1

我会同意,如果不是更高的话。尽管它确实取决于集成接触点。

我参与了一个在 Siebel 和 SAP 之间集成多个模块的项目。虽然这两种产品都有可用的集成模块,但项目中的所有问题(并且有很多问题)都涉及到集成。

我们使用的大部分 SAP 都是德语的,并且正在传输的消息采用不同的 XML 编码格式(UTF8 / UTF16),这对我们没有帮助。

一旦我们掌握了 SAP 想要发送和接收的内容的复杂性,整个项目就进展得更快了。

成功集成项目的关键:

  • 关于集成模块的良好文档(英文!)
  • 关于消息格式的良好文档
  • 良好的项目管理

项目管理位很重要,因为他们提供比萨饼,并且当您连续工作 30 小时以从一台机器上的一个文本框中获取帐户名称以显示在另一台机器上的另一个文本框中时,确实表现出一些理解。

我们的项目持续了一年多。我们所做的 Siebel 配置的其余部分,很多只是几个月,

所以集成 - 10 个月+,其余配置 2 个月。

于 2009-04-03T15:21:29.160 回答
0

集成时间取决于几个因素:项目规模、团队之间的沟通以及您的集成理念。

小项目需要更少的时间来集成。大型、超大型或大型项目将需要更多时间来集成。我一直在进行集成最少的小型项目。我参与过跨越多个组件团队的大型项目,其中集成需要很长时间。

集成的时间还取决于您在团队之间进行沟通的程度。如果您的团队没有沟通,则可能需要 3 倍或更多的时间来整合和解决所有相关的错误。

持续集成有助于理解集成需要更少的时间。使用 CI,集成的时间在项目的整个生命周期中分摊。但是,如果您与其他组件团队的关系不佳,那么所有集成的总时间将花费非零时间。

CI 绝对比替代方案更好。等到开发周期的后期才进行集成势必会给您带来很大的痛苦。越早开始集成,每个团队就越能适应这个过程。

于 2009-04-03T15:00:28.400 回答
0

附带说明一下,Juval Lowey 对此进行了一次有趣的谈话。如果您有许多微小的组件,那么您会增加集成的工作量。如果您只有几个大型组件,则会降低集成度,但您需要维护更复杂的组件。因此,您的集成工作取决于架构以及在何处平衡组件数量与其复杂性。良好的平衡是关键,因为如果你在一侧或另一侧漂移,所需的努力会成倍增加。如果您有 20 个组件并添加第 21 个组件,那么它不仅会复杂 5% (1/20),因为您必须考虑潜在的其他 20 个组件的相互作用。因此,添加一个组件可以增加 20 种与现有组件交互的方式。

于 2009-04-03T15:09:39.233 回答
0

尼尔和马库斯的回答很到位。在 Windows 中,我们不断集成。我们的源代码控制系统(我们称之为“Source Depot”)是分层的,“WinMAIN”位于顶部,其下方的分支树通常对应于组织结构。

一般来说,变化在“正向集成”和“反向集成”的过程中上下流动。这种情况经常发生 - winmain 下的顶级分支几乎每天都发生,而较低级别的分支则较少发生。每个主要分支每天都以至少四种口味完全构建。顶级分支有六种风格。风味类似于 x86/fre 或 x64/chk。我们还获得了一些日常的伪本地化构建。

“构建”是指从源代码构建完全可安装的 Windows 客户端产品。这种情况每天发生数百次。

这对我们很有效——这里有两个重要的目标:

  1. 在树上下保持良好的代码流(我们称之为速度)。这个想法是任何分支都与 WinMAIN 没有太大的不同。
  2. 尽早发现集成错误。

Markus 非常正确,这可以在项目的整个生命周期内摊销集成成本。对我们来说,这使得成本比我们将成本更多地推迟到周期结束时的成本低很多。这就是过去的工作方式。不要放太多脏衣服,但是当我大约 5 1/2 年前开始使用 Windows 时,进行构建需要非常非常长的时间。它们现在每天都在发生,就像时钟工作一样。Windows 工程工具和发布组 (WETR) 对此赞不绝口。

正如许多其他人在各种论坛中所建议的那样 - 定期集成和每日全自动构建对于大多数项目来说都是必不可少的。

请注意,日常和定期自动化测试是另一个主题(您可以想象这是一项巨大的努力)。

于 2009-04-03T15:14:05.340 回答
0

如果您在项目计划的项目结束时有一个集成阶段,那么您注定要失败,x3 还不错。

你应该选择持续集成,比如每 2 周发布一个包含一些集成的版本。

于 2009-05-19T12:07:18.250 回答