Originally published at ssojet

A screenshot showing a list of sub-issues on GitHub.

Image courtesy of GitHub

GitHub has recently introduced sub-issues to improve task organization within its issue tracking system. This feature allows developers to break down larger tasks into smaller, manageable components using a parent-child hierarchy. The implementation of sub-issues is a response to the need for better organization, especially as projects grow in complexity.

Sub-issues enable teams to track progress more effectively, ensuring that related activities are grouped logically. For instance, a parent issue can be divided into distinct sub-tasks assigned to different teams, such as marketing or UI/UX design. This hierarchical structure allows for clearer visibility and control over project workflows. The decision to create a new hierarchical structure rather than modifying existing task lists was critical, involving significant changes to data models and rendering logic.

"From a data modeling perspective, the sub-issues table stores the relationships between parent and child issues," said GitHub engineer Shaun Wong. This model ensures that the hierarchical relationships are maintained efficiently.

For efficient data retrieval, sub-issues utilize MySQL relationships and are exposed through GraphQL endpoints. This design choice enables flexible querying and enhances performance, making it easier for teams to manage large projects. GitHub has also integrated automatic updates for parent issue progress based on sub-issue completion, streamlining the management process.

To learn more about sub-issues, visit the GitHub blog on Introducing sub-issues and the GitHub Docs for Adding sub-issues.

Features of GitHub's Enhanced Issue Management

GitHub has rolled out several features alongside sub-issues, including issue types, advanced search capabilities, and increased limits on GitHub Projects.

Issue Types

With issue types, teams can classify issues as bugs, features, or tasks, providing a standardized way to manage work across repositories. This classification helps teams gauge progress and prioritize tasks effectively. For implementation guidance, refer to Managing issue types.

Advanced Search

The new advanced search functionality allows users to build complex queries using logical operators like AND and OR. This feature simplifies the process of finding relevant issues quickly. For detailed instructions, check out advanced search documentation.

Increased Project Limits

GitHub has expanded the limit on items in GitHub Projects from 1,200 to 50,000 items per project. This enhancement responds to user feedback, increasing the capacity for managing extensive project backlogs. For more details about this change, see the GitHub Changelog.

The Importance of Hierarchical Structures in Project Management

Utilizing hierarchical structures, such as sub-issues, significantly enhances project management capabilities. This approach allows teams to manage dependencies effectively and provides clearer visibility over project statuses. As Wong noted, "sub-issues significantly improved their ability to manage large projects," emphasizing the organizational benefits.

Additionally, the hands-on experience with sub-issues during internal testing helped GitHub identify areas for improvement. Feedback from beta testers was crucial in shaping the final product, ensuring that it met the needs of the community.

For a deeper understanding of the iterative development of sub-issues, refer to the blog post Evolving GitHub Issues and Projects.

Conclusion

The new capabilities introduced by GitHub, including sub-issues and enhanced search functionalities, not only improve task organization but also streamline project management. These features are instrumental for teams dealing with complex projects, ensuring that nothing falls through the cracks.

For those interested in similar organizational tools, consider exploring ssojet for secure single sign-on (SSO) and user management solutions tailored for enterprise clients. SSOJet’s API-first platform includes features like directory sync, SAML, OIDC, and magic link authentication, designed to enhance your authentication processes.