iP:
Level-5
A-Packages
tP:
Links → iP Code Dashboard
item in the top navigation menu of this course website.We encourage you to read others’ code and learn from them. If you adopt solutions from others (also encouraged), please follow our reuse policy. Click on the icon corresponding to a student name to see the code written by that person.
Similarly, click on the icon to see a list of tags (and commits) -- this way, you can find which increments have been done by a particular student.
Level-5
branch-{increment ID}
(e.g. branch-Level-5
). You are recommended to have multiple commits in that branch. Follow the branch naming convention exactly or else our gradings scripts might miss your branch.branch-Level-5
back on to master
, without a fast-forward so that git creates a separate commit for the merge. git tag
that merge commit as Level-5
.A-Packages
Level-5
(branch name branch-A-Packages
).
Learn the recipe for brainstorming user stories in the textbook → Specifying Requirements → UserStories → Usage.
Also learn about brainstorming and user stories.
Follow the steps in the recipe mentioned above to arrive at user stories for the product, with your team members.
User stories for what version? At this stage, collect user stories to cover at least the final version you hope to deliver at the end of the semester. It is OK to go even beyond that (reason: we are simulating a project that will continue even after the semester is over).
How many user stories? Aim to collect more user stories than you can deliver in the project. Aim to create at least 30 user stories. Include all 'obvious' ones you can think of but also look for 'non obvious' ones that you think are likely to be missed by other competing products.
User stories of what size? Normally, it is fine to use epic-level user stories in the early stages of a project but given this is a small project, you may want to eventually break them down to smaller user stories (i.e., small enough for one person to implement in 1-2 days). Some examples (from the iP product domain):
What format?: You may use a sentence format or a table format but do maintain the prescribed three-part structure of a user story. In particular, try to include the benefit part in most user stories as that will come in handy when prioritizing user stories later.
Submission (to be checked by the tutor later):
Task: Of the user stories you have collected, select the ones you would put in an version of the product. The goal here is to come up with the smallest possible product that is still usable so that it can be implemented quickly, and delivered at the end of an earlier iteration
Try to limit the MVP to strictly must-have user stories only i.e., it's NOT what you can or want to put in the MVP, but what you must have in the MVP. If the product can be of some use without a given user story, that user story should be left out of the MVP version, even if the omission makes the product hard to use, as long as the product is not impossible to use e.g., in most cases a product can be used without an 'edit item' feature because the user can always delete an item and add a new item instead of editing an existing an item.
Do not discuss features, UI, command format, or implementation details yet. That would be like putting the cart before the horse. At this stage we are simply trying to choose which user needs to fulfill first.
Don't worry about subsequent versions or the final version. You can design them at a later time.
Don't worry about MVP being 'too small'. You can always add more features to the MVP version if you finish it ahead of schedule.
You can also select an additional set of user stories that are nice-to-have for the MVP, to be done but only if there's time left.
In the interest of keeping the MVP small, you can narrow the scope of MVP further e.g., narrower target user, a smaller value proposition.
Suggested workflow: