Project

General

Profile

Actions

How to write a ticket


This document describes best practices when creating a new or contributing to an existing ticket. In an ideal world a developer not familiar with the problem described in the ticket has all information at hand to be able to work on the problem. All information you gather while working on a ticket should be added to the ticket as well. This also includes email discussions (copy/paste them into the ticket) which would not be accesible by other developers otherwise. Always remember: The ticket system is a tool that should help developers to carry out their work

The Ticket Form

Short summary

Be as explanatory as you can in the summary. It really saves time when browsing through ticket lists. Ideally your ticket has a short summary that describes the problem and no further explanation is needed in the Full description field.

Type

Use the types wisely according to the following recomendations

Bug

Bugs are severe problems and misbehaviourisms of the software. If something goes obviously wrong in the software or is not working as expected, that is considered a bug. Bugs by nature will always have highest priority.

Task

A task is something that was decided, has to be done or has to be implemented but is not critical to the correct workings of the software.

Feature Request

Anything that users would like to be implemented in the future goes into the feature request category. Things considered as nice-to-have go in this category as well. Once a feature request is agreed on it will be moved to the tasks and therefore be queued for implementation.

Full description

Any information that could not go in the short summary or additional information goes into this field. This includes:

  • In case of a bug, instructions to reproduce it

  • Links that hold information connected to the ticket

  • Stack traces

  • Any information useful to somebody working on the ticket

Ticket Properties

Priority

The priority indicates which tickets are more severe and should be worked on first. This is not a totally strict system and you don't have to work on your tickets from top to bottom. If something with lower priority can be fixed easily, go for it. When prioritizing a ticket that was created by a non-developer keep in mind to honour the severity.

Component

Define the component the ticket belongs to. This is quite important because developers might perform searches based on components (e.g. show all tickets with component cdmlib), but is also forgotten very often.

Cc

Add user names here you think that might be interested in the process of working on the ticket.

Milestone

EDIT deliverables as well as internal Sprints are represented as milestones. Choose a milestone according to the rules in [CdmMilestones] or leave blank if unsure. Note: Think twice before adding a ticket to a running sprint. It lies in the nature of Sprints that no new tasks are added when they are actively worked on.

Severity

This field is to be used by external, non developers to give them the opportunity to rank the problem. This has nothing to do with how the ticket will be ranked by the developers through priorities.

Assign To

If you think you know who is responsible for working on the ticket you just created fill in a user name here. If this field is left blank, the ticket gets assigned to the person in charge of the component you selected earlier.

The fields "Keywords", "Dependencies", "Include in GanttChart", "Due to assign", "Due to close" are not really used by the development team at the moment. This might change in the future and their recommended use will be described here.

Updated by Andreas Müller almost 2 years ago · 16 revisions