Time Management System Design Doc
Time Management System Design Doc
Introduction
Time Management System (TMS) tracks and manages the time spent by resources on
various projects activities categorized by time codes. Timesheet application collects the
time records from time tracking change management systems and mange them as time
sheets.
1. Time Sheet life cycle management (new, submitting, revoking, approval and
rejection)
2. Generating appropriate reports on time spent details
Terminology
Rational Project Conductor (RPC) - Project management solution from IBM
Rational , in this context RPC 3.1
Change Management Application (CM) - An application that manages software
changes.
Managed Application (MA) - Any change management application which
supports time tracking capabilities. Eg. RTC
Time Management System (TMS) - The application that manages time spent in
project activity by getting the time entry records from various change
management applications.
Time Record (TR) - A record contains details on daily time spent per person, on
a work item by time code. CM are the source of Time Records
Timesheet (TS) - A combination of of all the 'time records' entered by a Team
Member over period of time
Project Timesheet - Project wise grouping of time records in a given Timesheet.
Enables project wise approval of a Timesheet.
Time code - Time record attribute for categorizing time records based on
different activities, like coding, testing, training etc
Symbol Description
Not scoped in for RPC 3.1 2010Q2 release
Review comments addressed
Warning
Request for comments
Note
Information or Help
Use Cases
Actors
UC1: Configuring
UC2: Processing
UC3: Reporting
Architecture
Design Discussions
There are two ways in which TMS can be designed based on where the Time tracking
operation is being done. Time tracking can be done either at TMS side only or at CM
only or at both the places. Current design assumption is that Time tracking to be done at
CM and also enable Time tracking to be done from TMS side as well. This topic
discusses and weighs both the approaches.
Time records are @ CM repository. There are two ways in which TMS could function.
i. Time records are only at CM repository and TMS access Time records@CM thru
links
ii. TMS makes copy of time records@CM repository and sync up at appropriate
times
Design Assumptions
This section lists all design assumptions we've made while designing TMS.
A Time record is created to store time spent by a single Team Member for a given
period of time on a work item for a type of activity(time code),
All time records by a single Team Member for given period of time (generally a
week) across all the projects, is grouped together as one Time sheet.
A Timesheet may have time-records by a Team Member from two or more
different projects. Eg, Team Member Ashok worked on both Online Auction and
Smarter Planet projects for the week starting 7-Nov-2010.
Project Timesheet is project wise grouping of time-records of a Timesheet's time
records for approval convenience.
TA shall have private repository and store time records pulled from various CM
systems * TA shall have appropriate refresh mechanisms to update local data as
the source data change.
Having private repository enables reporting and querying the approved time
sheets even the CM are disconnected.
However for approval/submission operations the CM applications needs to be
connected and running.
Context Diagram
The following context diagram illustrates the system environment in which TMS
functions also show the high level system interactions in a TMS environment.
TMS is a jazz fronting application and is a part of Rational Project
Conductor(RPC) product solution
TMS shall be configured to work with CM systems with Time tracking
capabilities
For RPC 2011, the scope is to support RTC 3.0 WorkItem? application as Time
record store.
TMS can work with other Change Management applications like Clear Quest,
JIRA, Bugzilla as well, provided REST APIs described by TMS are implemented
at CM side.
As a very first step, list of change management Applications ought to be configured with
TMS. The following diagram show the high level sequences of operation to be done by
administrator as part of Configuring Timesheet Application.
Configuring
At a high level, for each Time management application setup, a Connection List which
contains list of the Change management applications configured to receive time records
from. Each entry of Connection Directory, Connection expected to have the connection
details about each of change management application including how and from where the
time records can be received from.
Do we've have to pull all the time-records, or the time-records of RPC configured
projects alone?
PRC's Sub-projects configuration can be leveraged to construct Connection
Directory?
Approver Role
The section describes how the approval role is defined in Timesheet Application.
Approver role is specific to TMS, not in CM's scope.
Different CM applications may have different roles defined within ( Agile [scrum
master], Traditional[project manager, team lead] project areas)
Administrator configures selected (role and process specific) CM roles with time-
record edit permission as ApproverList for project and sub-projects levels
Alternatively RPC's user mapping can be leveraged for Approver role mapping.
Every logged in Team Member assumed to be timesheet user, however operations
like, updating time-records, submitting time-sheets are subjected to permissions
back in CM applications
*Approver*'s scope can be at Project/subproject/team levels or at a Resource
group level
o Projects/subprojects/Teams level approvers can approve time-sheets
filed against the project/sub-projects by any resource
o Resource level approvers can approve time-sheets filed by member of
resource pool against any project.
Approval Policies
Approval policies are collocation of rules established for performing time sheet approval
task. Approval rules defines the approval process for a given project.
Approval policy may differ from project to project based of the process being followed.
Here's an example of an apporval policy: For approving Online Auction project time-
sheets, there ought to be 'one' team level approver and 'one' project level approvar
required in the same order.
Though this resource provide support to specify such elaborated policies, For RPC 3.1
release, the scope is to implement *One approver" policy.
Processing Timesheets
Time sheets are collection of all time records entered by one resource(person) over period
of time (week) across all the projects. Time records of a Timesheet are grouped by
project called Project Timesheet for project level approval. Following class diagram
shows the relationships between Time sheets, Project Timesheet and Time Records.
Change management systems are the sources for time-records and the time records are
expected to be exposed thru REST Api. Time code attribute of time-record denotes the
type of the activities on which the time is entered, which helps in categorizing the time
for accounting purposes.
The life cycle of time sheet can be more understanding if we see the life cycle of Project
Timesheet and the Time sheet itself.
Following describes Timesheet life cycle work flow with following fixed states.
Rejected
Timeshe
ets are
open
again for
Team
Member
s to
update
and
resubmit
*Project Timesheet's* life cycle
All
created
Project
Timesh
eet are
first
assigne
d with
New
state
New
Project
Timesh
eet are
open
for
users to
update
it's time
record
and
submit
after
validati
on
Project
level
approve
rs can
either
accept
or reject
the
Project
Timesh
eet
Rejecte
d
Project
Timesh
eet are
open
again
for
Team
Membe
rs to
update
and
resubmi
t
Project
Timesh
eets of
a Final
Timesh
eet is
also
Final,
and is
locked
for
good.
Lock and Unlock symbols denote whether the time-records are editable or not, in a
given state.
Reporting
TA shall expose all the resources for reporting as per RDF based OSLC
reportable Rest spec.
ODS ETL (Java & DM) needs to be written to pull data from TA to Data
Warehouse.
Data collection: RTC 3.0 Planning ETL needs to be re factored, so that disabling
RTC 3.0 time sheet jobs and enabling TA time sheet jobs are possible.
The following time management reports shall be generated by the system
Missing time sheet report should give count of 'time sheets that weren't created' or
'time sheets that weren't submitted' for a resource when he's assigned to a task.
Rejected time sheet report should give count of 'time sheets that were rejected'.
Data Model
The data model consists of a set of resource types in Timesheet Application. Each
resource type is described by listing and describing its properties.
Service
Description
TMS has unique tms:Service resource that acts as the root resource for all the resources
managed by this system.
Properties
Occurren Edit
Property Range Type Description
ce s
The resource for
read creating and
resourc exactly-
tms:connectionList tms:ConnectionList - querying
e one
only tms:Connection
resources.
The resource for
read creating and
resourc exactly-
tms:projectList tms:ProjectList - querying
e one
only tms:Project
resources.
tms:teamList resourc tms:TeamList exactly- read The resource for
creating and
-
e one querying tms:List
only
resources.
The resource for
read creating and
resourc exactly-
tms:approverList tms:ApproverList - querying
e one
only tms:Approver
resources.
The resource for
read creating and
tms:approvalPolicyLis resourc tms:ApprovalPolicyLi exactly-
- querying
t e st one
only tms:ApprovalPolic
y resources.
The resource for
read creating and
resourc exactly-
tms:timeSheetList tms:TimeSheetList - querying
e one
only tms:TimeSheet
resources.
The resource for
read creating and
tms:projectTimeSheet resourc tms:projectTimeSheet exactly-
- querying
List e List one
only tms:ProjectTimeSh
eet resources.
The resource for
read creating and
resourc exactly-
tms:timeRecordList tms:TimeRecordList - querying
e one
only tms:TimeRecord
resources.
${Resource}List
Description
TMS service contains exactly one ${Resource}List resource. New connection resources
are created by POSTing to this list. The list may be queried to search for ${Resource}.
Properties
Connection
Description
Properties
Project
Description
Properties
Team
Description
Properties
ApproverRole?
Description
Properties
ApproverPolicy?
Description
Properties
Timesheet
Description
TimesheetHistory?
Description
Properties
ProjectTimeSheet?
Description
Properties
TimeRecord?
Description
Properties
Reviews
Lists all the review meetings held and review comments provided by participants.
Review comments with ' ' marks are already addressed and incorporated into document.
20101020
Arthur, Per, Sudipto, Mahesh, Prem, Vikas, Karthi
1. Separate use cases for each reports should be combined to a single Use Case.
2. In general, the document should have Use Cases defined at high level, and
main flow and alternate flows should be documented under User Stories
3. Use Case 2 (Timesheet viewing) & 3 (Timesheet submitting ) should be
combined, in case the user wishes to edit the time records, a separate widget
should be launched to allow him to add/modify the data. editing time record
should be done within the timesheet view
4. Use Case 4(viewing) & 5 (approving) should be combined, in case the project
manager wishes to edit or view, a separate widget is launched.
5. There is no requirement to show Timesheet widget in User profile view.
6. Timesheet view itself is a work in progress view that is based on query
mechanism.
7. Browser refresh should suffice in case of new time records being added for the
date range instead of separate refresh button action.
8. User and date range are the only differentiating characteristics of a Timesheet.
Other attributes like approver and WI/Project area can be used for
filtering/classification.
9. A Timesheet can have multiple approvers in case his work spans across
different project areas/team areas. The status of timesheet is "Approved" only
when all the approvals are in "Approved" state.
10. We need to map approvers from team area to resources for timesheets.
11. Resource manager has authority to approve all time records for the resource
managed by him.
12. But Project manager has authority to approve time records in his project/ team
area boundaries. resource manager approval is lower priority for the first
release
13. For scoping purpose only Project Manager kind of approver will supported in
first version.
14. Time tracking records are copied in timesheets and should be made available as
read-only data, while we still need to provide links to the WIs
15. Questions posted after the call:
20101108
Bala, Mahesh, Sudipto, Karthi
20101116
Arthur, Gail, Neil, Per, Bala, Sudipto, Mahesh, Sharoon, Aradhya, Prem, Vikas, Karthi
20101118
Arthur,Gail, Per, Sudipto, Mahesh, Sharoon, Aradhya, Prem, Karthi
20101119