ArsDigita Archives
 
 
   
 
spacer

Ticket Tracker Application Requirements

by Henry Minsky (hqm@arsdigita.com)

I. Introduction

The Ticket Tracker application provides tracking of defects on a per-project basis. A defect is any change request, such as a bug or a feature request. In this application we call defects as tickets for historical reasons, in reference to trouble tickets used in customer support centers.

II. Vision Statement

A project will require developers to work on many tasks, where each task may be moved through several states. The Ticket Tracker allows developers on each project to keep track of discrete tasks called tickets. It is important to provide powerful search, display, and email notification functions in order to make the system useful in a production setting, where thousands of tickets may be active within the system at any given time.

III. System/Application Overview

  • Create Project
    Project Administration
    • Create Feature Areas
    • Assign Feature Areas To Projects
  • Enter Ticket
  • Make Assignments
  • Display Tickets
    • Customizable Sorting and Filtering of tickets
  • Search
  • Edit Ticket
  • Generate Reports
  • Email Handling
    • Email alerts when tickets created, assigned, or state is changed
    • Handling of tickets submitted or replied to via email

IV. Use-cases and User-scenarios

  • Customer/User

    A user reports a defect via a ticket entry page. They select a project and feature area to classify the defect. Information is filled out in a form, and the ticket is created with a state marked as open. It may be assigned to a default project assignee automatically.

    The user may search the database using a Quick Search or Advanced Search form. This is important in order to prevent duplicate defects from being entered multiple times.

  • Developer or Customer Support

    A developer logs into the server and views the ticket home page. Based on their default settings, they may be given a list of all tickets assigned to them, or all tickets within a set of projects to which they are assigned.

    The developer selects a ticket, and then decides what to do. They can take some action, and then edit or move the ticket to a new state, such as Fixed Awaiting Approval or Need more Information. If they have fixed the ticket and the fix has been verified , they may move it to Closed state.

    The developer may link tickets together to group related defects. For example, one coding bug in a application may be responsible for numerous defect reports, and when the bug is fixed, all the related defects should be re-examined and possibly closed.

    A project manager can generate reports and summaries of all tickets in a project, sorted or filtered using search criteria.

  • Administrator

    The ticket system administrator can create new projects or feature areas, edit the list of feature areas for a given project, or close a project which is no longer active. A project is owned by an ACS group, so that some security or filtering can be performed on this property.

