-
Notifications
You must be signed in to change notification settings - Fork 1
Task Tracker
So the basic idea is, surprise, surprise a distributed task tracker.
- Parent Task
- Sub Tasks
- Responsible Person
- Task Executor (who will maintain the Master Copy).
Typically:
-
RP (e.g. Management) will define Task Title, and Deadline.
-
TE (e.g. Worker) will set Effort, % Completed, Expected Completion Date, and define SubTasks.
This Directed Task Graph can be viewed in a bunch of ways:
-
A GANTT Chart - for Project Management.
-
A PMP (Paul Martin Style) for Daily Task Management.
-
A GTD list for simplified Task Management.
TT will ensure that each person has the set of Parent and SubTasks associated with each Task they are interested in.
The Tasks will track changes by RP & TE, and highlight the changes for Project Management.e.g.
-
RP_A says this TASK A is due on 10th DEC.
-
This is highlighted to TE_A who plans out the subtasks B, C and assigns them to people.
-
TE_B is okay with deadline for TASK B, but TE_C sets Expected Completion Date of 15th DEC.
-
This gets pushed up to RP_C==TE_A, and up to RP_A, who sees that TASK A will not be finished until 15th Dec.
The Software has highlighted the project plan mismatch, and the negotiations begin!
##Proposed Data Structures
class Task
{
// BASIC TASK DEFINITION.
std::string mTaskExecutor;
std::string mResponsibleId
uint32_t mTaskType; (EVENT, WORK, EXT_DEPENDANCY)
std::string mTaskTitle;
std::string mTaskDescription;
// REFERENCES TO RELATED TASKS.
std::string mParentTaskId;
std::list<std::string> mSubTaskIds;
// OTHER PEOPLE THIS TASK SHOULD BE SHARED WITH (e.g. Project Managers, Execs, Clients)
std::list<std::string> mMonitoringIds;
// DATES, EFFORT AND PROGRESS.
// NB: Must think about how to deal with Timezones, Daylight-Saving etc.
time_t mCreationTS;
time_t mStartTS;
time_t mDeadlineTS;
time_t mExpectedCompletionTS;
time_t mLastUpdatedTS;
float mEffort; // ManHours??
float mFracCompleted; // 0-1.
// ATTACHMENTS.
std::list<std::string> mCommentIds;
// TRACK CHANGES TO THE TASK.
std::list<std::string> mTaskChangeIds;
// APPROVAL.
time_t mTaskExecutorSignTS;
std::string mTaskExecutorSignature;
time_t mResponsiblePersonSignTS;
std::string mResponsiblePersonSignature;
}
class TaskComments
{
// TO BE DEFINED
}
class TaskChange
{
// CHALLENGING SUGGESTIONS?
}