I think you should read it the other way around. They were actively looking for ways to ensure that platform developers understood the problems of application developers, and tried something that didn't work as well as they'd hoped (transplanting developers).
You write,
"So basically, you are saying that it's OK to do anything you can to API as long as you are not the one that needs to work overtime to change the code that uses it. This is simply ridiculous." It is ridiculous, and not what I'm saying at all. They were sensitive to that problem (as any platform group that wants to be around for a while must be).
The issue of costs of API changes is a generic one for any platform group, and has nothing to do with agile per se.
It's also tied in to the economics of reuse. Suppose every application has its own file browser, and the platform group finally standardizes one. Each development group looks at it and says, "we already have one, why would we want to spend the time putting this in?" But it turns out the benefits are to the business, who would like it all standardized so they can explain it once and not be confused by all the variations.
"At most, we make functions @deprecated, but almost never break APIs." Yes, that's one of those prices of being a platform. (Java's got the same thing going - the old event model may never go away.)
Posted by: wwake on August 26, 2005 at 03:15 AM