在这里,我认为行为驱动开发会立即获得收益,但是我不确定测试驱动开发是否会取得收益。
在行为驱动的开发中,您以不同的方式处理问题:与业务人员坐下并与他们一起定义该功能块应具有的行为。我在博客的一个条目中对此进行了描述(帖子标题:Writing Behaviors)。
与业务人员或任何人坐下来,将帮助您和他们更好地了解系统需要做什么,以使每个人都满意该功能。它需要做什么才能被您已有的质量检查流程所接受。
定义测试标准,然后将这些测试标准写入自动测试套件中,应减少来回的次数:有人声称该功能已损坏,因为您错过了某些东西(要么是因为您合理地错过了一些东西,要么是因为他们从未告诉过您)关于此事)。
这也可能有助于其他人对您的团队的看法:如果您坐下来确定系统中需要完成的工作,则可以从“笨拙的白痴,这些白痴对一切进行过度的设计,并花时间在我们不要求的事情上”, “具有实用功能的聪明人”。
TL; DR:行为驱动开发可能会很快显示出改进,因为它以“客户”为重点。对我来说,“测试驱动开发”似乎是关于测试“没人”关心的代码库内部,并带来不太明显的业务收益。(行为驱动开发面临着立即的变化:工程师突然变得与“客户”或业务分析师有更多的面对面时间,以试图解决这个问题,这应该是一件好事。 ,他们正在召开有关Feature X的会议,这意味着该方面正在取得进展!”)