Changes between Version 126 and Version 127 of ProjectManagementIdeas
- Timestamp:
- Aug 28, 2015, 12:58:53 PM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ProjectManagementIdeas
v126 v127 251 251 == Earned Value 252 252 253 To compute earned value, we need unchanged original estimates, and probably also some way to estimateremaining time.253 To compute [https://en.wikipedia.org/wiki/Earned_value_management earned value], we need unchanged original estimates and an estimate of remaining time. 254 254 255 255 == Resource Description and Allocation 256 256 257 We need a proposal for how to describe available resources within Trac. If tasks are tickets and tickets have owners who work on them, it seems reasonable that a resource is a Trac user. There may be information we need to track for a resource that it not part of the user configuration. It might also be necessary or desirable to allow tickets to have multiple owners. Or, we might want to have a way to have a list of (resource,hours)pairs independent of the owner.257 We need a proposal for how to describe available resources within Trac. If tasks are tickets and tickets have owners who work on them, it seems reasonable that a resource is a Trac user. There may be information we need to track for a resource that it not part of the user configuration. It might also be necessary or desirable to allow tickets to have multiple owners. Or, we might want to have a way to have a list of `(resource,hours)` pairs independent of the owner. 258 258 259 259 = Related Work … … 261 261 == Trac Core 262 262 263 There are a couple of tickets ([http://trac.edgewall.org/ticket/31 31], [http://trac.edgewall.org/ticket/886 886]) and some discussion about ticket [http://trac.edgewall.org/wiki/TracDev/Proposals/TicketLinks linking] and [http://trac.edgewall.org/wiki/TracDev/Proposals/TracRelations relationships] in the Trac core. We may be able to get a lot done while we wait for that work to come to fruition.263 There are a couple of tickets ([http://trac.edgewall.org/ticket/31 31], [http://trac.edgewall.org/ticket/886 886]) and some discussion about ticket [http://trac.edgewall.org/wiki/TracDev/Proposals/TicketLinks linking] and [http://trac.edgewall.org/wiki/TracDev/Proposals/TracRelations relationships] in the Trac core. 264 264 265 265 == Trac Plugins … … 275 275 [wiki:GanttChartPlugin GanttChart]:: is a very simple Gantt chart implemented in a formatted text region. It is manually edited, not data-driven. 276 276 277 [http://willbarton.com/code/tracgantt/ TracGantt]:: has potential but has some fields that don't seem to be appropriate to what we want to do with a Gantt chart (e.g., Due to Assign). 278 279 GanttCalendarPlugin:: provides nice views of tickets. It uses "Completed [%]" (quantized to 5% increments), "Start" (YYYY-MM-DD), and "End" (YYYY-MM-DD) custom fields. It seems to include an administrative calendar, perhaps where holidays and such can be recorded. 277 [wiki:GanttCalendarPlugin GanttCalendar]:: provides nice views of tickets. It uses "Completed [%]" (quantized to 5% increments), "Start" (YYYY-MM-DD), and "End" (YYYY-MM-DD) custom fields. It seems to include an administrative calendar, perhaps where holidays and such can be recorded. 280 278 281 279 Pale Purple's [http://github.com/palepurple Virtual Planner] is an alternative visualization tool. … … 297 295 DateFieldPlugin has some helpful wrappers around custom fields to validate them as dates. 298 296 299 May I draw your attention to SchedulingToolsPlugin? I was not aware of this page, but implemented some of its ideas in some kind of prototype. 300 It currently has a scheduler, resource availability and Gantt chart in a simple fashion. I would like to enhance it, maybe we can join efforts? -- viola 297 SchedulingToolsPlugin has a scheduler, resource availability and Gantt chart in a simple fashion. It is in alpha stage, however. 301 298 302 299 TeamCalendarPlugin keeps track of user availability. … … 306 303 The TicketImportPlugin can import tasks exported from Microsoft Project as a CSV file. There is a [ticket:7812 patch] to import dependencies so Microsoft Project can feed !MasterTickets. 307 304 308 A fact of life is that Microsoft products like Exchange and Outlook are present in many environments. It would be nice if we could get availability information from Exchange to feed a project calendar. Just reading from the group calendar would probably be enough. That way users would only have to put in their vacations, etc. in one place.305 Because Microsoft products are present in many environments, it would be nice if we could get availability information from Exchange to feed a project calendar. Just reading from the group calendar would probably be enough. That way users would only have to put in their vacations, etc. in one place. 309 306 310 307 == Other work … … 314 311 [http://www.simpleprojectmanagement.com/planner/home.html Planner] is an open source project management program. 315 312 316 GNOME 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.313 GNOME 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. 317 314 318 315 [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 was forked last year as [http://www.web2project.net/ Web2Project]. 319 316 320 I reviewed [http://www.smashingmagazine.com/2008/11/13/15-useful-project-management-tools/ 15 Useful Project Management Tools]. It mentions Trac. None of the tools obviously have scheduling in them. [http://www.atlassian.com/software/jira/ Jira] sounded promising but doesn't seem to have scheduling. Their chart examples don't include a Gantt. [http://www.basecamphq.com/ Basecamp] is popular and promising: 317 The article [http://www.smashingmagazine.com/2008/11/13/15-useful-project-management-tools/ 15 Useful Project Management Tools] mentions Trac. None of the tools obviously have scheduling in them. 318 319 [http://www.atlassian.com/software/jira/ Jira] sounded promising but doesn't seem to have scheduling. Their chart examples don't include a Gantt. 320 321 [http://www.basecamphq.com/ Basecamp] is popular and promising: 321 322 322 323 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. … … 364 365 * Custom Fields 365 366 366 However, this doesn't seem to be all the data Project records for a task. If you add a column to the WBS in the Gantt chart, there are many more options. The most interesting is Work which is the amount of work required to complete a task. Only when a resource is assigned 100% are Work and Duration the same. We'd like to bespecify the ''work'' required for a task and let the system calculate its ''duration'' based on available resources.367 368 = Roadmap367 However, this doesn't seem to be all the data Project records for a task. If you add a column to the WBS in the Gantt chart, there are many more options. The most interesting is Work which is the amount of work required to complete a task. Only when a resource is assigned 100% are Work and Duration the same. We'd like to specify the ''work'' required for a task and let the system calculate its ''duration'' based on available resources. 368 369 == Roadmap 369 370 370 371 There seems to be a consensus that grandiose project management features for Trac should be implemented with a combination of plugins which provide useful functionality on their own. The following plan assumes that approach. … … 382 383 * TracJsGanttPlugin provides such a display. 383 384 384 * [#DependencyandDuration Basic scheduling] (ignoring resource conflicts and availability) can be provided based on 385 * [#DependencyandDuration Basic scheduling] (ignoring resource conflicts and availability) can be provided based on: 385 386 * core Trac tickets, 386 387 * !MasterTickets, … … 396 397 * The scheduler can be enhanced to take into account resource conflicts. 397 398 398 = Design399 == Design 399 400 400 401 To maximize the flexibility in mixing and matching plugins to provide features for project management, I propose to leverage Trac's [http://trac.edgewall.org/wiki/TracDev/ComponentArchitecture Component Architecture] to specify a number of interfaces in a `tracpm` namespace. In this way a Gantt chart, a workload chart, a task scheduler, etc. can all use the `tracpm` interfaces regardless of whether, for example, Subtickets or Childtickets (or even ticket decomposition in a future Trac core) are used to represent parent/child relationships. 401 402 402 == IProjectTask403 === IProjectTask 403 404 404 405 Tasks for project management will be based on tickets but an abstract interface allows us to decouple a scheduler or other PM tool from the implementation of non-core ticket features like recording estimates and progress. One user may choose to implement IProjectTask on top of !TimingAndEstimation and another on top of !TracHours. … … 428 429 lag:: Offset of this task's anchor relative to the anchor of ''task''. (''Lag'' may be negative.) Whether the ''anchor'' for the dependency is the start or end of the task depends on the dependency type. For example, if Task B has a FS dependency on Task A with a lag of 1 day, then Task B starts 1 day after Task A finishes. Or, if Task B has an SS dependency in Task A with a lag of 1 day, then Task B starts 1 day after Task A starts. (''lag'' is not scaled by ''percentEffort''.) 429 430 430 == IProjectDependencies431 === IProjectDependencies 431 432 432 433 An interface that abstracts the implementation details of dependencies and allows other parts of the PM system (e.g., a Gantt chart or scheduler) to retrieve and update dependencies including: … … 446 447 * Unlink B as a successor or predecessor of A (order doesn't matter). 447 448 448 == IProjectCalendar449 === IProjectCalendar 449 450 450 451 The essential feature of a project calendar is that it knows when work is not done (weekends and holidays) so that task duration can account for that down time. … … 456 457 '''Used to have `startFromFinish()` and `finishFromState()` here but those are likely scheduler functions. I think what we need here is `hoursAvailable(resource, date)` which a scheduler can call on each date and subtract the result from the work it is trying to schedule.''' 457 458 458 == IProjectResource459 === IProjectResource 459 460 460 461 Describes resource availability. May need calendar options for individuals. Some may want progress rates and costs, and some may not - this is surely controversial. 461 462 462 == IProjectSchedule463 === IProjectSchedule 463 464 464 465 Computing a schedule involves determining the ''computedStart'' and ''computedFinish'' for a set of tasks taking into account the dependencies between tasks, the resources assigned to those tasks, and the resource availability. Where the tasks do not have ''assignedStart'' or ''assignedFinish'', the computed schedule prioritizes tasks to keep resources at or below availability. However, assigned dates may force overloaded resources. These overloads can then be reported and either manually resolved or resolved with a resource leveling module separate from the scheduler. … … 494 495 * "fit" - It's better to start a 2-day task on Wednesday and hold a 4 day task for the next week than to break up the longer task across a weekend. 495 496 496 == Schedule Scenarios ==497 498 It might be helpful or interestingto consider saving schedules or scenarios. If we stored resource assignment, start and finish data in a table keyed by schedule and ticket, we could store multiple possible schedules and choose to display different ones. An initial release could have only a single schedule and no facility for creating alternatives. A later refinement could add scenario support. If a start or finish date was configured for a task, the schedule would copy that data and not allow editing or recomputation of those dates; other tasks would flow around that fixed time. If a task lacked a start or finish date, the scheduling of that task would be fluid and computed by the scheduler.497 == Schedule Scenarios 498 499 It might be helpful to consider saving schedules or scenarios. If we stored resource assignment, start and finish data in a table keyed by schedule and ticket, we could store multiple possible schedules and choose to display different ones. An initial release could have only a single schedule and no facility for creating alternatives. A later refinement could add scenario support. If a start or finish date was configured for a task, the schedule would copy that data and not allow editing or recomputation of those dates; other tasks would flow around that fixed time. If a task lacked a start or finish date, the scheduling of that task would be fluid and computed by the scheduler. 499 500 500 501 == Contributors 501 502 502 The bulk of this page was prepared by Chris Nelson who makes no claim to be certified project planner or anything of the sort. It is based on his understanding of project management after 25 years of software development. [#Contributors Other developers] have also offered some hints and useful comments (according to their experience) in order to enhance this page, and get a better understanding of the features and requirements needed.503 The bulk of this page was prepared by Chris Nelson who makes no claim to be a certified project planner. It is based on his understanding of project management after 25 years of software development. 503 504 504 505 Other contributors: … … 584 585 585 586 * [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 586 587 Much of the project scheduling literature treats task durations as deterministic. In reality, however, task durations are subject to considerable uncertainty and that uncertainty can be influenced by the resources assigned. The purpose of this paper ...588 589 587 * [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 590 591 The key question addressed by the resource-constrained project scheduling problem (RCPSP) is to determine the start times for each activity such that precedence and resource constraints are satisfied while achieving some objective. Priority rule-based ...592 593 588 * [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 594 589 595 590 And others at [http://portal.acm.org/results.cfm?coll=ACM&dl=ACM&CFID=42032534&CFTOKEN=18432343 ACM.org]. 596 597 591 598 592 ----