Skip to content
This repository has been archived by the owner on Jul 22, 2024. It is now read-only.

Latest commit

 

History

History
37 lines (31 loc) · 3.21 KB

2-UNDERSTAND.md

File metadata and controls

37 lines (31 loc) · 3.21 KB

Understanding agile development practices and frameworks

Having SCRUM meetings

  1. The SCRUM methodology is characterized by having specific roles and workflows.
  2. 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.
  3. 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.
  4. Everything that happens during the SCRUM cycle must be documented in an issue board.
  5. Keep the board always up-to-date!!!

Using the "GitHub Flow" branching model

  1. Read the GitHub Flow branching model description.
  2. Locate the issue that has been assigned to you in the ZenHub board.
  3. Create a new branch from external, making sure the branch name resembles the associated issue.
  4. Add new code to your branch by making commits and writing meaningful commit messages.
  5. Create a Pull Request from your branch into branch external and explain the proposed changes.
  6. Discuss you submission in the Pull Request review process, ensuring all status checks are successful.
  7. Once the Pull Request has been approved, merge your branch into external.

Automating integration, delivery and deployment

  1. Continuous Integration is the practice of merging all developer branches into the external branch as often as possible.
  2. Continuous Delivery is the practice of producing fully working (tested) incremental updates that could potentially be deployed at any time.
  3. Continuous Deployment is the practice to automating the deployments of each new version that is delivered.
  4. 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
  5. We will use Travis CI as the automation tool.