TrackStudio Enterprise 3.1
Up | Next
Demo Database Overview

This topic describes TrackStudio demo database

This comprehensive sample demonstration describes how to manage products, versions, departments and customers in the database.

Organizational Structure

Suppose, we have a company - Sample, Inc. This company has the following organizational structure:

  • R&D Department
  • QA Department
  • Customer Support Department
  • Project Management Department
  • Sales Department

Employees in departments have at least 2 managers (i.e their line manager and department manager). Each department manager is only responsible for their own employee. Each line manager is only responsible for their own project. 

Sample, Inc has the following user statuses (groups):

  • administrator
  • 001 department manager
  • 010 line manager
  • 020 customer support member
  • 030 software developer
  • 040 software tester
  • 100 external customer

Name each employee of Sample, Inc, their login/password and user status (group):

  • John Smith - jsmith - administrator
    • Peter Dagley - pdagley - Project Management Department Manager
      • John Baetz - jbartz - Line Manager for YTracker
      • Jesse Levon - jlevon - Line Manager for XWare
    • Steve Trudelle - strudelle - Customer Support Department Manager
      • Mike Clinton - mclinton - Customer support member
    • Sean Law - slaw - QA Department Manager
      • Jacob Miller - jmiller - Software Tester for XWare
      • Jeff Franke - jfranke - Software Tester for YTracker 1.0
    • Bill Richardson - brichardson - R&D Department Manager
      • Stuart Manske - smanske - Software Developer for XWare and YTracker
      • Charles Parmenter - cparmenter - Software Developer for XWare
    • Ben Vincent - bvincent - Sales Department Manager

Ben Vincent will manage customers. He will define

  • additional custom field for the customer - Address, check out the Customize tab for Ben Vincent.
  • the customer self-registration rule - check out the Registration tab for Ben Vincent. All new customers can create their bugs in the Customer Support project.

Samples, Inc also has a customer - Chris Tuck, from GoodBank. He can login as ctuck/ctuck and add a bug into the system. Also he can create subordinate users from his company to add bug reports. You can limit how many accounts each customer can create and set an expiry date for your customer as defined in your support contract (one year, for example). 

A user's password is the same as his/her login. Login as root/root or jsmith/jsmith to examine the organizational structure.

Projects

Sample, Inc develops two software products: XWare and YTracker. Currently they have 2 versions of XWare: 1.0 (already mature) and 1.5 (active). YTracker is still in development and they have no customer support for it.

YTracker Team
User Name 
Role 
John Baetz 
project manager 
Jeff Franke 
software tester 
Stuart Manske 
software developer 
XWare Team
User Name 
Role 
Jesse Levon 
project manager 
Stuart Manske 
software developer 
Charles Parmenter 
software developer 
Jacob Miller 
software tester 

Ben Vincent is the sales representative and Mike Clinton is the customer support member for both products.

Permissions

Now let's check out how user groups are be defined. Login as jsmith and check out User Management -> Statuses. Note that each user group has a parent user group. A group can't have more permissions than the parent group has. If you disable some permission for parent group - it will be disabled for all child groups automatically. 

With user groups you can control every tab and every button the user can view. You can also set which fields the user can see or edit. When you grant any permission, all dependent permissions will be granted automatically.

Workflows

This team also uses the following workflows:

Workflow Name 
Description 
Folder 
A simple container for other objects, one state, no transitions. 
Product Lifecycle 
Implements the life cycle for products and software releases.
Contains states:

  • 001 Development
  • 002 Active
  • 003 Mature
  • 004 Retired

Contains two workflow-specific custom fields:

  • GA Date - General Availability
  • Availability

This workflow is used primary by management. 

Issue Lifecycle 
Implements the life cycle for software bugs or issues.
Contains steps:

  • 001 New
  • 002 Resolved
  • 003 Verified
  • 004 Closed
  • 005 Waiting Feedback - used for customer support task when our team waiting response from customer

 

Take close look at permissions defined for the Issue Lifecycle workflow

