Project

General

Profile

How to write a ticket » History » Revision 5

Revision 4 (Niels Hoffmann, 12/22/2009 03:34 PM) → Revision 5/16 (Niels Hoffmann, 12/22/2009 03:41 PM)

 
 # How to write a ticket 


 This document describes best practices when creating writing a new or contributing to an existing ticket. In an ideal world 



 ## Creating a developer not familiar with the problem described in the new 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 descriptions 


 #### 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 

 * s.o. 



 


 In an ideal world a developer not familiar with the problem described in the ticket at all has all needed information at hand and is able to work on the problem immediately. 




 ### Ticket Properties 



 #### Priority 

 The priority indicates which tickets are more severe and should be worked on first. However 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. 



 #### 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. Simply choose a milestone that fits your ticket 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 as they see fit. Note: This has nothing to do with what the pro 



 #### 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.