If you are developing your own architecture or heavily use anothers vendors API, how do you promote awareness to the programming staff? For example, say you use Infragistics controls for you C# winforms apps - the controls have boatloads of methods, some quirks, and a best way to use them for your application. How do you promote the knowledge transfer thru your programming staff? Wiki's? Email? Blogs?.
Documentation seems like the most reasonable place to inform your development team regarding implementation and usage of external libraries/API.s
Emails get lost, are not read.
Wikis are for interlinked content.
Documentation is for communicating evidence of something.
Although I suppose you could have a meeting initially when a project starts to discuss a chosen API/library to make sure 1. everyone is on the same page and 2. no one has a concern with using it that may have been missed.
Use a combination of formats, appropriate for each knowledge function.
Definitely allow tagging of content tagged for a variety of categories (data types, layer, functionality, bugs, etc).