NOTE: Please read this entire post, I don’t aspire to become the Winston Royce of User Stories.
About 7 or 8 months ago our teams decided to try using User Stories as our primary mechanism for capturing requirements. Since then, we have taken our lessons learned and have moved away from them. The reason for their “failure” is laughable really: people couldn’t get past the name. There were team members and customers that just couldn’t get beyond the fact that they’re called “User Stories”. People would make cracks about Epics and ask whether it’s more like Odyssey or Gilgamesh. In the beginning this was funny, and we had a laugh, but some people just couldn’t get past it, and we have since decided to phase out the use of that term.
The levels of success with User Stories in our group vary greatly, but as with any two projects you can’t really compare them based on a single part of their process. The team I am supporting has delivered value consistently since the project started and we have done so not because we used User Stories (we did, and to great effect I might add) but because we were (and are) disciplined. Other teams call functionality “done” without having high level tests against it that can be easily repeated. I blame myself for those failings if for no other reason than I should have noticed the signs. Someone has to, right?
On my current team when one of us starts to get lazy the other half of the pair straightens them out and makes sure that everything they thought to test has been tested, and that it’s in the appropriate place for our automation infrastructure to get at it. We commit a change and within an hour we’ve validated (yes, that’s validated, not just verified) that latest version against all our user stories to date, against all supported configurations, including protecting ourselves from regression. We are able to answer the question “when will version X be done?” using real-time data because we keep Jira up to date and because we understand what “done” means. We don’t fool ourselves into thinking we can do more work in 3 weeks than we’ve historically proven we can do, and we don’t let management pressure us into committing as such. We’ve learned to how to adjust our sprint caps for personnel fluctuation as team members are temporarily stripped away to work on other things, which happens quite often.
Like I said, it’s not the tool’s fault. It’s unfortunate that something so trivial could kill its use in our process. Now we work on “Features”…that contain shorts blurbs about something succinct that the system should do…and are estimated using points… Sound familiar? User Stories are no more or less valuable as an artifact than “shall” statements in more traditional requirements management methodologies, but they’re tight, to the point, and no one fools themselves into thinking they can craft the perfect sequence of words to build the perfect statement. No one even tries. Instead, the focus becomes the user’s intent, not the words in the requirements document. And intent is best captured with higher bandwidth forms of communication, like getting everyone in the same room and talking it out. That, I’ve learned, is the true power of User Stories; even if they’re called Features.