unit-testing - 如果没有测试驱动开发,Scrum 是否可行?

标签 unit-testing tdd scrum

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

4年前关闭。




Improve this question




我现在目睹了两家公司使用 Scrum 转向敏捷开发。

在这两种情况下,当应用程序的每个部分仅由一个或两个开发人员处理时,编码标准就足够了,而开发人员在进行下一个任务之前花费了合理的时间来处理应用程序的一个部分。缺陷率也很合理。

然而,对于 Scrum,开发人员应该:

  • 所有人都能够处理应用程序的所有部分。
  • 最多只在应用程序的一个领域工作几天,然后再转到下一个领域
  • 主要处理他们没有编写的代码

  • 代码质量成为两个 Scrum 项目中的一个问题。

    那么有没有一种方法来做 Scrum 不会导致这些问题,而无需首先让所有开发人员进行测试驱动开发?

    你见过 Scrum 在没有测试驱动开发的大型项目上运行良好吗? (如果有怎么办?)

    最佳答案

    我想扩展丹所说的话。

    Scrum/Agile 规定了软件工程原则,这是一个非常普遍的误解。这是一个谬误,原因有很多。正如 Dan 提到的,Scrum 是一个软件管理过程,而不是一个软件工程过程。话虽如此,您经常会看到许多与 Scrum 相关的工程原则。 TDD、XP 等方法倾向于补充 Scrum 提倡的管理方法,但不是必需的。

    CI、TDD 和其他工程实践经常与 Scrum 并驾齐驱的原因是,一般来说,无论使用哪种管理方法,许多都是可以遵循的良好实践。

    我想解决您的 OP 中的其他几个谬误:

    However with Scrum the developers are expected:


    * to all be able to work on all the bits of the application.
    * to only work on one area of the application for a few days at most before 
      moving to the next area
    * to mostly work on code they did not write
    
  • 如上所述,Scrum 并没有规定开发人员从事什么类型的工作。开发人员自己决定要从事哪些工作;如果一个数据库重的开发者只想处理 DAL 和相关的故事,他们没有理由不能。
  • 同样,Scrum 并没有规定任何关于如何构建应用程序的内容,因此您的第二点没有实际意义(参见第 1 点)。
  • 这是一个谬论,因为没有任何内容说开发人员应该只处理不属于他们的代码,或者任何关于开发人员应该如何开发的内容。如果 Scrum 团队中的开发人员发现他/她自己只在处理其他人的代码,那将是巧合,而不是因为 Scrum 流程本身。

  • this有关 Scrum 开发人员通常期望的品质的更多信息的问题/答案。

    关于unit-testing - 如果没有测试驱动开发,Scrum 是否可行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2373377/

    相关文章:

    unit-testing - 在 spock 测试中创建不会作为测试运行的辅助方法

    unit-testing - 在 Swift 中测试断言

    javascript - 尝试使用 TDD 编写有意义的测试时何时停止?

    scrum - 如何使用 Scrum 实现 CMMI 级别 2?

    scrum - 如何将不可估量的任务处理成一个Sprint冲刺?

    unit-testing - 通过模拟请求使用异步 api 调用测试组件

    java - 可行的数据库测试

    php - PHP 中的测试驱动开发

    c# - EF 中的 SaveChanges() 会导致插入未添加的对象吗?

    agile - Scrum 和项目管理可以共存吗?