I'm using on-premise TFS and plan to migrate to Visual Studio Team Services. But I still have one question - How to properly manage (store, edit, track) requirements (specifications) for software project in VSTS or TFS?
What is the best solution? What do you use?
Now we use OneNote.com and add links to OneNote pages to PBI in TFS. But it's not very convenient.
Requirements Management is a very broad subject, but when looking at the features of Team Services and TFS, then what you'll find is that it support very light weight requirements management in the Scrum and Agile templates. If you're required to do formal requirements tracking then PBIs and User Stories are not the ideal way to capture them. primary reason being that while these items are true at the point in time they're developed, they become stale/obsolete/incorrect as other PBIs and Stories introduce complementary/contradictory behavior.
The CMMI template is better geared towards formal specification, using a Requirement work item type and doing formal change tracking. It's still meant to be used in an agile fashion, but it tends to drive true agile teams away due to all the extra's it wants you to track and specify.
In the product itself you could use the Markdown support and store requirements in an additional source control repository or Git Repo with full change control. You can add attachments to work items (including Powerpoint storyboards), but anything that amounts to a thick document is not part of the product.
You can of course link to o365, OneNote.com or Google Docs to track your specifications, or make use of 3rd party products such as ModernRequirements.
Keep in mind that in Agile, we try to keep specifications to the minimum required and that it's primarily used to figure out what to do (plan and track work). If you need to capture formal specifications, you need another place to store them.