Message Type 
Description 
Permissions 
001 Resolve 
Resolve a bug 

  • Any administrator, department and line manager or customer support member can resolve tasks.
  • Tester or developer can resolve a task only when their task handler.
  • External customers cannot see the resolve comments from team members or add such messages.

 

002 Verify 
Verify a bug 

  • Any administrator, or department and line manager can verify tasks.
  • Software testers can verify task only when their task handler.
  • Supporters, developers and customers cannot add such messages.
  • Customers cannot see such messages.

 

003 Close 
Close a bug 

  • Any users except software developers, testers and customers can close tasks.
  • Customers can't see close messages from other users

 

004 Reopen 
Reopen a bug 

  • All users, except customers, can reopen tasks.
  • Customers cannot see reopen messages from other users.

 

000 Note 
Add a note 

  • Any users, except customers, can see notes
  • Customers cannot see notes or add them. This message type is only for internal communication.

 

005 Request to Customer 
Question or note to customer 

  • Any team member can ask for additional info from a customer

 

006 Response from Customer 
Feedback from customer 

  • Customer can respond to a bug only when asked (bug handler)

 

Categories

When user creates a bug - he/she doesn't specify workflow directly. Instead, he/she should choose task categories (such as Software Bug) that are connected to some workflow. Several categories can be connected to the same workflow. 

For each category, you can specify who can create, edit, or delete tasks within this category and define the category's dependency (for example, Folder can contains Software Bug, but Software Bug can't contains Folder).

Assigning Employee to Product

Product managers cannot assign developers or testers directly to projects - they need approval from department managers. Check out task #11 where YTracker's project manager, John Baetz, asks R&D department manager, Bill Richardson, about 1 developer for his project. Bill approved it and assign Stuart Manske to YTracker as software developer (check out the Access Control -> Assigned Statuses tab for YTracker #7). Department managers can use the My Assignment Requests filter to find their assignment requests.

Implementing Calculated Custom Fields

We store the user departments in the Company field. We would like a report that shows the number of tasks created from each department. 

As Company field is a user field, it cannot be referenced by a task filter directly. To solve this, we create a task custom field that uses a script which will return the Company field. 

Login as jsmith/jsmith and go to the User Management->Scripts tab. Check out the getDepartment script which will return department names when the task submitter is you or your subordinate user, and will return Unknown otherwise. For example, John Smith (administrator) can see the department names for all tasks, Sean Law (QA Department Manager) can see department names only for tasks submitted by testers and himself; Jacob Miller can see department names only for his tasks.

if (task.getSubmitter()==null || task.getSubmitter().getCompany()==null)
   return "Unknown";

return task.getSubmitter().getCompany();

We've connected the getDepartment script to the Submitter Department task custom field (check out the Task -> Customize tab for the task #2).

  • To see a list of tasks with submitter's department name, use the Tasks by department breakdown filter.
  • To see the number of tasks and each task's status submitted by users from each department, use the Tasks by department breakdown distribution report. Note that different users will be able to see different data in this report -- depending on permissions. Just compare it for administrator, department manager and software tester.

We also use the getCustomerAddress script that returns the addresses of customer that have submitted a bug. This script used by the Customer Address custom field of the task #5. Go to the task #24 (submitted by customer) to check how it works. 

The calculated custom fields option is slow and should only be used when absolutely necessary.

Filters

Filters are used to search tasks by criteria. The following public filters are available for all projects in Sample, Inc.

Filter Name 
Description 
All 
Returns all direct subtasks of the current task. 
Change List 
Returns list of closed bugs. You can use this filter for any project or project version. 
My Assignment Requests 
Functional department managers can use this filter to find all requests issued to assign an employee to a project. 
Bugs (Personal and Subordinate) 
Returns a list of bugs that should be fixed by logged user or subordinate users. This filter is very useful for developers, testers and their managers. 
Roadmap 
Returns a list of opened bugs. 
Tasks by department breakdown 
Returns a list of open bugs with info about the submitter’s department. 
Copyright (c) 2002-2005. All rights reserved.