Scrum does not mandate a specific format in which a product backlog item(PBI) is represented. Over time User Story format, which was first introduced by Extreme Programming (XP) framework in 1998 has become very popular and has more or less become a de facto standard in which PBI’s are written. The User Story format as put forth by XP is:
As a <type of user>
I want to <some goal>
So that <some reason>
User Stories are designed to invoke conversations between the team members to create a shared understanding of the user’s need, and more details are added as the functionality is built.
The User Story format makes perfect sense when your product has a User Interface (UI) and there is a direct interaction with an user. Almost all PBIs can be represented as a user story in this case. There may be situations where some aspects of the product are non-functional or technical in nature and cannot be expressed as a user story. However this should be rare (less than 5%).
If your product does not have an UI, which will be the case if your product is an Application Programming Interface (API), middleware or some backend system. Using the User Story format in this case does not make as much sense or at best will prove to be very difficult and challenging.
In these situations there is a better and more appropriate format to express the PBI. This format is:
In order to <deliver benefit/value>
To <these people/system>
We need <this function>
Below are a few examples of technical stories.
Example 1:
In order to keep track of all the transactions with our service
To the Solution Integrators
We need to generate a unique identifier for each transaction
Example 2:
In order to provide an API for a location finder
To the users of our geolocation service
We need to send the latitude and longitude in the API request
Example 3:
In order to meet the performance SLA
To the applications using our API
We need to support a load of 50 API calls per second without failing
What do you think about the above alternate approach? How have you handled such technical work? Share your experience with us.