Changes between Version 128 and Version 129 of ProjectManagementIdeas
- Timestamp:
- Sep 3, 2015, 4:57:49 PM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ProjectManagementIdeas
v128 v129 13 13 * When will my project be done? That is, what is the forecast completion date? 14 14 * How much Earned Value has the project achieved? 15 * How do incurred costs compare to [https://en.wikipedia.org/wiki/Earned_value_management Earned value] (Cost Performance Factor) .15 * How do incurred costs compare to [https://en.wikipedia.org/wiki/Earned_value_management Earned value] (Cost Performance Factor)? 16 16 * Am I on schedule? That is, is the percent complete for the overall project where it should be at this time? 17 17 * What tasks are on the critical path? That is, what tasks have a positive or negative effect on the overall schedule if they are early or late? … … 34 34 Original Work Estimate:: The amount of work believed to be needed to complete the task as of before the task was started. This is ''not'' necessarily the time it will take to complete the task (duration). The task may be unassigned (and will take forever to complete), may have a resource assigned only part-time (so it will take longer to complete than the amount of work indicates), or have multiple resources assigned (so it may take less time to complete than the amount of work indicates). Typically work will be expressed in hours of effort of a resource. 35 35 36 Current Work Estimate:: The total time the task is expected to take, as of now. Like Original Work Estimate, but may be modified .36 Current Work Estimate:: The total time the task is expected to take, as of now. Like Original Work Estimate, but may be modified over the course of the project. 37 37 38 38 Expended effort:: The amount of work expended against this task so far. … … 66 66 === Resource Properties 67 67 68 In general a project resource may be many things such as a person working on a task (a carpenter or a software developer) or a source of supplies needed for a task ( cement or paintor computer systems).69 70 A resource may have a name and typically has some availability. An employee may have responsibilities in two departments and only be available for certain work 50% of the time or a vendor may only be able to supply a certain amount of cement or paintor CPU cycles.68 In general a project resource may be many things such as a person working on a task (a carpenter or a software developer) or a source of supplies needed for a task (timber or computer systems). 69 70 A resource may have a name and typically has some availability. An employee may have responsibilities in two departments and only be available for certain work 50% of the time or a vendor may only be able to supply a certain amount of timber or CPU cycles. 71 71 72 72 === Milestone Properties … … 80 80 There are two fundamental ways to approach scheduling. One is to assume that all tasks are small and to divide total estimates by resource rate. Then, one compares earned value to cost, computes CPF (Cost Performance Factor), and computes an estimated end time. This is the simpler approach, but fails to capture tasks that only some people can work on and other complexities. The other approach is to create an actual plan that shows when each resource will work on tasks. 81 81 82 The basic answer to "When will my project be done?" is generally ''displayed in'' a [http://en.wikipedia.org/wiki/Gantt_chart Gantt chart] which shows tasks, dependencies, duration (scaled by resource availability) and milestones. Two threads [https://groups.google.com/forum/?hl=en#!topic/trac-users/g8C2okgEBUI here] and [https://groups.google.com/forum/?hl=en#!topic/trac-users/MIR5asvHIzw here] on the Trac Users mailing list, suggest that a Gantt chart is a fundamental requirement for project management, but so is scheduling tasks and in fact a necessary precondition for producing a Gantt chart.82 The basic answer to "When will my project be done?" is generally ''displayed in'' a [http://en.wikipedia.org/wiki/Gantt_chart Gantt chart] which shows tasks, dependencies, duration (scaled by resource availability) and milestones. Two threads [https://groups.google.com/forum/?hl=en#!topic/trac-users/g8C2okgEBUI here] and [https://groups.google.com/forum/?hl=en#!topic/trac-users/MIR5asvHIzw here] on the Trac Users mailing list, suggest that a Gantt chart is a fundamental requirement for project management, but so is scheduling tasks and in fact a necessary condition for producing a Gantt chart. 83 83 84 84 Consider a grossly-simplified project to design a new electronic device, with the following tickets: … … 158 158 == Calendar 159 159 160 The schedule above isn't accurate unless we have a 7-day work week. If we assume that the work week is Monday to Friday with Saturday and Sunday off, firmware has to finish Friday, May 8 and schematic has to finish Friday, May 1 so the project must begin April 29. Applying calendar information, our task list looks like the following:160 The schedule above isn't accurate unless we have a 7-day work week. If we assume that the work week is Monday to Friday, firmware has to finish Friday, May 8 and schematic has to finish Friday, May 1, so the project must begin April 29. Applying calendar information, our task list looks as follows: 161 161 162 162 ||'''ID'''||'''Summary'''||'''Work'''||'''Predecessors'''||'''Resource'''||'''Due'''||'''Start'''|| … … 183 183 * package design can proceed independently 184 184 * assembly can't be done until the circuit boards and packaging are ready 185 * the product can't ship until it's assembled and has firmware .185 * the product can't ship until it's assembled and has firmware 186 186 * the overall project will take 9 calendar days 187 187 … … 309 309 [http://www.simpleprojectmanagement.com/planner/home.html Planner] is an open source project management program. 310 310 311 G NOME Office once included [http://wiki.linuxquestions.org/wiki/MrProject MrProject], which may be another version of Planner. The news of !MrProject's death may be exaggerated; [http://live.gnome.org/Planner GNOME Live!] lists a 0.14.4 release in April 2009.311 Gnome Office has a [https://wiki.gnome.org/action/show/Apps/Planner Planner], which is also [https://github.com/GNOME/planner forked]. 312 312 313 313 [http://www.dotproject.net/index.php dotProject] is an open-source, web-based project management system. A quick review suggests its task management isn't as good as Trac. It has a Gantt chart but [http://en.wikipedia.org/wiki/DotProject wikipedia] notes "as of version 2.0 the task dependencies feature is not complete". It has a troubled history but is forked as [http://www.web2project.net/ Web2Project]. … … 317 317 [http://www.atlassian.com/software/jira/ Jira] sounded promising but doesn't seem to have scheduling. Their chart examples don't include a Gantt. 318 318 319 [http://www.basecamphq.com/ Basecamp] is popular and promising :319 [http://www.basecamphq.com/ Basecamp] is popular and promising, but it is also commercial and doesn't support Gantt charting capabilities: 320 320 321 321 For years project management software was about charts, graphs, and stats. And you know what? It didn’t work. Pictures and numbers don’t get projects done. Basecamp tackles project management from an entirely different angle: A focus on communication and collaboration. Basecamp brings people together. 322 322 323 But it is also commercial, which doesn't help the Trac community. The description above makes it sound like we shouldn't expect a Gantt chart in Basecamp. I don't see automatic scheduling. They have a nice feature where you can subscribe to milestone updates via iCalendar.323 There is no automatic scheduling either. They have a nice feature where you can subscribe to milestone updates via iCalendar. 324 324 325 325 Also: 326 326 327 327 * [http://www.openworkbench.org/ Open Workbench] is a Microsoft Windows-based application not suitable for integration with a web-based tool like Trac. 328 * [http://openproj.org/openproj OpenProj] also appears to be a desktop application. However, their [http://openproj.org/wiki/index.php/Available_Views views] page may guide development of PM output for Trac. 329 * [http://www.ganttproject.biz/ GanttProject]'s website isn't very informative, but it appears to be a desktop application. 328 * [http://www.ganttproject.biz/ GanttProject] is a desktop application developed in Java. 330 329 331 330 == Microsoft Project Task Properties … … 405 404 An IProjectTask has the following properties: 406 405 407 id:: Numeric ID (Inherent in Trac)408 work:: Man-hours of work to complete task409 risk:: Relative risk . An integer from 0 to 100. How likely it is that ''work'' is accurate. Zero means no risk; ''work'' is certain to be accurate.406 id:: Numeric ID, inherent in Trac. 407 work:: Person-hours of work to complete task. 408 risk:: Relative risk as a measure of likelihood of the ''work estimate'' being accurate, where 0 means 'certain to be accurate'. An integer from 0 to 100. 410 409 priority:: Relative priority. An integer. 411 percentComplete:: How much of ''work'' is done? (This can be computed from time remaining vs. total estimate or time worked vs. total estimate. We will not, necessarily, store percent complete. It is intuitive for display and analysis but difficult for data entry.)412 resource:: Name of resource assigned to this task 410 percentComplete:: How much of ''work'' is done? This can be computed from time remaining vs. total estimate or time worked vs. total estimate. We will not, necessarily, store percent complete. It is intuitive for display and analysis but difficult for data entry. 411 resource:: Name of resource assigned to this task. 413 412 percentEffort:: How much of ''resource's'' time is spent on the task. 414 413 duration:: How long will ''resource'' take to complete ''work'' with ''percentEffort''. For example, a 16-hour task with 50% effort will take 4 days. 415 assignedStart:: An explicit, user-specified constraint on when the task must start (a date)416 assignedFinish:: An explicit, user-specified constraint on when the task must finish (a date)414 assignedStart:: An explicit, user-specified constraint on when the task must start. A date. 415 assignedFinish:: An explicit, user-specified constraint on when the task must finish. A date. 417 416 computedStart:: The result of scheduling this task based on constraints. Equals ''assignedStart'' if that field is set. 418 417 computedFinish:: The result of scheduling this task based on constraints. Equals ''assignedFinish'' if that field is set. … … 432 431 433 432 * Finding related tasks 434 * Finding predecessors (immediate and indirect) 435 * Finding successors (immediate and indirect) 436 * Finding descendants (children and further generations) 437 * Finding ancestors (immediate and further generations) 438 * Finding all related tickets (predecessors, successors, descendants, ancestors, and possibly those that share a resource) 433 * Finding predecessors (immediate and indirect). 434 * Finding successors (immediate and indirect). 435 * Finding descendants (children and further generations). 436 * Finding ancestors (immediate and further generations). 437 * Finding all related tickets (predecessors, successors, descendants, ancestors, and possibly those that share a resource). 439 438 * Finding all the tickets due in a time range, ''begin''..''end''. 440 439 * If ''begin'' is not specified, all due by a ''end''. 441 * If ''end'' is not specified, all that start on or after ''begin'' 442 * Manipulating task relationships 440 * If ''end'' is not specified, all that start on or after ''begin''. 441 * Manipulating task relationships: 443 442 * Reparent B as a child of A (removing any existing parent). If A is `None`, remove B's current parent, if any. 444 443 * Link B as a successor of A (same as making A a predecessor of B). Other dependencies are unchanged. … … 560 559 Scheduling activities in a project is an area of active research in [http://en.wikipedia.org/wiki/Operations_research Operations Research] (cf. [http://books.google.com/books?id=pHetPl2LOYgC&lpg=PA153&ots=rKKZ7Lv2On&dq=pslib%20project%20scheduling&pg=PP1 Project Scheduling]) and has been proven to be [http://en.wikipedia.org/wiki/NP-hard NP hard], which requires enumerating all solutions to get to the optimal solution. If you have a small or dynamic project or if your estimates are routinely off by 5-10%, you won't see the benefit of mathematically optimal scheduling. 561 560 562 There are several variations on the problem: 563 564 ''RCPSP'' :: Resource-Constrained Project Scheduling Problem 565 566 ''RCMPSP'' :: Resource-Constrained Multi-Project Scheduling Problem 567 568 ''m_PRCPSP'' :: Preemptable RCPSP. A RCPSP where each task may be broken (preempted) ''m'' times during scheduling. Generally, ''m'' is limited to 1 both for simplicity of the algorithm and because there is real cost in practical task switching. 569 570 A range of techniques can be used for RCPSP: 571 572 * Exact solutions. Attempts to find an optimal schedule. Due to the polynomial nature of the problem these are only possible or practical for a small number of activities (e.g., a few dozen). 573 574 * Heuristic approximations. Attempts to find a good solution in reasonable time for a realistic number of tasks (e.g., hundreds). 575 576 * Metaheuristics. More abstract approaches such as genetic algorithms, tabu search, simulated annealing, ant colony optimization and particle swarm optimization. 577 578 All of these algorithmic approaches also have other dimensions such as the number of threads that are used, the method they use to prioritize activities, etc. To be practical as a Trac plugin, the implementation should not require heavy-weight, opaque abstractions or multiple threads. Furthermore, we desire an algorithm which can ''update'' a schedule as part of a ticket change listener rather than having to completely recompute a schedule for each, individual change. 579 580 [http://129.187.106.231/psplib/ PSPLIB] provides a standard set of program scheduling problems to test the various algorithms performance against one another and the optimal solution. [http://www.sciencedirect.com/science/article/pii/S0377221705002596 Kolisch and Hartmann] tested dozens of algorithms and variations using the PSPLIB data. 581 582 Other papers of note include: 583 584 * [http://portal.acm.org/citation.cfm?id=1162708.1163079&coll=ACM&dl=ACM&CFID=42032534&CFTOKEN=18432343 Resource allocation and planning for program management], Kabeh Vaziri, Linda K. Nozick, Mark A. Turnquist, December 2005 585 * [http://portal.acm.org/citation.cfm?id=1351542.1351869&coll=ACM&dl=ACM&CFID=42032534&CFTOKEN=18432343 Stochastic rollout and justification to solve the resource-constrained project scheduling problem], Ningxiong Xu, Linda Nozick, Orr Bernstein, Dean Jones, December 2007 586 * [http://portal.acm.org/citation.cfm?id=324898.324933&coll=ACM&dl=ACM&CFID=42032534&CFTOKEN=18432343 Activity scheduling in the dynamic multi-project setting: choosing heuristics through deterministic simulation], Robert C. Ash, December 1999 587 588 And others at [http://portal.acm.org/results.cfm?coll=ACM&dl=ACM&CFID=42032534&CFTOKEN=18432343 ACM.org]. 561 To be practical as a Trac plugin, the implementation should not require heavy-weight, opaque abstractions or multiple threads. Furthermore, we desire an algorithm which can ''update'' a schedule as part of a ticket change listener rather than having to completely recompute a schedule for each, individual change. 589 562 590 563 ----