NetResults ProblemTracker
The Software Development Template

Overview

The Software 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 issue being reported. Set at the time the record is created.
Product* Identifies the product for which the record has been reported. Set at the time the record is created.
Platform Describes the hardware or software platform where the issue 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 issue occurs. Set at the time the record is created.
Request Type Classifies the record. 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 record. Changes as the record is processed through the workflow.
Substatus Describes 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 for Version Identifies the release number of the product in which the fix for the issue is planned to be included.
Released in Version Identifies the release number of the product that the fix for the issue will be included in.
Fix Date Date when the issue was fixed. Set by Development when the problem is fixed. Automatically initialized to the current date/time.
Fix Detail A Description of the action taken by a developer to fix the problem. Set by Development when the problem is fixed.
Test Date Date when the fix 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 fix. 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.
Close Date Date when the record was closed. Set by Process Manager when no development work will be done for the record. Automatically initialized to the current date/time.
Close Detail A Description of the reason a record will be closed. Set by Process Manager when no development work will be done for the record.
Defer Reason Describes the reason a record will not be worked on until a later date.
Duplicate Record # Lists the record number of another previously-entered record in the database which describes the same problem.
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 Software Development template 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 records and deciding how to process each 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 for Version and Priority for the 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 records at a later time and decide whether processing will resume. The Process Manager must enter a Defer Reason and has the option of entering a Planned for Version when choosing this transition.

    • 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 Close Date field and enter a reason the record was closed in the 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 record number of the original 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

    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 for Version and Priority to be presented as optional during the task operation for the transition to the Scheduled state.
    • Configuring Defer Reason (required) and Planned for Version (optional) to be presented during the task operation for the transition to the Deferred state.
    • Configuring Close Detail (required) and Close Date (read only and initialized) to be presented during the task operation for the transition to the Closed state.
    • Configuring Duplicate Record # (required) 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 transition Assign to Developer to assign the record to a member of the Developers user group. This places the record in the In Development state. The Development Manager can also decide to defer a 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 Defer Reason (required) and Planned for Version (optional) 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 record makes the changes necessary to address the problem and marks the task complete by selecting the transition Mark Fixed. 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 Date (read only and initialized) and Fix Detail (required) to be presented during the Task operation for the transition to the Fixed state. The Description field has been configured as a read only task field for the user to reference when selecting this transition.

  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 selecting the transition Assign to QA Engineer.

    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 issue has been resolved, and then uses the transition called Mark Tested to advance the record to Tested and assigns the record to the Build Manager (bld_mgr). If an issue has not been resolved and needs to be returned to Development, the QA Engineer can move the record back to the In Development state using the transition Reject, which will assign the record to the developer who worked on the 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 bld_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 or <Previous State> where the assignee is the Last Assignee for the new state.

    Task Fields

    • Configuring Test Date (read only and initialized) and Test Description (required) to be presented during the Task operation for the transitions to the In Development and Tested states. The Fix Detail field is presented as a read only task field for the QA Engineer to reference when selecting this transition.

  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 transition called Release.

    This is implemented by:

    Transitions

    • Defining a transition to move the record to the Released state where the assignee is TBD. TBD ("no one") is selected since the release is the last step in the processing of the record.

    Task Fields

    • Configuring Released in Version (required) as a field to be presented during the task operation for the transition to the Released state. The Planned for Version field is presented as a read only task field for the Build Manager to reference when choosing this transition.

  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 transition called Update. The Update transition will keep the record in the Deferred state and assigned to the state manager (process_mgr). The fields Defer Reason 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 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 for Version and Priority fields when choosing this transition.

    This is implemented by:

    Transitions

    • Defining a transition called Update with Deferred set as the New State, "Same Assignee" selected as the New Assignee, 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 Defer Reason and Priority to be presented during the task operation for the transition to update a deferred record
    • Configuring Planned for Version and Priority to be presented during the task operation for the transition to the Scheduled state.

Sample Saved Charts

A set of sample saved charts are included in this template. Click here to see details of these sample metrics.


Email Notification

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

On Add or Delete of a Record
The current assignee, the manager for the current state, and the reporter of the record are notified

On Change of State to Released, Deferred, Duplicate or Closed
The user who reported the record is notified when a record is moved to a state where processing is stopped

On Change of Assignment
Both the current assignee and the manager for the current state of the record are notified


Security

The Software 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 Visibility option under General Preferences in the Administration Task page to No.

In addition, the privileges related to editing fields within the 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.