- The SCRUM methodology is characterized by having specific roles and workflows.
- The SCRUM roles can be summarized as
- Product Owner: represents the product's stakeholders and the voice of the customer.
- Scrum master: a facilitator that helps to ensure the team follows the agreed processes.
- Development team: responsible for delivering potentially shippable product increments.
- The SCRUM workflows can be summarized as
- Sprint planning: bi-weekly meetings for agreeing on the tasks to be done during that sprint.
- Daily scrum: 15-min meeting to report on what was done the previous day, the plans for that day and potential impediments.
- Sprint review: after the sprint, the team reviews what was done and what can be improved in the next sprints.
- Everything that happens during the SCRUM cycle must be documented in an issue board.
- Keep the board always up-to-date!!!
- Read the GitHub Flow branching model description.
- Locate the issue that has been assigned to you in the ZenHub board.
- Create a new branch from
external
, making sure the branch name resembles the associated issue. - Add new code to your branch by making commits and writing meaningful commit messages.
- Create a Pull Request from your branch into branch
external
and explain the proposed changes. - Discuss you submission in the Pull Request review process, ensuring all status checks are successful.
- Once the Pull Request has been approved, merge your branch into
external
.
- Continuous Integration is the practice of merging all developer branches into the
external
branch as often as possible. - Continuous Delivery is the practice of producing fully working (tested) incremental updates that could potentially be deployed at any time.
- Continuous Deployment is the practice to automating the deployments of each new version that is delivered.
- Although there are overlaps between those concepts, when they are all applied, one ends up with
- a single source code repository
- automated builds
- automated tests
- automated deployments
- We will use Travis CI as the automation tool.