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:
- 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.
- 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
- 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
- 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")
- 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.
- 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
- State 7 - Released
This state indicates that processing of the record
is complete.
- State 8 - Closed
This state indicates that the record will not
be processed.
- 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.