I am about to start a pilot project in our company to introduce agile practices, including the use of user stories. After reading two books by Mike Cohn, Agile Estimating and Planning in particular and User Stories Applied, I now have a clearer idea of how to proceed. I have confidence in refining our techniques along with practice.
However there is one thing that does not convince me. In this blog post Mike Cohn defines a specific type of user stories, which he called constraints, which can be used to define the so-called non-functional requirements. Personally I do not like the word constraint and even the use of the classic template "As a ..., I want ..., so that ...".
Rather I will try make the customer to write, always on the cards, perhaps with the above template, those that Nick Rozanski and Eoin Woods called, in their fantastic book Software Systems Architecture, architectural principles:
"An architectural Principle is a statement of belief, approach, or intent that guides the definition of an architecture."
(they also divide these principles into business principles and technology principles, a differentiation I think we should not care of.)
What I would like to do with these principles cards is to put them next to our backlog cards board in order to have them always present during the user stories definition and the planning activities. I would also encourage customers and developers to pick them up and put them next to the iteration board each time they think a card could be useful as a reminder for the team.
Have you ever tried any similar approach? Do you discourage it for any reason? Have you any suggestion on this matter?