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
- Start by meeting to define deliverables
- Determine the due date for all the deliverables
- Assign each deliverable to a single person
We’ll follow a 1-week schedule
A simplified sprint flow
Sprint visualization
Taken from Kanban
- Create new board for the sprint
- Put all the tasks into the “To do” column
- When a task is underway, move to “In progress”
- When a task is complete, move to “In review”
- 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