Here is a sample product backlog (wish list of features) for developing an online course
- The instructor should be able to deliver classes online on a 1 to 1 or 1 to many basis
- Online assessments and evaluation
- Discussion board
- Online payment facility
With this much information it becomes very difficult to estimate it, or to develop it. As a developer these are the questions coming to my mind immediately about the item No.1 which is ‘The Instructor should be able to deliver classes on a 1 to 1 or 1 to many basis’;
- Are they live classes or record and play or is it live classes with a facility to record and play.
- Can I use third party tools, or should it be developed from ground zero
- Can I use open source components
- Can it be just a slide show with voice, or should it be slideshow and instructor video side by side in a automatically synchronized fashion.
- When there is bandwidth crunch, can I switch off the video
- Should there be options for streaming high resolution, low resolution
- Paid streaming Vs free streaming (ad free, faster, offline viewing)
- For 1 to many, how many concurrent viewers
- Pass word protection
- Sharing option
- Renting option
- What is the acceptance criteria
This list can be quite a lot, and as an engineer I need clarity on these, else I will not be able to estimate the work involved. These are the first cut of clarifications required. During development I may have more functional / technical questions.
A user story essentially has,
- The product backlog reference.
- The description of the feature to be developed in detail, in a non technical language.
- The conversations section captures the questions and answers that arises during the sprint planning meeting and throughout the development process.
- Acceptance criteria – This section provides the acceptance tests, which will be run during the sprint review. These are defined upfront and documented, so that the engineer can proactively work to on the code, to ensure acceptance.
It is quite possible that a feature is accomplished with the help of multiple user stories. There can be a 1 to many kind of a relationship between the feature and the user stories. A user story must be something which can be declared as done, 1 to 3 days time. Larger user stories in smaller sprints reduces the benefits of ‘fail fast is success’ mantra of agile.
Writing the user stories upfront may appear to be a herculean task for the product owner. Here lies the great opportunity to include the development team also into story prioritization and development by conducting story writing workshops. This has the added benefit of functional knowledge transfer to the team in advance. I am yet to see projects where the entire user stories are written prior to the start of development. Here lies the benefits of Value stream mapping, release planning and sprint themes.
In engineering, what you get is what you ask. Investing time and energy to develop clear cut user stories is key to success in the agile world. The value of well documented user stories to ensure conformance to requirements is even higher. It acts as a medium of communication about the functionality across stakeholders. That is a good investment one can make to ensure success of your product.