Quote:Original post by 255
The usual benefits, such as testable (=decoupled) API designs, YAGNI-avoidance, automated regression tests etc. should still apply, shouldn't they?
Those are different from xDD.
Quote:Cucumber simply looks like a rather clean and inspiring language to write integration tests in, though of course you could do the same things in a standard programming language.
Unless you have constant feedback from users - who will tell you which tests to write?
With xDD there is usually next to no large scale documentation. So while each feature will be implemented perfectly, it will not converge towards the goal but devolve into featurities.
You can only write detailed tests if you have very specific requirements in mind, not only the what, but also how. With xDD, what is missing is why, which is provided by testing feedback.
If you had constant feedback "ninjas, and pirates, and guns and yellow button and click and ..." you'd prioritize those with regard to how well they fit into the long-term goals and how viable are they, and implement the top daily requests, test feedback or current changes. Without users, you'll end up implementing whatever you feel like that very moment, which ends up as a solution looking for a problem.
Which means if you want to finish some long-term goals on your own, you need specify them in adequate detail up front, so you don't drift away.
This is the reason why xDD works so well in business, where there are no longer term requirements, no long term strategy, but whatever customer wants or feels like, they get the same day.
xDD means write complete test first, and let tests guide the result.