Table of Contents
Practical tips for getting started with issues
-
Understand What an Issue Represents
Familiarise yourself with the types of issues (e.g., bugs, feature requests, tasks, documentation needs) and how they fit into a project’s workflow.
Browse through the issue tracker of an open-source project on platforms like GitHub or GitLab. Read through different issues to understand the variety and structure of issues used by development teams.
-
Learn the Issue Lifecycle
Understand the typical lifecycle of an issue, from creation to completion. The lifecycle usually includes:
- Creation: A developer, user, or stakeholder identifies a task, bug, or feature request.
- Elaboration: The issue is discussed, clarified, and elaborated to ensure it is well-defined.
- Assignment: The issue is assigned to a developer or team member responsible for its resolution.
- Implementation: The developer works on resolving the issue.
- Review: The work is reviewed by peers or team leads for quality assurance.
- Testing: The resolution is tested to ensure the issue is addressed properly.
- Closure: The issue is closed once it meets the acceptance criteria and is verified as resolved.
Try creating a simple project and practice this lifecycle by creating an issue, assigning it to yourself, implementing it, reviewing it, and closing it.
-
Use an Issue Tracker
Start using an issue tracker (like GitHub Issues, Jira, or Trello) for your own projects, even if you’re working solo.
Create issues for bugs, new features, or improvements as you work on a project. Break down larger tasks into smaller issues. This will help you get used to organising your work and understanding how issues can track the progress of a project.
-
Collaborate on an Open-Source Project
Contribute to an open-source project by participating in the issue tracker. Look for beginner-friendly issues labeled “good first issue” or “help wanted.”
Find an issue in an open-source repository and work on it. Follow its lifecycle from understanding the problem to submitting a pull request (PR) that resolves it. This will give you hands-on experience with the collaborative issue process.
-
Understand the Role of Issue Assignment
Learn how issues are assigned to team members based on their expertise, availability, or project priorities.
If working in a team, ask to be assigned issues or volunteer for tasks. Alternatively, on a solo project, assign issues to yourself to practice issue ownership and responsibility.
-
Pay Attention to Labels and Milestones
Get familiar with the use of labels (e.g., bug, feature, priority) and milestones (grouping issues under larger goals or releases).
Use labels and milestones to categorise and prioritise your issues. For example, mark bugs as bug or feature requests as enhancement. This helps with organising and filtering tasks.
-
Practice Writing Clear Issues
Learn to write clear and well-defined issues that include enough context for others to understand the problem or task.
When creating an issue, include details such as a description of the problem, steps to reproduce (for bugs), expected vs. actual behaviour, and any technical details or references. Practice writing issues that are clear and actionable.
-
Follow Issue Discussions
Follow issue discussions in collaborative projects to see how issues evolve over time through feedback, comments, and updates.
Participate in discussions by leaving comments on issues or reading through the back-and-forth conversations on open-source project issues. This helps you understand how teams collaborate and elaborate on problems before they are solved.
-
Track Your Progress
Use the issue tracker to monitor your progress. As you work on tasks, regularly update the issue with comments or status updates.
After working on an issue, add a comment to provide updates or link your commit or pull request. This helps keep the team informed and makes it easier to track the issue’s progress through its lifecycle.
-
Learn About Pull Requests (PRs) and Issue Linking
Understand the relationship between issues and pull requests (PRs), which are used to submit and review code changes that resolve issues.
When submitting a pull request, link it to the corresponding issue by referencing it in the PR description (e.g., “Fixes #123” in GitHub). This closes the issue automatically when the PR is merged, connecting the code change to the task.
-
Use Agile or Kanban Boards
If your project uses Agile or Kanban, familiarise yourself with issue boards, where issues are tracked visually in different stages (e.g., To Do, In Progress, Done).
Set up a Kanban board for your project and move issues through different stages. This helps you visualise the issue lifecycle and track project progress more easily.