As a Team Foundation Server user you have several possibilities to store your documents. Multiple options are always nice but it is also confusing if you do not exactly know what to do.
As a result of this, I often hear the same question. Where to store my documents ?
Let me start with listing the different possibilities:
- Store your documents as an attachment of a Work Item
- Store your documents on the SharePoint portal (or documents folder in Team Explorer)
- Store your documents in Source Control
Store your documents as an attachment of a Work Item
You can store attachments in work item. This is convenient because you have all the extra information (such as screen dumps, xml schemas, diagrams etc.) together with the bug or task.
On the other hand it is more difficult to find attachments.
Store attachments in a work item if the file is only related to the work item and not to other work items or requirements.
A screen dump of an error is a good example of an attachment, but a diagram for some functional design can better be stored somewhere else.
Store your documents on the SharePoint portal (or documents folder in Team Explorer)
The most obvious location is to store the documents or files on the related SharePoint Portal. This is convenient because developers (or other Visual Studio users) can access these files by the Team Explorer whilst Non VS users access the files via the browser.
My opinion is that you should store all project related documents such has Designs, Planning, Drawings, Prototypes, Meeting minutes etc. on the project portal.
But what when you ship your product or end your project?
Store your documents in Source Control
Source Control is your primary source for all your code and essentially your product that you ship.
Documentation and even design is a very important part of your release and is in most cases something you like to ship.
All documents that should be part of your release (like End User Documentation and I n some cases Functional and Technical Design) is suitable for storage in Source Control. Everything is kept together.
When you start working on a new version you create a branch in Source Control, and all documentation is also branched.
Use attachments of Work Items only if it is relevant for the work item itself. During the project use the project portal to create, edit and share documents. When the project is finished, grab all relevant documents from the portal and store them, along with your code, in Source Control to guarantee a complete package for release !
Good luck !