V.A Data Model Requirements

  • 10.10 Project

    10.10.10 Each project has a unique identifier

    10.10.20 Each project has a short and long title

    10.10.30 Each project has a version

    10.10.40 Each project has a creator

    10.10.50 Each project has a start and end date

    10.10.60 Each project belongs to a user group

    10.10.70 A project can be set as viewable only by members of it's owner group

    10.10.80 Each project has ticket code set associated with it. A code set is the collection of codes that a Project or set of projects use on their tickets (so for example aD can have a small set suited to small groups and HP can have a large set which reflects their formalized ticket resolution process. These include states for ticket type, status, deverity, priority, source and cause.

    10.10.90 Each project has a default display mode

    10.10.100 Each project has a message template, which is used to fill in a new ticket entry message text area.

    10.10.110 Each project has a list of Feature Areas which are used to organize project tickets into categories.

  • 10.20 Feature Areas

    A Feature Area is simply a category by which tickets can be classified, such as "Customer Support", "Facilities", or "Munich Office".

    10.20.10 A Feature Area has a unique title

    10.20.20 A Feature Area has a description

    10.20.30 A Feature Area has default message template, which is presented to a user when entering a new ticket in that Feature Area.

V.B Display Requirements

    20.10 Ticket Listing

    20.10.10 The user views tickets from a table view which contains summary information about tickets. The tickets shown are drawn from a list which is generated by a current set of filter conditions.

    The filter conditions are based on the following orthogonal conditions:

    • By creator [me | anyone]
    • By assignee [mine | everyone's | unassigned]
    • By status [open | deferred | closed | all]
    • By creation time [last 24hrs | last week | last month | all]

    20.10.20 Tickets in the summary listing can be sorted in ascending or descending order using the following criteria. Sorting is allowed on multiple criteria, such as by deadline and then priority.

    • ID#
    • Priority
    • Ticket_Type
    • Type
    • Submitted date
    • Status
    • Severity
    • Deadline
    • Assigned to
    • Subject
    • Project
    • Feature area
    • Modified date
    • Closed date
    • Public?
    • Notify?
    • Version

  • 20.20 Persistent Preferences

    A particular set of sort and view filter criteria can be saved and named on a per-user basis. This allows custom views to be added, and a customized "home" page for the user to view tickets in the most useful form for their daily work.

    20.20.10 Custom Table View A new table view can be created and named for viewing tickets. The table view consists of an ordered list of data fields which the user wants to see listed.

    20.20.20 Custom Sort Filter A new sort filter can be created and named for listing the tickets in a table view. The sort order consists of a list of primary, secondary, tertiary, etc columns on which to sort the table of currently viewable tickets.

  • 20.30 Project Summary Pages

V.C Ticket Entry Requirements

  • 30.10 Ticket Data Fields

    30.10.10 Each ticket has a unique ID

    30.10.20 Each ticket belongs to a single project

    30.10.40 Each ticket has a software version string

    30.10.50 Each ticket belongs to a Feature Area (also known as domain)

    30.10.70 Each ticket has a creator

    30.10.110 Each ticket has a one line summary

    30.10.120 Each ticket has a free text description, which can be formatted as plain running text, HTML, or preformatted (fixed width font verbatim) text.

    30.10.150 A ticket may be submitted via a web browser, in which case the following information will be stored: Browser header info, user IP address

    30.10.240 Each ticket has the following state variables, which take on values defined by the code set in effect for the current ticket system configuration.

    • Ticket Type (e.g., Bug, Task, Enhancement request)
    • Priority
    • Status
    • Severity
    • Source (e.g., developer, customer)
    • Cause

    30.10.300 Ticket Status Change Time/Date Fields

    30.10.310 Posting Time

    30.10.320 Last Status Change

    30.10.330 Closed Date

    30.10.340 Closed By

    30.10.350 Deadline

    30.10.480 Last Modified Date

    30.10.490 Last Modifying User

    30.10.390 A ticket which is overdue may have periodic "nag" notifications sent to the assignees

    30.10.410 A ticket is marked as private to the members of the project's group, or public

  • 30.20 Editing Tickets

    30.20.10 A ticket can be edited by an authorized user. A quick-edit mode should be provided whereby common tasks such as moving to a fixed set of states or adding a comment.

    A full edit mode must be provided which allows the user to edit any of the data fields.

    30.20.20 An audit trail must be maintained which lists the user and date for each data field which is changed on a ticket.

V.D Search Requirements

  • 30.30 Search

    30.30.10 Simple Search A single input text field will be supplied to perform a simple search for tickets. The text entered in the simple search field will be matched against a set of common data fields in a ticket, including the title, message, comments, and creator name. If the search key entered is an integer or integers, then tickets with those id numbers will be shown.

    30.30.20 Advanced Search An advanced search option will show a form which allows the user to enter explicit keywords and search choices to match on specific data fields such as ticket status or creation date.

    Results presented from the search function will be presented in the main ticket view window, as the results of any other filtering function would be.

V.E Administrator Interface Requirements

  • 40.10 Administrator Functions

    Activate / Deactivate Project

    Edit Project

V.F Report Requirements

  • 50.10 Report Functions

    50.10.10 Ticket Summary An option to summarize projects will be offered. A summary of the entire ticket database can be made using the folowing options:

    Summarize by: project | feature area | submitting user | assigned user

    The project summary will list statistics for each project consisting of

    • Project name
    • Total defects
    • Active defects
    • Closed defects
    • Deferred defects
    • Last Modified date
    • Oldest defect

    50.10.20 Project Summary For a given project or projects, options to generate a summary will be given as

    View/Print: Full Report (with comments) | Summary Report (no comments) | Bug Report

    The summary will be a single document where all the bugs are listed in a report which makes it easy to get a big picture of what the current defects for a project are.

(Optional: Implementation Notes)

VI. Revision History

Document Revision # Action Taken, Notes When? By Whom?
0.1 Creation 10/09/2000 Henry Minsky


hqm@arsdigita.com
Last modified: $Date: 2001/01/19 21:36:47 $
spacer