Though I generally agree with what what this guy means, I can't say I like his presentation.

If you ever find yourself starting your full application just to test a component that's part of it, you're wasting precious development time. You have to wait for the application to initialize each time you make a change. Even though it may seem like a small amount of time, this can really add up. There can also be development problems trying to integrate a component before it's ready to go live.

Too many stories have very simple code like what's in the above-linked article and saying, "If you ever find yourself starting your full application just to test a component that's part of it," is so idealistic it's painful. Should you make modular units first? Absolutely. If they can't do what they need to do in a controlled environment, they likely won't work in the live app. And this is a much easier way to update functionality -- pull out the component into a separate project and hack away. But always, always, test a component rigorously in the live environment.

But overall, he's exactly right. The stub server idea is a great one, and one I wish more people grasped without someone a-lahrnin' 'em about it first.