Important agreements so that everyone knows what is expected of them in terms of responsibility.
There must be constant communication between team members. A key value that must be shared among all team members is a clear understanding of the project's goals and the team's responsibilities. Team members must respond directly to any questions or concerns from another team member within 24 hours. Team members must not shy away from asking for help or clarification. Team members must be open to new ideas and suggestions. Team members must be willing to work with others to achieve their goals. If there are any disagreements among team members about a user story, project goal, etc., the team must resolve said issue by engaging in a mediated discussion with the scrum master. If a member has not completed or is unable to complete their work, they must bring up any issues with the scrum master and have a spike created. If the scrum master is unable to resolve an issue, the project owner must contact the stakeholder (professor).
Each team sprint will take on average 2 weeks. Each sprint will have a backlog of user stories. Each user story will be dissected into tasks. Each task will be assigned to a team member and completed within the sprint. Once a task is completed it will be reviewed by the other team members and if approved will be considered completed and if not then the task will go back into the in progress section for further work. The sprint will be completed when all user stories are completed or when the sprint deadline is reached. Once the sprint is done the team will review the completed sprint and determine if the sprint was successful. If the sprint backlog is not finished then it will be revaluated on which to bring to the next sprint.
Daily standups will occur every Monday, Wednesday, and Friday of the week. The standups will last around 15 minutes to not last too long, but will give enough time for each team member to discuss their work and any concerns they have. Members must attend these meetings. If it appears that a member has not made any progress on their work and has not asked for help, the team member will be reported.
Members must be able to commit their work to the repository. They must be able to push their work to the repository. They must be able to pull their work from the repository. Members should commit their code to the repository as often as possible. Members will use continuous integration to ensure that their code is up to date. Members will use git branches to ensure that the main branch is not changed until all experimental tasks are completed.
All members of the team must adhere to the following coding standards:
Team member will use Visual Studio Code.
Team members will be given a lint file that will be used to lint their code and must abide to it.
Members must not merge with the main branch until their work has been reviewed and approved.
Team members will use camelCase for variable names.
Team members should try to avoid pushing commented out code.
Team members should strive to give informative commit messages.
Team members should use the git workflow.
Team members should give descriptive variable and function names.
To develop the project, the team will use Visual Studio Code. However, any text editor will work. Node.js needs to be installed. Since the project will be built using the MERN stack, mongoDB will be used as the database. It can be run locally or on a server. Finally, all node modules must be installed using npm from the package.json file.