Skip to content

Scrum Using GitHub

Sergii Diachenko edited this page Feb 3, 2018 · 2 revisions

ITA group Scrum process

As this project is also used as a learning space for ITA groups which are colocated in timezone and space we use Scrum process to deliver some features. This page describes how we manage Scrum over GitHub project.

Project board

For each course we create separate board. You can find active project using this query.

Scrum process

This section gives an overview of Scrum process we'd like to use for ITA.

Scrum at glance Image source: https://www.neonrain.com/agile-scrum-web-development/

Backlog refinement and estimation

Before team can take anything into work they should understand features and size them in order to support future planning. Team meets with PO on regular basis in order to clarify requirements.

Note: If PO is not present on the grooming then put your questions into issue comments and mark it with req-needed label

Once requirements are clear team can size them. We use Story Points as a measure. As an estimation technique we use Planning poker.

As a team collocated they can use Planning Cards or some online tools like Pointing Poker app

Note: Once team estimates a particular issue they should mark mark issue with appropriate label. Look at labels starting with "points:" points: 0,points: 1,points: 2,points: 3,points: 5,points: 8,points: 13

Use points: ∞ for very big issues which have to be split into smaller ones.

Sprint planning

Sprint planning consists of 2 steps:

  1. Team takes items from Team Backlog according to priority and fills up Sprint backlog until there is enough work.
  2. Each issue taken into sprint should be split into subtasks describing particular steps to get issue into done state.

Important: It is crucial that whole team participates in task breakdown and each person is comfortable with any task

As :octocat: GitHub does not support sub tasks we need to create separate issue for each sub task and link it to parent.

For each subtask you have to do following things:

  1. Create issue with label type: subtask. Name should be descriptive. Also add detailed description so you don't forget what you've decided
  2. Reference subtask from parent issue. (See example Test Issue)
  3. Put reference to parent issue in subtask description.

Note: As we don't have QA we do manual testing by developers. So each issue in general should have at least 2 subtasks one for implementation and another for testing. Those subtasks should be executed by different team members. But not all items require such subtasks so chose according to the particular case.

All created subtasks are put into To Do column. Consider priority here as well.

Sprint execution

Each team member assigns task for themselves and caries them to completion. Once corresponding task is done you should mark its related subtask item as done in parent issue.

Issues in Sprint backlog are closed after Sprint demo/revew.

Sprint demo/review

Team demonstrates completed work to PO. If issue matches DoD it will be closed.

Sprint Retro

Team gathers to analyze what was good or bad during sprint. During meeting each team member answers 2 questions:

  1. What was good during sprint?
  2. What should we improve?

After all team members shared their opinions team analyzes answers for question #2 and tries to come up with a solution on how to fix mentioned issue.

Scrum Board Columns

Team Backlog

Contains all issues which are planned to be done for ITA group in priority order. PO adds issues here and manages priority. Team estimates items

Sprint Backlog

List of issues team commited to accomplish in given sprint.

To Do

List of all subtasks for this particular sprint.

In Progress

Items which are currently being worked on or onder review.

Done

All done issues

Clone this wiki locally