I am not a huge fan of Web 2.0 hype.  However, I have to agree with points that Marc Hedlund made about Web 2.0 Development.  Although he's describing how Web 2.0 start-ups are developing Web 2.0 apps, these points should still be considered by other traditional web development shops. 

For a lot of shops, these have been tried and got rejected due to various reasons. 

Why waste money on shadow app when resources can be used to build new features that would bring in revenue? 
Well, because you don't know what feature would bring the revenue in if you don't understand how your users are using your application!

It will take way too much time, resources and coordination to do sampling and testing!
I used to be against this sampling and testing approach.  I had several debates about A/B testing with my sales manager at my previous company.  The reason I was against that was because I had a huge list of backlog items that I did not have enough resources for.  If you asked me to deliver on all those AND do sampling and testing, I would ignore you.  This is about where the investement should go to.  Similar to shadow app above, you need to understand your users and how your features fit into what your users are trying to accomplish before going full-force with your new features.

Public API?  Our application won't be extended by others.  So, why bother?
Ok.  Forget about public part of this.  And look at how your developers are doing their work.  If you do not have solid architecture that's extensible (I told you not to worry about public for now... internally extensible), your developers are wasting a lot of their time doing the same thing over and over but a bit differently each time.  Build solid architecture.  Make it extensible.  Use it.  And one day, you will find that the new business opportunities walk by you.

* Um... gotta run to a meeting.  I will either finish this off later or post Part 2 *