3

对我来说,这听起来像是一个非常愚蠢的问题。

为什么不使用构建工具?

但是,我需要向我的同事解释为什么他应该使用某种构建工具。

他真正开始考虑与更多程序员一起工作的想法,但他不了解构建过程中需要更改哪些内容才能与更大的团队合作。(即防御性编程/单元测试您的代码,拥有错误数据库,编程模块化库,以及使用子存储库将模块存储在版本控制中。

这是一个相当大的技术堆栈,我需要证明……的投资回报率,所以我想我会从使用构建工具的投资回报率开始,而不仅仅是……说……点击编译。

4

4 回答 4

2

要获得有效的投资回报率,您必须了解投资成本以及投资将带来的节省或额外收入的成本。

对于像 Ant 和 Maven(我会使用 maven)这样的工具,您无需支付许可费,但您需要在工具上培养技能,这可能会花费一些钱。

这些自动化工具的主要优点是:

  1. 加快团队成员的入职;
  2. 记录构建过程;
  3. 通过自动化测试提高质量;
  4. 确保一致的构建;

对于每一项,您都必须贴上价格标签。您可以争辩说,一个好的 IDE 将为您完成构建和测试。但这会因用户而异。假设让一个新开发人员拥有一个有效的构建环境需要 4 个小时,并且有人正在提供帮助。这将花费 X 成本,而自动化流程将大大降低成本。再加上修复错误的成本(构建过程不会全部避免,但假设是 30%)。这些东西就是成本。

现在将其与您的同事学习该工具所需的投资进行比较(这是使用此类工具的一次性成本)。但我认为困扰你的同事的更多是恐惧而不是理性。

当您向他们展示的人同意所使用的值时,投资回报率会更高。因此,请尝试使用您过去的项目成本来做到这一点。在这种情况下,您可以比较时间而不是金钱。人们在不一致的构建上猛烈抨击项目可能会严重延误项目。

于 2010-05-28T19:46:57.890 回答
1

Ant显然不仅对每个编程商店都有益。您的构建过程涉及多少集成?您正在使用什么工具?你选择了哪个 CI 服务器?

简单的答案是,当 Ant 为您节省时间时,投资回报率很高,在决定它将为您节省多少时间时,只有关于您的情况的详细信息和经验才会相关。

在我们的例子中,我们使用 Nant 来构建我们的数据库,因为这样做涉及到许多命令行级别的步骤。我们没有在我们的 .NET 软件上使用 Nant,因为 VS 2010 和 TestDriven.Net 提供的上下文敏感性比任何其他构建解决方案都要高得多,而且我们出色的 CI 服务器 TeamCity 本身就理解 Visual Studio 构建过程。

于 2010-05-28T19:45:37.100 回答
1

首先,构建不仅仅意味着编译,而且通常包括编译代码、编译测试、运行测试、运行质量检查、打包代码、组装部件、有时是部署等步骤。

其次,在我看来,从长远来看,自动化构建总是比手动执行上述步骤具有更好的投资回报率(更不用说人类会犯错误,你可能不想依赖 IDE,您可能希望在另一个可能无头的平台等上运行构建。

第三,构建自动化无论如何都是持续集成的绝对要求,众所周知,这是每个人都应该遵循的最佳实践(您希望尽快获得反馈,您不希望让问题进一步进入系统,直到大爆炸整合)。

所以对我来说,问题甚至不是关于投资回报率,而是关于理智。以防万一,这里有一个小引述(另请参见三击而你自动化):

如果有一个系统管理的真理,那就是:没有简单的系统管理任务比两次更有趣。如果您发现自己做了两次以上的简单枯燥任务,请将其自动化。

于 2010-05-28T19:53:43.043 回答
1

无论是你自己的生意还是为别人工作,我都是这么想的。如果该工具至少可以为您节省购买该工具所花费的钱,那么这是一项值得的投资。请记住,省钱可能与花费的时间有关

  • 计划(软件或其他)
  • 设计开发
  • 保存记录(例如跟踪错误/源/业务管理员历史记录的时间)
  • 工具可以执行的单调任务(备份?)
  • 与工具可以为您解决的问题有关。

不要忘记,工具通常需要初始培训/学习,这也是一种成本。因此,如果该工具是一次性的,您可能需要权衡学习成本是否超过该工具的成本。

回到您的问题的基础......例如,如果构建工具是 1000 美元,那么您的时间是 100 美元/小时。我们将忽略工具培训成本,因为我们打算多次使用构建工具。

如果您需要花费 0.5 小时使用工具来创建最终的构建环境,数学上说

您使用工具的成本 = 1000 美元 + (0.5 x 100 美元) = 1050 美元

如果您需要花费 12 个小时来手动设置构建环境

没有工具的成本 = 12 x 100 美元 = 1200 美元

或者,也许是一个更现实的例子,你可以看到 6 个即将到来的项目。使用构建工具设置每个项目需要 0.5 小时,不使用则需要 3 小时。

使用工具的成本 = 1000 美元 + (6 x (0.5 x 100)) = 1300 美元 没有工具的成本 = 6 x (3 x 100) = 1800 美元

似乎这些场景中的构建工具将被视为一项值得的投资。

希望这可以帮助...

于 2010-05-28T20:04:15.743 回答