1 of 36

FIRE COML Operational Guide to Scrum Framework

2 of 36

Overview

Scrum is an agile framework for the process of collaborative work, mainly used in software development.

The process is found in many tech organizations.

The term Scrum originates from rugby, which refers to players packing closely with their heads down to restart a play.

3 of 36

Scrum Team Roles

4 of 36

Product Owner

Before coming up with a product, there needs to be a clear vision of what the product should do.

The person that creates a list of the product features, with inputs from stakeholders (such as users, managers, investors, developers etc.), is the product owner.

Here in FIRE COML, this will be the Faculty Leader (Dr. Tu).

5 of 36

Product Owner

What does the product owner do?

  • Create and manage the Product Backlog, and set priorities for the features during the sprint planning meetings.
  • Review the sprint increments, determine the doneness of completed features, and provide feedback for next iterations.

6 of 36

Product Owner

What the Product Owner does NOT do:

  • Does not specifically assign work to any individual development team member.
  • Does not perform tasks of the Scrum Master.

7 of 36

Scrum Master

A servant-leader in the development team that coaches the team and helps them adhere the Scrum workflow and principles.

At FIRE COML, this will be your� peer research mentor.

8 of 36

Scrum Master

What the Scrum Master should do:

  • Schedule and host Scrum meetings.
  • Ensure Scrum workflow and principles are understood and practiced.
  • Help the team remove impediments.
  • Serve as a mediator in a situation of conflict to help reach a solution.
  • Coach the team, so that they take owner.

9 of 36

Scrum Master

What the Scrum Master does NOT do:

  • Assign tasks.
  • Dominate the discussion.
  • Provide a solution to every problem.
  • Micromanaging.

10 of 36

Development Team

Team members that implements the product.

At FIRE COML, these are the students + the peer research mentor.

11 of 36

Development Team

What does each member in the development team do?

  • Take ownership of the product implementation.
  • Participate in sprint planning meetings with the scrum master and product owner.
  • Pull and carry out the tasks in the sprint planning meeting.
  • Update work progress in daily scrum meetings.
  • Demo completed features in sprint review meetings with the product owner.
  • Participate in sprint retrospective meetings with the scrum master.

12 of 36

Development Team

What the members of the development team should NOT do?

  • Stay idle and quiet, and wait for tasks to be assigned.
    • Instead, pull another task from the sprint backlog if nothing is in progress.
  • Stay idle and quiet, and wait for completion of a prerequisite task.
    • Instead, pull the prerequisite task or work on another task if nothing is in progress.
  • Stay idle and quiet if there is an impediment.
    • Instead, inform the scrum master, voice out the issue during the daily scrum meeting, and seek out a solution.

13 of 36

The goal of a development team is to become a wolfpack!

14 of 36

Scrum Workflow

15 of 36

16 of 36

Product Backlog

A list of features or work items ordered by their priority. Initially created by the product owner.

This is periodically refined over time.

17 of 36

Product Backlog

The product owner prepares the initial product backlog.

18 of 36

Sprint Planning Meeting

Sprint

Planning

Meeting

The product owner meets with the development team for the sprint planning meeting.

At FIRE COML, this is usually done every 2 weeks, and usually immediately after the previous Sprint Review meeting.

19 of 36

Sprint Planning Meeting

Objectives of the meeting:

  1. Translate the priority features(s) in the Product Backlog into a Sprint Backlog of work items.
  2. Breakdown and distribute the tasks to be performed in a Sprint.

20 of 36

The Sprint

Sprint

Planning

Meeting

The sprint, is the set amount of time that the team has to complete the features selected.

Potentially Releasable Increment

Stand-up

Meetings

Sprint

At FIRE COML, this is usually 2 weeks.

21 of 36

Daily Scrum / Stand-Up Meetings

Sprint

Planning

Meeting

During the sprint, the development team meets daily for the daily scrum / stand-up meetings.

Potentially Releasable Increment

Stand-up

Meetings

Sprint

22 of 36

Daily Scrum / Stand-Up Meetings

A short meeting within the development team during the sprint to ensure everyone’s ongoing progress and remove impediments.

Timeboxed to 15 mins each session. If a discussion needs more time, schedule a breakout meeting after the stand-up meeting.

At COML, this should be reported out on the discussion board on ELMs on every weekday. Meeting is optional.

23 of 36

Stand-up / Daily Scrum Meetings

Each dev team member will answer three questions:

  • What did I complete since the last daily scrum meeting?
  • What do I plan to work on today?
  • Do I see any impediments to my work? (optional)

24 of 36

Sprint Review Meeting

Sprint

Planning

Meeting

Potentially Releasable Increment

Stand-up

Meetings

Sprint

After the sprint, the development team meets with the product owner for the sprint review meeting.

Sprint Review�Meeting

25 of 36

Sprint Review Meeting

Objectives of the meeting:

  1. Demo the completed features. (Do not demo unfinished features).
  2. Refine and re-prioritize the product backlog.

When? At FIRE COML, this should be done right after the sprint ends.

26 of 36

Sprint Retrospective Meeting

After the sprint review meeting, the development team meets for the sprint retrospective meeting.

Sprint

Planning

Meeting

Potentially Releasable Increment

Stand-up

Meetings

Sprint

Sprint Review

Meeting

Sprint Retrospective�Meeting

27 of 36

Sprint Retrospective Meeting

A meeting within the development team to discuss:

  1. What went well during the sprint?
  2. What did not go well?
  3. What could be improved for better productivity in the next sprint?

28 of 36

29 of 36

Scrum Tools & Resources

30 of 36

Schedule Meetings with Google Calendar

At FIRE COML, your Scrum Master will use Google Calendar to schedule:

  • Sprint Planning meetings
  • Stand-up meetings (optional)
  • Sprint Review meetings
  • Sprint Retrospective meetings

31 of 36

Sprints, Daily Scrums, and Sprint Retrospectives

At FIRE COML, each team will use the ELMS discussion board to post Sprints, Daily Scrums, and Sprint Retrospectives.

These are graded as a part of your ASN3 Weekly Increment Updates (20% total)

32 of 36

Example

33 of 36

Example - Running a FIRE COML Project

We will use a Face Recognition Project (in Fall 2020) as a case example.

Roles:

  • Product Owner: Dr. Tu
  • Development Team: Jess, Josh, Vlad, Richard

34 of 36

Example - Sprint Planning Meeting

Prioritize list of features and work items. High priority item has more details. Further refined during product backlog refinement meeting.

Example of the Sprint Backlog after the meeting:

  1. Data Preprocessing
    • Download dataset to shared drive
    • Unzip training data in shared drive
    • Create requirements file and package install script
    • ...
  2. Build Face Detection Model
  3. Build Facial Recognition Model
  4. Connect Face Detection Model Output to Facial Recognition Model

35 of 36

Example - Product Backlog Refinement

Right after reviewing Sprint 1, analyze and refine the Product Backlog, and add more details to the new high priority items according to Sprint 1 results.

Example - Product Backlog:

  1. Data Preprocessing
    • Create a batch preprocessing script with visualization of the labels on dataset (Not in previous Sprint)
  2. Build Face Detection Model
    • Create a face detection training script
    • …...
  3. Build Facial Recognition Model
  4. Connect Face Detection Model Output to Facial Recognition Model

36 of 36

Example - Sprint 1 Retrospective

Meeting after Sprint 1 Review meeting, same meeting time for Sprint 2 Planning.

Discuss past failures and plans for improvements.

For example:

  • Issues:
    • Why were the generators not correctly getting data from dataset?
    • Why were the generators so slow?
  • Improvements:
    • Use tfrecords instead of file structure