7 Planning & Tracking

Planning and Tracking

Objective

  1. Understand the importance of planning and tracking in software development.
  2. Use GitHub Projects and GitHub Issues to plan and track software projects.
  3. Create WBS and Ishiwaka (fishbone) diagrams.

Planning

“Work expands so as to fill the time available for its completion.” —Northcote Parkinson

If you give yourself a week to complete a two-hour task, then (psychologically speaking) the task will increase in complexity and become more daunting so as to fill that week. It may not even fill the extra time with more work, but just stress and tension about having to get it done. If you give yourself only one hour, you will be more focused and effective in completing the task.

“Data expands to fill the space available for storage.” —Parkinson’s Law

Projects

A project is about a process and the people involved. A project can span over multiple milestones and repositories. Projects are a tool for Kanban methodology. Projects are good for continuous delivery and steady flow of work.

Milestones

A milestone is about a product. A milestone can contain parts of different projects. Milestones are a tool for Scrum methodology. Milestones are good for time-boxed iterations and working in sprints with batches of issues.

Work-Breakdown Structure

  • Hierarchical
  • Collectively exhaustive (100% rule)
  • Mutually exclusive
  • Focuses on outcomes, not actions

Exercise 1

Create a work-breakdown structure (WBS) diagram for the project using PlantUML (opens in a new tab).

Exercise 2

Create a project in your organization account using GitHub Projects, with your username part of the project’s name. Populate the project using the items from Exercise 1. Create two milestones in your repository using GitHub Issues. Link the milestones to the project by converting some of the items into issues and assigning them to different milestones.

“It seems that perfection is reached not when there is nothing left to add, but when there is nothing left to take away.” —Antoine de Saint-Exupéry

Project Management

More tools in CMPS 307: Introduction to Project Management and Entrepreneurship.

Follow the 4 Task Management guide to learn more about effective task management using the Eisenhower method and the Pareto principle.

Tracking

“If you can get today’s work done today, but you do it in such a way that you can’t possibly get tomorrow’s work done tomorrow, then you lose.” —Matrin Fowler

Issues

Items

Types

Description

Tasks

Tasks (sub-issues) can be created using tasks lists:

  • Task 1
  • Task 2

Assignees

Labels

Fields

Default fields. Custom fields can be added if needed.

Projects

Statuses

A simple approach is to use three stages: Todo, Doing, and Done. Labels can be created as needed: Triage, Backlog, Todo, In Progress, In Review, Done, Canceled, Duplicate, etc.

Milestones

Development

Participants

Comments

Comments can be used for discussions, notes, and updates. GFM is supported.

References

Issues can be referenced using #number, for example, #1, #1337, and #42.

Layouts

“Measuring programming progress by lines of code is like measuring aircraft building progress by weight.” —Bill Gates

Table

Spreadsheet. Simple and effective. It is used to keep track of issues and tasks.

Board

One more dimension based on status. Kanban board. Popularized by Trello (opens in a new tab). It is used to limit the amount of work in progress (WIP) to prevent bottlenecks and improve efficiency.

Triage

Backlog

Todo

Ready

Doing/In Progress

In Review

Duplicate

Canceled

Done

Kanban (看板) is an effective way to manage projects and make your workflow even better. The term “Kanban” originates from the Japanese language, translating to “visual signal” or “card.” Basically, you use a board with columns that show the different stages of your plan, and you use cards to represent tasks or features.

Kanban is a visual system used to manage and keep track of work as it moves through a process. The word kanban is Japanese and roughly translated means “card you can see.” The system was developed by Toyota to help manage their manufacturing process. The idea is to limit the amount of work in progress (WIP) to prevent bottlenecks and improve efficiency.

The board is divided into sections like Todo, Doing, and Done. It is easy to understand and helps to keep track of everything. and also helps the teams to monitor and control at each stages and apply changes to improve efficiency.

Roadmap

“First, solve the problem. Then, write the code.” —John Johnson

One more dimension based on time. Similar to a Gantt chart without dependencies. Gantt charts are more suited for the Waterfall methodology. It is used to plan and track projects.

Ishikawa

Ishikawa diagram (opens in a new tab). Fishbone diagram. Cause-and-effect diagram. It is used to identify the root causes of a problem. A visual representation of the possible causes of a problem.

Exercise 3

Create an fishbone diagram documenting a project problem/issue of your choice.

Cycles

Scrumban

Scrumban: The best of two Agile methodologies (opens in a new tab), Scrumban: Mastering two Agile methodologies (opens in a new tab)

Linear

Linear method: Practices for building (opens in a new tab)

  • Projects
  • Milestones
  • Issues
  • Cycles
  • Workflows
  • Views
  • Initiatives
  • Teams
  • Backlog
  • Triage
  • Discussions
  • Integrations

Exercise 4

Link Linear with your GitHub Issues through its GitHub integration (opens in a new tab) and submit a screenshot, even if the integration fails.

Structure

      • breakdown.pu
      • fishbone.pdf
      • integration.png
  • Resources