Planning software

An overview of the Agile development process, parts we’re going to use, and how we’ll use GitHub as project management software.

Go fullscreen: ⌃⌥F

Planning software

Agile practices

  • Focus on users & customers
  • Reorient when requirements & people’s minds change

Methodologies

  • Scrum: Small features, completed in a set timeframe, assigned to a single person
  • Kanban: A visualization system for tracking task flow

Sprints

Taken from Scrum

  1. Start by meeting to define deliverables
  2. Determine the due date for all the deliverables
  3. Assign each deliverable to a single person

We’ll follow a 1-week schedule

A simplified sprint flow

Sprint visualization

Taken from Kanban

  1. Create new board for the sprint
  2. Put all the tasks into the “To do” column
  3. When a task is underway, move to “In progress”
  4. When a task is complete, move to “In review”
  5. When approved, move to “Done”

An example task board

GitHub project management

We can do all this within GitHub’s tools!

  • Issues — tasks: categorized, assigned to people
  • Milestones — sprints: group issues & assign a deadline
  • Projects — visualization: create & automate boards

And store our code in the same place!

GitHub Issue labels

Project boards

  • Create a new “Project” for each sprint (week)
  • Set up automation features so some cards can automatically move

Milestones

Every sprint (week) create a milestone with a deadline to group all the sprint’s tasks.

Issues as todos

Each task is…

  • Defined in a separate Issue
  • Further broken down within the Issue using lists
  • Assigned to a single individual
  • Assigned to the sprint’s milestone
  • Assigned to the sprint’s project board

Issue or it doesn’t exist

Slack is ephemeral—if there isn’t an Issue on GitHub, the task doesn’t exist.

  • Slack is for quick questions and starting points
  • Issues are for deep discussions & work definitions
Start

Planning software

An overview of the Agile development process, parts we’re going to use, and how we’ll use GitHub as project management software.