Don't change your public contract
Jon is blogging the CTO Forum. He includes a great summary of Adam Bosworth's talk, but a few concepts/quotes from Bosworth stood out to me.
Public contracts. You can change your operating system, you can change your object model, but don't change your public contract. We know this works. "The proof point is the web."
Message-driven model. We need a programming model for message-driven programming. How does a developer write code in that environment? "It's no problem for systems programmers, but for everybody else, it's a challenge to make it easy for them to write apps that wake up when a message comes in."
The more I think about information architecture, specifically web services public interfaces (currently in the concrete form of WSDL, but mostly in my head) the more I grok the importance and usefulness of immutable public contracts. Which gets me thinking about the tribulations involved in versioning...I certainly don't want to get the habit of names like SonOfWebServiceEx2. This has led me to Yasser (don't all things like to Yasser? :) ) and his article that touches on the subject, as well as Scott Seely's article on evolving an interface. I haven't yet decided if I agree with Matt Powell's belief that XmlElement can make life that much better...he agrees that it doesn't promise to make it easier.