This presentation seems to have popped-up on a lot of blogs lately (some may even say that it's a successful meme):
While it sounds very nice and has that "everybody should do it this way!" ring to it, there are many problems a company must overcome even to get close to this state. Some of them are organizational (meaning that management must buy in into these concepts). Also, I think that some types of work are more suitable for this approach than others. For example distributed teams need more communications than co-located ones. Larger teams need more communication than smaller ones.
Companies composed out of multi-talent individuals can benefit from this very much if they realize that people shouldn't be put in a box and labeled with their job title. This is especially true of IT where people share a common body of knowledge (for example both a Java developer and a SysAdmin know how the HTTP protocol works) and it is not uncommon for people from other teams or even from other activity areas (see the previous example with the SysAdmin and the JSP developer) to have good ideas / insights.
An essential prerequisite for this to happen is communication. Good communication. Constant communication. Communicate like your life depends on it! Pretend that you work on an open-source project and the only way to contact your peers is to send an e-mail. Communication doesn't have to be a pain! It should be "frictionless". You should always choose the most efficient method available for communication. When you send a personal e-mail, you're only communicating one to one, but when you put it on a mailing list or a wiki, your communication instantly becomes broadcast!
You can never have too much information! Existing information can be filtered, however man kind has yet to discover a foolproof way to create information from the void.