On Tuesday 19 August 2008 06:01:38 paron wrote: > Yes, there's a fundamental difference between making incremental > changes and reimagining the problem domain. Yes, there is. But it's not a difference in testing methodology. I would use Ruby for any program I could -- I find it equally useful for experimental greenfield apps and aging production apps. Similarly, I would use BDD as soon as I could, in an experimental greenfield app. And I do. That's my opinion, of course. I'll never understand why, but some people prefer to use Ruby or Python to prototype an app, then throw away the prototype and start from scratch in Java or C++. > Even a non-working prototype will help your customer make the leap to > see his problem in a different light. That is true. However, properly-implemented BDD could (sometimes, at least) lead to that prototype faster. All else equal, a working prototype is better than a non-working prototype. I'd also argue that a non-working prototype carries several other, hidden risks -- mainly, the risk of promising too much. No matter how many times you tell them "This is just a prototype; it'll have to be rewritten from scratch; we can't actually do this for another six months..." They're still going to come out of that presentation thinking "Man, that's an awesome prototype! I can't wait!" No, you show the awesome-but-nonworking prototype to your boss. Not even that -- if you can, you show him a whiteboard sketch of it. But even with bosses, and especially with clients, remember the Scotty philosophy: Underpromise, so you can overdeliver. That's how you earn a reputation as a miracle-worker. > It also helps if they are > desperate. If they aren't desperate, they will stick with various > combinations of horse until they can no longer do so. Then they might > be willing to make the leap -- but you still have to show them a > prototype. If you've got all the time it takes them to figure out that various combinations of horse won't work, you have the time to do it right. The first car that Ford showed the world didn't explode. The Wright Brothers built a prototype plane, and it flew. They weren't complete, but for some set of requirements (aka specs/stories), they were working.