Changes between Version 1 and Version 2 of ProjectManagementIdeas


Ignore:
Timestamp:
Apr 16, 2009 8:19:49 PM (5 years ago)
Author:
ChrisNelson
Comment:

Revised somewhat

Legend:

Unmodified
Added
Removed
Modified
  • ProjectManagementIdeas

    v1 v2  
    55= Gantt Charts = 
    66 
    7 As discussed in [http://groups.google.com/group/trac-users/browse_thread/thread/83c0b6a248040542?hl=en two]  [http://groups.google.com/group/trac-users/browse_thread/thread/3084796acbc7233c/3f393a18f99cfebd?hl=en&tvc=2#3f393a18f99cfebd threads] on the Trac Users mailing list, a fundamental requirement for project management is a [http://en.wikipedia.org/wiki/Gantt_chart Gantt chart]. 
     7As discussed in [http://groups.google.com/group/trac-users/browse_thread/thread/83c0b6a248040542?hl=en two]  [http://groups.google.com/group/trac-users/browse_thread/thread/3084796acbc7233c/3f393a18f99cfebd?hl=en&tvc=2#3f393a18f99cfebd threads] on the Trac Users mailing list, a fundamental requirement for project management is a [http://en.wikipedia.org/wiki/Gantt_chart Gantt chart] to show [http://en.wikipedia.org/wiki/Work_breakdown_structure work Breakdown Structure] (WBS). 
    88 
    99Trac has three Gantt chart plugins:  
     
    1919!TracGantt has potential but has some funky fields (e.g., Due to Assign) that don't seem to be appropriate to what we want to do with a Gantt chart. 
    2020 
    21 = Project Management Requirements = 
     21There is a [http://www.viewpath.net/Website/ganttcharts/googlegadget.aspx Google Gadget Gantt chart] which might be leveraged for the visualizations once the data is made available. 
     22 
     23= Requirements = 
     24 
     25== Gantt Chart Components == 
     26 
     27In its most basic form, a Gantt chart shows: 
     28 
     29  Tasks:: Self-contained units of work 
     30  
     31  Dependencies:: Relationships between tasks that constrain when they can be done 
     32 
     33  Milestones:: Dates by which one or more tasks must be completed 
     34 
     35It may also show resource assignments and progress in tasks.  It often includes a "today" line to show where a project stands.  (If the project is on schedule, all tasks to the left of ''today'' are complete and any task that spans ''today'' has a progress bar to the right of ''today''.) 
     36 
     37A Gantt chart may also show slack time for tasks, how much they can slip before affecting the overall schedule. 
     38 
     39== Component Data == 
     40 
     41Each Gantt chart component or feature requires data to support it.  For Trac-based project management, this data is often in addition to the core ticket data.  Core ticket fields include: 
     42 
     43 * type (bug, task, enhancement, etc.) 
     44 * time (when the ticket was created) 
     45 * owner (who is working on it) 
     46 * reporter (who wrote the ticket) 
     47 * milestone (what milestone this ticket is part of) 
     48 * status (new, assigned, ..., closed) 
     49 * summary (short description) 
     50 
     51Core milestone fields include: 
     52 
     53 * name  
     54 * due (date and time) 
     55 * completed (treated as a Boolean: open or closed) 
     56 * description 
     57 
     58For a simple Gantt chart, we may use the following ticket fields: 
     59 
     60 * owner (the resource assigned to the task) 
     61 * milestone (when the task is due) 
     62 * summary (short description) 
     63 
     64In addition, a task must have: 
     65 
     66 * estimate (expected work require to complete task) 
     67 * percent complete 
     68 * dependencies 
     69 
     70While Gantt charts typically show percent complete, this can be computed from hours remaining vs. total estimate or hours worked vs. total estimate.  We will not, necessarily, store percent complete.  It is intuitive for display and analysis but difficult for data entry. 
     71 
     72== Dependencies == 
     73 
     74There are four general types of dependencies for tasks: 
     75 
     76  1. Task B may have to ''start after'' task A.  That is, B can't begin until A is done, perhaps because it uses a product of task A as a raw material. 
     77  1. Task A may be ''composed of'' tasks B, C, and D.  That is, tasks B, C, and D are subtasks of task A. 
     78  1. Task A may have to ''start with'' task B (but they may end independently).  For example, auditing someone's work may start when their work starts but may involve analysis and reporting after that work is done. 
     79  1. Task A may have to ''end with'' task B (though they may start independently). 
     80 
     81Each of these relationships has an inverse relationship in the other task.   
     82 
     83  1. If B ''starts after'' A, then A ''ends before'' B. 
     84  1. If A is ''composed of'' B, C, and D, then B, C, and D are ''part of'' A. 
     85  1. If A ''starts with'' B, then B also ''starts with'' A. 
     86  1. If A ''ends with'' B, then B also ''ends with'' A. 
     87 
     88While generally useful, the ''starts with'' and ''ends with'' dependencies are somewhat more esoteric than the others and implementation may be deferred. 
     89 
     90---- 
     91Draft garbage below this line.  Still working with it... 
     92 
     93  dependencies (mastertickets does this fine) 
     94 
     95  estimates (timingandestimation is mostly ok, but needs computation 
     96  logic a little more towards earned value) 
     97 
     98  recording of available resources (people in hours/week) 
     99 
     100  scheduling to show given all of the above when tasks are expected to 
     101  be done 
     102 
     103  a way to show the schedule 
     104 
     105 
     106 
     107 
     108A Gantt plugin for Trac should analyze ticket dependencies and produce an interactive, explorable Gantt chart showing task progress and project status. 
     109 
     110By "project", I mean a set of related milestones.  Perhaps a software project has a Design Phase, an Alpha Release, a Beta Release, and a General Release.  Each would be a milestone with a target date and tickets to complete the work for that milestone.  There must be a way to specify which milestones to include either listing explicitly or by giving a pattern or substring filter. 
     111 
     112The chart should be able to show all tickets, though that may be a very complex chart. 
     113 
     114> or alternately all those tickets matched by a (query | report) or any 
     115> other ticket group provider ;) 
     116 
     117 
     118The chart should support interactively "folding" groups of tasks to hide detail. 
     119 
     120Tasks/tickets in the chart should be links to the tickets they represent. 
     121 
     122To effectively display project progress, tickets must have estimated and actual times as in the TimingAndEstimation plugin.  Each task's bar in the chart should show actual hours. 
     123 
     124The chart should have a Today line 
     125 
     126Ticket dependencies that must be supported include: 
     127 
     128  1. Task B must follow task A. 
     129  2. Task A is composed of tasks B and C.  A's estimated time is the total of B's and C's.  (SubTickets) 
     130  3. Tasks A and B start at the same time 
     131  4. Tasks A and B must end at the same time 
     132 
     133Type 1 dependency is implemented in the MasterTicket plugin.  Note that a task may have many predecessors and many successors. 
     134 
     135Type 2 dependency is necessary to support "folding" or "zooming" detail in the chart.  It is also generally useful and might be implemented as its own plugin that the Gantt chart could require.  Note that is should be possible to create a tree where A is composed of B and C, and B is composed of D and E, and C is composed of F, G, and H.   
     136 
     137Types 3 and 4 are more unusual and a useful Gantt chart can be created without immediate support for these links in the first release. 
     138 
     139It is also desirable to have loop detection to error-proof the tool used to create dependencies. 
     140 
     141It would be nice to be able to choose an As Late As Possible or As Soon As Possible algorithm for laying out tasks. 
     142 
     143The chart (or an accompanying report or tool) should aid in resource leveling by (at least) showing overcommitted resources.  
     144 
     145= Related Work = 
     146 
     147MasterTickets 
     148 
     149TimeingAndEstimation 
     150 
     151TracHours 
     152 
     153= Disclaimer = 
     154 
     155The bulk of this page was prepared by Chris Nelson who makes no claim to be a certified project planner or anything of the sort.  It is based on his understanding of project management after 25 years of software development.