I use the formal “As <user role> I want to <action> so that <goal>” format when it helps. The main value of the format is it puts the focus on the users rather than on technology components. So if the user story is about user facing functionality then I will usually use the formal format as a back up to the shorter name of the user story.
But the formal format shouldn’t be a straight jacket. I agree with Ron Jeffries who tweeted (11 Dec 2012) that “The ‘As a …’ format for stories is no more than training wheels. Do you have training wheels on your car?”. The format is not important. The user focus is.
I quickly abandon the formal format when it isn’t appropriate. I never use the formal format for activity required to address technical debt. For example there is little point in wrapping user centred language around “Index the customer table by name”.
Even when we are talking about a user facing functionality, I won’t use the formal format when in maintenance mode and only a tweak to existing functionality is proposed. Use whatever works. For example, “80 Character Name Field” as a user story name might be sufficient; you might not need the formal “As a new customer I want to type in a 80 character surname so that I can I use my full non-English name”.
Finally, I always have a name for the user story in addition to the formal format. Being shorter the name is much better as a reminder for a conversation. The verbose formal format can obscure the core intent.
I completely agree! After all, User Stories are not mandated, but are a useful mechanism for expressing requirements in plain language from the user’s perspective that implicitly recognises that the ‘how’ is not in the user’s domain.