SECTION 03 / 6

Module 3 · Issue Tracking and Code Review

4 min read
On this page 11 headings

Learning goals: How teams report problems, manage issues, review pull requests and collaborate on better code.

A Bug Becomes a Trackable Issue

An issue is reported by a developer, tester or user and must be saved and tracked until it is fixed. An issue tracking system manages and tracks all issues reported in a software project.

Figure 29. A Bug Becomes a Trackable Issue.
Figure 29. A Bug Becomes a Trackable Issue.
Open image ↗
Illustration: Module 3 · Issue Tracking and Code Review

Remember: Record a problem as an issue before the details disappear.

Why Track Issues?

Issue tracking helps deliver high-quality products; reduce cost by prioritizing important and frequent use cases; keep a history of issues and test newer or patched versions against them; provide better service and satisfaction for customers; and improve team efficiency and communication.

Figure 30. Why Track Issues?
Figure 30. Why Track Issues?
Open image ↗
Illustration: Module 3 · Issue Tracking and Code Review

Remember: Tracking gives visibility to what needs attention, not just what code has changed.

GitHub: Create a New Issue

In a hosted repository such as GitHub, a contributor usually opens the Issues section and chooses New issue. They enter a useful title and description and then submit it. A clear issue tells others what went wrong and how to recognise the problem.

Figure 31. GitHub: Create a New Issue.
Figure 31. GitHub: Create a New Issue.
Open image ↗
Illustration: Module 3 · Issue Tracking and Code Review

Remember: Issues is for recording work; a pull request is for proposing code changes.

Assign, Label and Discuss an Issue

Others can see the issue and add comments; it can be assigned to developers. On assignment or tagging, an email notification is sent. Labels let similar or module-specific issues be listed later. You can create a branch or pull request mapped to an issue, and more than one issue can map to a branch or vice versa. Close the issue when fixed.

Figure 32. Assign, Label and Discuss an Issue.
Figure 32. Assign, Label and Discuss an Issue.
Open image ↗
Illustration: Module 3 · Issue Tracking and Code Review

Remember: Assignment, classification and discussion make a ticket actionable.

Filter Open, Closed and My Issues

List all issues or filter them: all open, all closed, or assigned to a person.

Figure 33. Filter Open, Closed and My Issues.
Figure 33. Filter Open, Closed and My Issues.
Open image ↗
Illustration: Module 3 · Issue Tracking and Code Review

Remember: Use filters to see the work relevant to your next step.

From Issue to Branch to Pull Request

A pull request proposes the branch’s changes for review and merging. Create a branch from the issue page or the branches tab; commit changes (directly on GitHub if you like); create the pull request from the branch page. It is linked to the issue automatically if the branch was created from the issue page; otherwise map it from the pull request page.

Figure 34. From Issue to Branch to Pull Request.
Figure 34. From Issue to Branch to Pull Request.
Open image ↗
Illustration: Module 3 · Issue Tracking and Code Review

Remember: Issue → Fix Branch → Pull Request → Review → Merge.

Code Review: More Than Correctness

Code review is a software quality assurance activity where one or more people examine the changes a developer made. It is also called peer review, because peers other than the author do it. It checks not only logical errors but also that code is well documented, follows best practices and is consistent with project/team standards, giving better quality and maintainability.

Figure 35. Why Code Review Matters.
Figure 35. Why Code Review Matters.
Open image ↗
Illustration: Module 3 · Issue Tracking and Code Review

Importance of code review: improves code quality — not just correctness, but also efficiency, complexity and security; minimizes technical debt; reduces risk because testing cannot guarantee bug-free software; supports knowledge transfer; makes QA testing easier because risks are found earlier.

Review Files Changed in a Pull Request

On GitHub, peers open the PR, review “Files changed”, add comments and mark the changes approved when satisfied.

Figure 36. Review Files Changed in a Pull Request.
Figure 36. Review Files Changed in a Pull Request.
Open image ↗
Illustration: Module 3 · Issue Tracking and Code Review

Remember: A focused, line-specific review comment is easier to act on.

Review Feedback to Merge and Close

After approval the author merges into the source branch (main in the GitHub demo); the issue mapped to the PR closes automatically and can still be viewed under closed issues.

Figure 37. Review Feedback to Merge and Close.
Figure 37. Review Feedback to Merge and Close.
Open image ↗
Illustration: Module 3 · Issue Tracking and Code Review

Pair Programming vs Code Review

Pair programming is an agile technique where two programmers work together at one workstation; one writes code while the other reviews it simultaneously. They switch roles frequently. It is getting popular slowly.

Figure 38. Pair Programming vs Code Review.
Figure 38. Pair Programming vs Code Review.
Open image ↗
Illustration: Module 3 · Issue Tracking and Code Review

Remember: Pair programming is live collaboration; code review examines a submitted change.

Quick revision and self-check

Question: Give two reasons an issue tracking system is important.

Answer: Any two: high-quality products; reduced cost through prioritization; issue history for testing newer/patched versions; better customer service and satisfaction; better team efficiency and communication.

Question: How is a pull request different from an issue?

Answer: An issue records a problem or task; a pull request proposes a code change for review.

YOUR STUDY PROGRESS

Finished this section? Save your progress.

Back to top ↑