Issue Management

Issue Specification

  • Issue type

    • Bug

      • A bug which is not that urgent so it will be fixed in next releases

    • Epic

      • A big user story that needs to be broken down

    • Incident

      • A bug from production which needs to be fixed immediately (we can't wait until next release)

    • Story

      • An issue which adds a new functionality into an application

    • Task

      • A mostly technical task that doesn't add any new feature

    • Development Sub-Task

      • A sub-task with code review state

    • Sub-tas

      • The sub-task of the issue

  • Summary (title)

    • Short and accurate description

    • Used as commit message later

    • Use imperative form

      • If applied, this commit will your subject line here

  • Priority

    • Critical

      • Only for critical incidents that prevent using the fundamental functionality of the application

    • High

      • Important features that need to be delivered very soon

      • Bugs that need to be fixed in the next version

    • Medium

      • Default priority

    • Low

      • Nice to have features and improvements

  • Components

    • All affected components

    • Components are assigned to Story, Bug, etc. (not Subtasks)

  • Subtasks

    • Subtask for each git repository by default (FDP Server Implementation, FDP Frontend Implementation, etc.)

    • Use Subtask for a component when necessary (e.g., more people working in the same repository on different component)

Issue Workflow

1. Create Issue

  • Fill in the Summary (title) according to the specification and Description if necessary

  • Assign Components that will be likely affected

  • Assign Priority according to the specification

  • Move issue to an appropriate position in the backlog (based on its priority compared to the other issues)

2. Plan Sprint

  • Select issues for the sprint

  • Reassign Priority within the sprint (High for must have issues)

  • Assign Version

  • Review Components and update

3. Start Working

  • Create Subtasks according to the specification

  • Assign people to the subtasks

  • Set Subtask to In Progress

4. Finish Working

4.1 Working in the base branch (develop)

  • Create a commit with the Subtask issue number and main issue Summary (title)

    • e.g., [FDP-123] Add RDF store

  • Push commit and set Subtask to Done

4.2 Working in a separate branch

  • Create a new branch according to Gitflow Workflow

  • Squash all commits before opening a pull request

  • Use the same naming convention for commit and pull request as in 4.1

  • Use Rebase and Merge to have a linear history