-
Notifications
You must be signed in to change notification settings - Fork 1
Project flow
The project development is following agile practices the Scrum methodology. However some parts of the traditional scrum are tweaked in order to correspond to the company and team requirements.
There are 3 roles in the development process:
- Product owner (PO)
- Scrum master
- Development team
Each role has its own responsibility.
The product owner is responsible for providing user stories (=tasks) to the project backlog, determine what stories are the most important and conducting to meetings with a development team.
Since the API can be used by various teams of the company, where each team may have different vision and tasks to do for the backend team, it is not possible to assign the role to only one person. Instead of that these responsibilities are divided as follows:
- User story writing: other team leads are responsible for writing user stories with clear acceptance criteria
- Tasks prioritization: during daily meetings backend lead may ask what are the most important tasks, that need to be done on next
- Meetings: meetings will be organized with the team leads for which a certain feature will be/was created
The scrum master is mostly responsible for organizing meetings and checking that the user stories are clear for the development team. Backend lead is responsible for those tasks.
The development team is responsible for adding functionality to the API based on the user stories, estimating user stories points and conducting to some of the meetings.
User story is non-technical requirement or task for the development team to do. The user story must contain the following:
- Story actor (who / for whom), optional
- Feature (what)
- Purpose (why), optional
- Acceptance criteria
Example of an user story:
As a player I want to be able to create a clan in order to play with my friends. Acceptance criteria:
- It is possible to create a clan
- If clan with the same name already exists, it should not be created
- If player is already in another clan, he/she first must leave the old clan
During the sprint planning meeting development team must define the acceptance criteria from a technical point of view, which can be used in automated tests.
Example:
- API should have /clan endpoint which accepts the POST method for clan creation
- Endpoint should accept the following body, headers etc.
- API should return 409 error, if the clan with that name already exists
- API should return 403 error, if the player is in another clan
The project consists of 2 week sprints. For each sprint a certain meetings are organized:
- Story
- Sprint planning
- Sprint review
On this meeting the most important stories are discussed with product owner, which will be implemented in the next sprint. On this meeting at least the product owner and the scrum master must be present, but ideally also the whole development team, where:
- product owner = lead(s) of the team(s) which stories will be developed in the next sprint
- scrum master = backend lead
The main purpose of this meeting is to check that the stories are up-to-date and clear for the development team.
On this meeting the scrum master and the development team must be present.
The goal of this meeting is:
- Determine in general how each story should be implemented from technical point of view
- Determine the size of each story with story points
- Determine the amount of stories that goes to the next sprint
- Determine who is making what story
On this meeting done work is presented by the development team for this sprint product owner, as well as some feedback from the product owner is collected. On this meeting at least product owner and scrum master must be present, but ideally the whole development team as well.
The purpose of the meeting is to check if there are any this sprint stories need to be changed and to inform the product owner of the work, what is done.