Understanding the basics of issue tracking (including how issue tracking tools help in the software development lifecycle and what myriad capabilities are offered by popular issue tracking systems) is important for software development teams.
|Resource name||Issue tracking software|
|Websites||JIRA, Tracker, Bugzilla, Bitbucket, GitHub, GitLab|
|Focus||Issue tracking and collaboration|
Issue tracking software is used to make it easier for software developers to manage, record, track, resolve and be able to search on past issues, software bugs, or other problems. Issue tracking software is especially useful in eliminating duplicate efforts.
Software developers who collaborate and work in a community environment want simple but effective tools that are intuitive and easy to use. At the same time, they want the tools to be robust and have options that are straightforward to understand and are benefical to all team members. Some developers collaborate across countries and in different time zones and must work rapidly to meet hard deadlines.
This article focuses on issue tracking tools for people who collaborate on scientific software across distances and disciplines (computer scientists, engineers, physicists, software developers, etc.)
Folks in the scientific computing field need a myriad of capabilities from issue tracking systems:
- Be accessible anywhere, from any system, i.e., web based
- Be available for users both to report bugs and to track progress on requests
- Allow developers to manage permissions for updating issues
- Provide email updates on status of issues
- Allow priority setting on issues
- Allow searching and sorting
- Allow labeling issues with keyworks to facilitate searching
- Allow establishing and tracking milestones needed for resolutions
- Allow both users and developers the ability to add and update notes
- Provide links from the issue tracker to the commits in the software that represent progress on the issue
- Be intuitive to new and casual users, and retain features needed by experienced developers
- Have a help package and good documentation
- Be affordable (no hidden costs)
- Provide many features and functions - (features not used can be transparent)
- Provide history tracking, intuitive workflow, continuous integration, and real-time collaboration
Most modern web-based repository hosting systems such as BitBucket, GitHub, and GitLab provide integrated issue tracking systems and support most, if not all, of the capabilities listed above.
This article lists issue tracking tools that are most frequently used by scientific software developers. However, in addition to issue tracking software, there exist several other options, such as trouble ticket systems used by HelpDesks across organizations. Some popular ones are ServiceNow, Remedy, Salesforce, Samanage, Wrike, etc.
Wikipedia has an extensive page comparing various issue tracking systems that are in use today.
Popular Issue Tracking Software
The following is a short list of issue tracking software used or recommended by scientific software developers in the high-performance computing.
JIRA by Atlassian
JIRA is a proprietary issue tracking product, developed by Atlassian. It provides bug tracking, issue tracking, and project managment functions. According to Atlassian, Jira is used for issue tracking and project managment by over 75,000 customers in 122 countries around the globe and is a mature, usable software product. Thousands of teams choose JIRA to capture and organize issues, assign work, and follow team activity.
Tracker by PhaseWare
Tracker is another well-established issue tracking product, which supports organization needs. Its issue tracking solution provides a customizable and configurable, responsive tool that can help a project streamline the issue tracking process, effectively manage the workload, and increase productivity.
Bugzilla is a web-based general-purpose bugtracker and testing tool originally developed and used by the Mozilla project and licensed under the Mozilla Public License. Bugzilla is server software designed to help manage software development. Its features include excellent security to protect confidentiality, integrated email capabilities, and advanced query tools that can remember searches.
Bitbucket is built for professional teams and is a distributed version control system that makes it easy for one to collaborate with their team.
GitHub is a web-based hosting service for version control using Git. It is mostly used for computer code. It offers all of the distributed version control and source code management functionality of Git as well as adding its own features.
GitLab is a web based Git-repository manager with wiki and issue-tacking features, using an open-source license, developed by GitLab Inc.
With several options now available, software developers have oppurtunities to pick and choose an issue tracking tool that fits the needs of their team and overall project.