7

我在一家有数百人为基本相同的产品编写软件的公司工作。软件的质量必须很高,因为有很多人依赖它(尤其是开发人员自己)。正因为如此,每一个重大问题都导致了新的检查——无论是自动的还是手动的。

因此,交付软件的过程变得越来越繁重。所以这需要更多的开发人员……你可以看到这是一个恶性循环。

我们现在遇到了快速发布软件的问题——即使是为一个非常严重的问题更改一行代码,也至少需要一天的时间。

您使用什么技术来加快大型组织中的软件交付,同时仍保持软件质量?

4

4 回答 4

6

我还在一个庞大而繁琐的组织中工作。我已经成功实施了几种敏捷软件开发方法,但我发现有两种特别有价值。

迭代和增量开发——保持你的发布周期短而紧凑。在一个大型团队中,如果在两个版本之间进行大量更改,您会发现自己陷入了集成的噩梦。

大型组织倾向于具有较长开发时间线的大型项目计划。打这个。如果在开发的前两周之后您的整体看法可能会发生变化,那么计划一整年的项目是没有意义的。让您的利益相关者习惯于制作小的增量版本并适应不断变化的需求。

自动化单元测试- 这是确保您发布高质量软件的好方法。最严重的错误是由看似无辜的代码更改引起的,这些更改在其他地方产生了意想不到的后果。全面的单元测试可能是捕获此类错误的最佳方法。如果你能毕业去测试驱动开发或者行为驱动开发,那就更好了。

任何大型组织都会有一些平庸的开发人员。这是生活中的事实。自动化单元测试是关注它们的好方法。让您的一位更好的开发人员为他们编写单元测试。您将确保至少他们的代码可以工作(即使它很丑陋)。

于 2010-05-19T15:35:22.097 回答
4

参见持续集成

请阅读Joel 测试:更好的代码的 12 个步骤

于 2010-05-19T15:15:26.217 回答
2

有很多方法可以改进流程,但关键组件是模块化。通过明确划分职责(代码和组织中的)并定义清晰一致的接口,一个大团队可以与许多捆绑在一起的小团队一起工作。

于 2010-05-19T15:22:06.060 回答
1

明智但阴郁的说法:

可能有用的东西:

组织项目,以便有一个由一两个人构建的核心应用程序,最好通过一种语言操作。然后通过使用该语言进行编码,让所有程序员有效地成为核心的用户

我正在考虑基于语言的产品:SASS / RMATLAB等。

于 2010-05-19T19:46:52.303 回答