NetResults ProblemTracker
The Code Development Template

Overview

The Code Development template supports a typical software development process. Typical of this process is the bundling of numerous bug fixes into a particular software release. This model assumes the follow organizations are involved in the defect tracking process:

Development
Responsible for performing development tasks necessary to handle the request.

QA
Verifies that the request has been successfully implemented by the Development organization.

Build
Places the updated files into the final product package.


Data Record

The data record contains the following fields. Note that you can customize the database by adding to or removing fields, or changing any pulldown menu values. Field names with an asterisk are required by the system and cannot be removed from the data record.
PRN* Numeric record identifier. Assigned at the time the record is created.
Title A one line text summary of the problem report. Set at the time the record is created.
Product* Identifies the product for which the problem record has been reported. Set at the time the record is created.
Platform Describes the hardware or software platform where the problem occurs. Examples are the operating system (e.g. Windows 95), or the CPU (e.g. Intel Compatible). Set at the time the record is created.
Reported In Version Version number of the product where the problem occurs. Set at the time the record is created.
Request Type Classifies the problem report. Possible values are: Bug, Contract Requirement, Customer Feedback, Customer Problem, Enhancement. Set at the time the record is created.
Severity Describes how serious the problem is. Set at the time the record is created.
Description Full description of the problem. Ideally describes the nature of the problem and how to reproduce the behavior. Set at the time the record is created.
Reported By* Name of the user that reported the problem. Initially set to the name of the current user logged in. Set at the time the record is created.
Date Reported The date the record was created. Automatically initialized, and set at the time the record is created.
Workaround Describes how to work around the reported problem. Set at the time the record is created.
Status* Current state of the problem record. Changes as the record is processed through the workflow.
Substatus Describes the the condition of the record in the current state. Possible values are: None, In Progress. Optionally set by each user while processing the record.
Assigned To* User the record is currently assigned to for processing. Set either manually or automatically during processing of the workflow.
Estimated Size Used to enter an estimated amount of time it will take for a developer to fix the problem.
Planned Release Version Identifies the release number of the product in which the fix for the problem report is planned to be included.
Released in Version Identifies the release number of the product that the fix for the problem report will be included in.
Fix - Close Date Date when the problem record was fixed. Set by Development when the problem is fixed. Alternatively, can be set when closing a record if no development work was done on the problem record. Automatically initialized to the current date/time.
Fix-Close Detail A Description of the action taken by a developer to fix the problem. Set by Development when the problem is fixed. Alternatively, can be set when closing a record if no development work was done on the problem record.
Test Date Date when the problem record was tested. Set by QA when the fix for the problem is tested. Automatically initialized to the current date/time.
Test Description A Description of the action taken by a QA Engineer to test the problem. Set by QA when the fix for the problem is tested.
Priority Describes the relative importance of handling this record compared to other records entered in the system.
Duplicate Record # Lists the problem record number of another previously-entered record in the database which describes the same problem.
Reason for Deferring Describes the reason a problem record will not be worked on until a later date.
Deleted* Denotes whether the record has been deleted.


Workflow

