Menu

Ticketsystem

Erik Hänel

Ticket system

This article shall describe the ticket system and the corresponding workflow. Further down, you'll find the template for the ticket's descriptions during the workflow.

Reason for a ticket system

Why do we use a ticket system? It should be enough to document all changes in the changes log and force the users to report bugs and requests via email. But there are a bunch of reasons, why a ticket system supports the development of complex software better than emails:

  • Responsibility: Probably the most important reason is that the responsibility is clear. A ticket always has a creator and an owner. Therefore the one who's in charge of fulfilling the ticket is always clear.
  • Documentation: Tickets document the development process. Because our SVN forces the user to add a bug tracker ID to the log message, every code change is reflected in the corresponding ticket. The ticket itself will also describe, why something has changed and what has changed.
  • Tracking: Tickets have a unique status. Therefore it's always obvious, how many tickets are open and how many are closed. And there won't be an issue, which gets forgotten.
  • Syntax highlighting: A not so important reason is that the ticket description supports code highlighting. Using this highlighting, one developer can perform the analysis and copy the corresponding code into the ticket's description and the other user may do the actual implementation

Workflow

               |
               V
            [open] -------------------------------\
               |                                   |
               V                                   |
           [accepted] -------+-------------------> |
               |             |                     |
               |             V                     |
               | <----- [postponed]                |
               V                                   |
          [analyzing] -------+--------+----------> |
               |             |        |            |
               |             V        |            |
               | <----- [postponed]   |            |
               |                      V            |
               | <----------- [to-be-clarified]    |
               V                                   |
         [implementing] <-----\                    |
               |               |                   |
               V               |                   |
           [testing] ---------/                    |
               |                                   |
               V                                   V
         [fixed/closed]                        [rejected]

Ticket template

Use the following template for the description of the tickets. Insert the template below the description just when the ticket enters the status analyzing.

###Analysis:
(*Describe, what's the issue and which changes have to be made*)

###Implementation:

* Implementation: (*Describe, what you've changed*) 
* Revision: [rXXX]
* Implementation test: (*Describe the type of test, which you performed, and if it was successful*)

###Documentation:

* [ ] ChangesLog updated
* [ ] Code changes commented
* **Documentation articles:**
    * [ ] corresponding documentation articles updated
    * [ ] new documentation articles created
    * [ ] not needed
* **Language files:**
    * [ ] corresponding language files updated
    * [ ] not needed

###Tests:
(*Describe, which tests you performed and their outcome*)

This will produce the following output:

(THE DESCRIPTION IS HERE)

Analysis:

(Describe, what's the issue and which changes have to be made)

Implementation:

  • Implementation: (Describe, what you've changed)
  • Revision: [r123]
  • Implementation test: (Describe the type of test, which you performed, and if it was successful)

Documentation:

  • [ ] ChangesLog updated
  • [ ] Code changes commented
  • Documentation articles:
    • [ ] corresponding documentation articles updated
    • [ ] new documentation articles created
    • [ ] not needed
  • Language files:
    • [ ] corresponding language files updated
    • [ ] not needed

Tests:

(Describe, which tests you performed and their outcome)

Use [ ] to create the checkboxes in the list and [x] to check them:

  • [x] unchecked [ ]
  • [x] checked [x]

Related

Commit: [r123]
Wiki: NumeRe (english)
Wiki: NumeRe

MongoDB Logo MongoDB