ProjectPlannerPlugin
Project planning and reports
This is a plugin for planning projects and using collaborative maintenance to keep track of the status.
Description
Layout
There is a hierarchy of information in the web used by the plugin that will be used for planning:
- Web - the TWiki web containing all the projects. It is strongly recommended to setup a separate web for project tracking. One web can be used to track multiple products.
- Project - the project being worked on for a delivarable. Each project has a home page, which contains an auto-generated summary of the project progress.
- Plan - a project is divided into various plans. Each plan can be thought of as a cohesive feature that can be planned and allocated together.
- Task - Task is the atomic unit of work. Each plan is divided into multiple tasks. Task is the granularity of work allocated to a developer and scheduled in terms of man days.
- Developer - a user who is allocated the task.
Usage
Creation of pages is recursive, each page has an html form that uses a template to create child pages or a table with defined columns:
- Projects. You can create a new project page using the html form on the home page for the planning web. You can add additional content to these pages if desired, but do not delete the existing content. This is used to provide high level overviews of schedule progress.
- Plans. Each Project page has a form for creating plans in addition to the summary of currently entered plans. The template for the Plan page has a table where tasks can be added, allocated and updated.
Note: Project and Plan names have to be
WikiWord. Task names may or may not be. However, if Task names are specified as
WikiWord, it provides links to add more info about the task and also provides a pretty printed version for online-challenged meetings.
The top level project creation form is displayed by adding the keyword % PPALLPROJECTS% in any page. The creation of plans and addition of tasks are performed in the resulting forms that are generated when a project is created.
Plugin settings are stored as preferences variables.
- One line description, is shown in the TextFormattingRules topic:
- Set SHORTDESCRIPTION = Project planning and reports
- Debug plugin: (See output in
data/debug.txt)
Advanced Settings
It is possible to customize the
PlanTemplate to have a different layout for the Task Table. However, the plugin does depend on the fields in the table for processing information for some of the variables. The plugin can tolerate some shuffling of the columns and can automatically parse the PlanTemplate topic file to figure which column is which field. However, the plugin depends on the exitence of the following required columns for the tasks:
| Name |
Comment |
| Task Name |
Name of the Task, can be a WikiWord to enable adding more info |
| Summary |
brief summary for executive consumption |
| Module |
a module that this task belongs to for Module based processing |
| Developer |
developer assigned to task |
| Priority |
possible priority values for task |
| Status |
status of task (not started, in progress, waiting, and done) |
| Est. Days |
estimate of man days for the task |
| Spent Days |
number of man days already spent |
| Est. Effort |
percentage of developer devoted to this task |
| Results_Comments |
self-explanatory |
| Date Added |
to keep track of dates |
| Key |
default value of PPTASK (Important - required for searching the table) |
Note: It is advisable to setup a separate web for the project planner and create all projects and plans in that web. Whenever new data is entered into the web, the plugin crunches through all the files in the web to identify files which belong to various projects. This can be slow if the planner is used on a web with a large number of files.
Variables available for displaying status
This is a list of all the variables available. These variables can be placed at relevant places on the web to display the information.
Note: For any of the items below when the list of projects is not specified, all the projects in the current web are used to list the information. Many of these variables take wildcards with a
star in the name for projects and plans.
| Variable |
Parameters |
Comment |
| PPALLPROJECTS |
none |
|
| PPALLPLANS |
none |
|
| PPALLPLANSTASKSUMMARY |
comma separated list of planexp:taskexp regex pairs |
any bunch of plans and tasks put together |
| PPPROJECTPLANS |
project topic |
adds a form for plan creation |
| PPALLPROJECTSPLANS |
comma separated list of regex project topics |
no plan creation form |
| PPALLPROJECTSTASKS |
comma separated list of project topics |
|
| PPALLPROJECTSINFO |
comma separated list of regex project topics |
creates a printable summary with all info from all tasks |
| PPDEVSUMMARY |
comma separated list of regex project topics |
summary by developer |
| PPDEVDETAILS |
comma separated list of regex project topics |
detailed tasks by developer |
Status Summary Display
- Handling of the Est Days and Spent Days in Summary Views: The plugin computes cumulative totals based on the status of tasks. Hopefully, the following rules help understand the totals:
- done status: It is assumed that the Spent Days is not updated and Est Days is the column that accurately describes the estimated days and spent days for that task. The Est Days is used for the green color bar and Spent Days is ignored.
- not started status: It is assumed that any Spent Days is meaningless and the Est Days is used for total days. The Est days will all show up as part of the red bar in status.
- waiting status: This status says the task is blocked for some reason. It is assumed that Spent Days is already spent and the remaining days (Est Days - Spent Days) is enough to finish the task after the reason for the block is removed. The Spent days are used as a blue color bar in status from rev 2.040 onwards. The remaining days will add into the red bar.
- in progress status: The Spent Days are used towards the Spent total (and the orange color bar in status). The remaining days (Est Days - Spent Days) are used towards the red color bars.
Usage Tips
- Naming Projects, Plans and Tasks: It is a good idea to name projects, plans and tasks so that you can group them by using wildcards when you want to display summaries and status.
Additional TWiki plugins needed
The following TWiki plugins are needed to get this plugin to work at its best:
- EditTablePlugin is used to simplify entering of tasks by using an EditTable template.
- TablePlugin is optional but useful as it allows you to sort tabulated information by column
Plugin Installation Instructions
- This plugin has only been tested with the 01Feb2003 TWiki release.
- Download the ZIP file from the Plugin web (see below)
- the default ZIP installs in the TWiki common directory. it is advisable to create a separate web for the project planner and copy the Template files to that directory.
- Unzip
ProjectPlannerPlugin.zip in your twiki installation directory. Content: | File: | Description: |
data/TWiki/ProjectPlannerPlugin.txt | Plugin topic |
data/_yourweb_/ProjectTemplate.txt | Page template for project |
data/_yourweb_/PlanTemplate.txt | Page template for a plan |
data/_yourweb_/NewPageError.txt | Page displayed when a new page creation operation failed |
lib/TWiki/Plugins/ProjectPlannerPlugin.pm | Plugin Perl module |
- Visit
configure in your TWiki installation, and enable the plugin in the {Plugins} section.
NOTE: The ProjectTemplate.txt and PlanTemplate.txt files need to be copied to the appropriate
yourweb web or you will see a blank page when you create the Project from the PPALLPROJECTS tagged page.
Version 2.000 Changes
Version 2.000 breaks compatibility slightly with the data files if you use the original version. It was required to fix a bug. This version fixes a few bugs and adds several features outlined below:
Fixes
- getViewUrl fix: The newer release of TWiki fixed/broke some compatibility with older plugin code. Version 2.000 of plugin includes this needed fix. If you need to use version 1.000 with the newer release of TWiki, let me know and I can post a patch.
- PlanTemplate change: The template file has been changed to fix a small bug in parsing all the plan files. For people who have already installed the earlier version and want to change to the new version, you might be able to hand-edit the Plan files by seeing the difference between the PlanTemplate files to convert plan data files to new format.
- Error on missing Template files: A few people tried installing and did not copy the ProjectTemplate.txt and PlanTemplate.txt files into the correct web. Now the plugin gives an error message on the web when it cannot find the template files.
Features
- Plan ID: adds a new field to Project and Plan called an ID. This can be used as a second level of grouping to collect plans from different projects into one collection. This can preserve the Project-Plan-Task hierarchy but still provide the flexibility of grouping using an ID field. It can be left empty harmlessly and not have any repercussions on the rest of the plugin. Related to it there is now a variable called PPPLANIDSUMMARY that summarizes the plans by ID (like the PPDEVSUMMARY that summarized by developer).
- Wildcard support: The comma separated list of projects can now have * as a wildcard in each project name.
- Three Color Status: now not started, in progress and done are shown in green, orange and red instead of just green and red.
- Done/Cancelled: plugin now counts cancelled tasks same as done tasks.
Version 2.010 Changes
- Feature Fix: Till version 2.000, the plugin required at least one plan in each project before it was displayed in the list of projects in the top level page. version 2.010 displays all projects even if they do not have any plans.
- Project Summary: Now the projects list at the top shows the Summary for each project in the table of projects.
- Removed some HTML comments from the ProjectTemplate and PlanTemplate that seems to cause the Edit Table not to appear in some TWiki versions.
Version 2.040 Changes
- New variable: PPPLANSTASKSUMMARY will collect information about lists of plans and tasks and display the status summary
- New variable: PPDEVDETAILS. Split summary by developer into two views. PPDEVSUMMARY variable displays one line summary for each user and PPDEVDETAILS shows all tasks and status like previous PPDEVSUMMARY
- Sorted developer names in summary views for easier lookup
- Fixed bug in handling display of summary by developer by owner where spaces would result in different owners
- Multi-developer task: added partial handling of multiple developers in one task using a comma separated list. it is strongly recommended not to use this method and actually split the task up into multiple tasks with one owner each.
- Waiting Status Color: Added a new color bar (Blue) for waiting status and count days spent on it since it is similar to in progress rather than not started.
- Cancelled Status: Fixed handling of cancelled state in Summary by Developer view. Cancelled status is treated same as Done status where Est Days are added to Total Days and Spent Days ignoring the Spent Days column.
- Added summary by module below the project summary which splits days into Est Days and Spent Days by module.
- Added summary by Task Priority below the table in several summary views
- Added summary totals for tasks in various summary displays
- Added two views for summary by PlanId. First view is high level view with plans for better consumption. Second level detailed view is by tasks.
- Added Tasks Done and Total columns to the summary views
- Flipped order of Spent Days and Est Days (only in summary views)
- Stole Julian calendar processing code from SpreadSheetPlugin
- Added computation of a completion date (actual Julian calendar date) by adding remaining days to today in the developer summary views
- Minor change: Added status color bars for total days in all plans of a project view.
- Minor bug fixes in several places
Sample Output
Note: Cut-and-paste has been hand-scrubbed and hence will not pass any sanity checks. This sample is from Rev 1 and it looks different in newer revs.
All plans for projects
Summary of developer tasks and status for TestingPPProject
Installation test
- If installed correctly you should see the following content between the two horizontal lines below - a title "All Projects" and a single cell table with the field containing the word "Project", and finally an html form to add a new project (dont use this form from here though!)
%PPALLPROJECTS%
Plugin Info
Related Topics: TWikiPreferences,
Main.TWikiPreferences,
TWikiPlugins