It is assumed that records will be processed and moved through the workflow process by using the Task operation. The workflow implemented by the Code Development database is as follows:

  1. State 1 - Reported
    When a record is created, it is set to the state "Reported", and assigned to the Process Manager (process_mgr). It is assumed that the Process Manager is responsible for looking at all incoming problem reports and deciding how to process the problem record from a list of possible workflow paths. The Process Manager can choose one of the following:
    • Start the process for the record by selecting the transition called "Schedule". This transition will assign the record to the Development Manager (dev_mgr) and place the record in the Scheduled state. The Process Manager can also enter a Planned Release Version and Priority for the problem record when choosing this transition.
    • Defer the processing of the record by selecting the transition called "Defer". This transition will place the record in the Deferred state and assign it to the state manager of that state (process_mgr). The Process Manager can review deferred problem records at a later time and decide whether processing will resume.
    • Close the record by selecting the transition called "Close". This transition will place the record in the Closed state and assign it to TBD (no one - since this record will not be processed any further). The Process Manager will be required to enter a date in the Fix-Close Date field and enter a reason the record was closed in the Fix-Close Detail field.
    • Mark the record as a duplicate of another record by selecting the transition called "Mark Duplicate". This transition will place the record in the Duplicate State and assign it to TBD (no one - since this record will not be processed any further). The Process Manager will be required to enter the problem record number of the original problem record that describes the same problem.

    This is implemented by:

    Workflow Properties

    • Defining Reported as the default add state when a record is added
    • Assigning the process_mgr user as the manager for the Reported and Deferred states
    • Assigning dev_mgr as the manager for the Scheduled state
    • Assigning TBD as the manager for the Closed and Mark Duplicate states

    Transitions

    • Defining transitions to move a record to the Scheduled and Deferred states where the assignee is the State Manager for each respective state.
    • Defining transitions to move a record to the Closed and Mark Duplicate states where the assignee is TBD for each transition.

    Task Fields

    • Configuring Planned Release Version and Priority to be presented during the task operation for the transition to the Scheduled state.
    • Configuring Reason for Deferring to be presented during the task operation for the transition to the Deferred state.
    • Configuring Fix-Close Detail and Fix-Close Date to be presented during the task operation for the transition to the Closed state.
    • Configuring Duplicate Record # to be presented during the task operation for the transition to the Mark Duplicate state.

  2. State 2 - Scheduled
    The Development Manager (dev_mgr) is assumed to be a manager responsible for assigning tasks to the developers for resolution. The Development Manager uses the task operation to assign the record to a developer (dev_one), a member of the developer user group. This places the record in the "In Development" state. The Development Manager can also decide to defer a problem record by choosing the Defer transition, which will place the record in the Deferred state and assign it to the Process Manager (process_mgr).

    This is implemented by:

    Transitions

    • Defining a transition to move a record to the "In Development" state with the assignee to be chosen from a list of developers (User Group called "Developers")
    • Defining a transition to move a record to the Deferred state with the state manager as the assignee

    Task Fields

    • Configuring Reason for Deferring to be presented during the task operation for the transition to the Deferred state

  3. State 3 - In Development
    The Developer (dev_one) assigned to the problem record makes the changes necessary to address the problem and marks the task complete using the Task operation. This transition allows the Developer to enter a description and date of the fix, advances the state of the record to "Fixed", and assigns the record to the QA Manager (qa_mgr).

    This is implemented by:

    Workflow Properties

    • Defining the qa_mgr as the manager for the Fixed state

    Transitions

    • Defining a transition to move a record to the "Fixed" state where the assignee is the State Manager

    Task Fields

    • Configuring the Fix-Close Date and Fix-Closed Detail to be presented during the Task operation for the transition to the "Fixed" state

  4. State 4 - Fixed
    Once the record has entered the "Fixed" state, the QA Manager (qa_mgr) assigns the record to the QA Engineer (qa_one), a member of the QA user group, and advances the state to "In Test" by using the Task operation.

    This is implemented by:

    Transitions

    • Defining a transition to move a record to the "In Test" state with the assignee to be chosen from a list of QA Engineers (User Group called "QA")

  5. State 5 - In Test
    The QA Engineer (qa_one) verifies that the problem report has been resolved, and then uses the Task operation to advance the record to "Tested" and assigns the record to the Build Manager (bld_mgr). If a problem report has not been resolved and needs to be returned to Development, the QA Engineer can move the problem record back to the "In Development" state and assign it to the developer who worked on the problem record. For each of these possible paths, the QA Engineer enters information in the Test Date and Test Description fields.

    This is implemented by:

    Workflow Properties

    • Configuring build_mgr to be the manager of the Tested state

    Transitions

    • Defining a transition to move a record to the "Tested" state where the assignee is the state manager
    • Creating a transition to move a record to the "In Development" state where the assignee is the Last Assignee for the new state.

    Task Fields

    • Configuring Test Date and Test Description to be presented during the Task operation for the transitions to the In Development and Tested states.

  6. State 6 - Tested
    The Build Manager (bld_mgr) user is assumed to be the user in charge of packaging the product for release, and responsible for ensuring that all the desired fixes are included in the release. The Build Manager does what is necessary to make sure that the fix for the record is included in the release, enters the released in version for the record, then advances the state of the record to "Released" using the Task operation.

    This is implemented by:

    Workflow Properties

    • Defining the user "TBD" as the manager for the Released state

    Transitions

    • Defining a transition to move the record to the "Released" state where the assignee is the state manager

    Task Fields

    • Configuring "Released in Version" as a field to be presented during the task operation for the transition to the "Released" state

  7. State 7 - Released
    This state indicates that processing of the record is complete.

  8. State 8 - Closed
    This state indicates that the record will not be processed.

  9. State 9 - Deferred
    This state indicates the decision on whether or not to process the record has been deferred until a future date. The Process Manager can update a record in this state by using the task operation. The Update transition will keep the record in the Deferred state and assigned to the state manager (process_mgr). The fields Reason for Deferring and Priority are presented as optional fields during the task operation. The Process Manager is required to enter a history comment to describe what was changed within the record when using the Update transition.

    The Process Manager can decide to begin processing a problem record by choosing the Schedule transition, which will place the record in the Scheduled state and assign it to the State Manager (dev_mgr). The Process Manager can set the Planned Release Version and Priority fields when choosing this transition.

    This is implemented by:

    Transitions

    • Defining a transition called Update with "same state" and "same assignee" selected and history comment required
    • Creating a transition to move the record to the Scheduled state and assign it to the state manager

    Task Fields

    • Configuring Reason for Deferring and Priority to be presented during the task operation for the transition to update a deferred record
    • Configuring Planned in Version and Priority to be presented during the task operation for the Schedule transition

Email Notification

The Code Development template is set up to notify users as follows:

On Add or Delete Record
Both the current assignee, and the manager for the current state are notified.

On Change of State
The manager for the new state is notified.

On Change of State to Released, Deferred, Duplicate or Closed
The user who reported the problem report is notified.

On Change of Assignment
Both the previous and current assignee are notified of the change, and the manager for the current state is notified.


Security

The Code Development template assumes a very simple security model reflecting a workgroup situation where all users are able to see any record. This is implemented by setting Enable Record-Level Security option under General Preferences in the Administration Task page to No.

In addition, the privileges related to editing problem records have been removed from users that are not managers or Admin. With this configuration, users can rely on the Task operation to move records through the workflow. This can be changed within the User Administration section of the Admin page.