Issue Driven Development

Working process for continuous improvement

Page content

Issue Driven Development

Issue Driven Development (IDD), or sometimes called Problem-oriented development, is a software development methodology that emphasizes the use of issues to drive the development process. Each issue represents a task, feature, bug, or any other work item that needs to be addressed. The key benefits of IDD include:

  • Clear Focus: Each developer knows exactly what they need to work on.
  • Better Tracking: Progress can be easily tracked through the status of issues.
  • Improved Collaboration: Team members can discuss and collaborate on specific issues.
  • Documentation: Issues serve as a form of documentation for the development process.

Steps in Issue Driven Development

  • Create an Issue: Identify a task, feature, or bug and create an issue for it.
  • Assign the Issue: Assign the issue to a team member.
  • Work on the Issue: The assigned team member works on the issue.
  • Update the Issue: Regularly update the issue with progress, thoughts, and any blockers.
  • Review and Close: Once the work is done, review the issue and close it if everything is satisfactory.

Updating an Issue

Updating an issue is a crucial part of the IDD process. It ensures that everyone is aware of the current status and any challenges faced.

This should always include any pitfalls seen during this time. A good IDD approach summarizes all of the failures seen during the development process. If failure notes and paths are added to the process, then future developers (including yourself) will know what has been tried rather than seeing the final, and working, result.

Example of Updating an Issue

  1. Open Issue Tracker: Navigate to your issue tracking tool (e.g., GitHub Issues, Jira).
  2. Select Issue: Find and select the issue you are working on.
  3. Add Comment with Thoughts: Add a comment detailing your progress, any challenges, and your thoughts on the issue.
  4. Update Issue Status: Change the status of the issue to reflect its current state (e.g., In Progress, Blocked).
  5. Save Changes: Save your updates to ensure they are recorded.
  6. End: Continue working on the issue or move on to the next task.

By following these steps, you can ensure that your issue tracker remains up-to-date and that your team is always informed about the current state of development.