Module 3 · Issue Tracking and Code Review
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
