What's New - 3.0
From DotProjectWiki
1 WARNING
Until the actual release of this version of dotProject this page provides an indication of what is intended. As part of the release we will update to list only those items that were included and update future planning.
2 Aim of the Release
dotProject 3.0 will be the first of two major "Resource Management" releases.
It will also be the first release of a ZEND framework version of dotProject. We will likely release 3.x in a number of major and minor releases. See http://blogs.sakienvirotech.com/dotProject?title=dotproject_version_3 for more
3.0 – Resource Management – Basic Functionality Release
3.1 – Resource Management – Leveling and Advanced Resource Mgt
The elements that are included on this list are designed to fit into either 3.0 or 3.1 depending upon how development proceeds.
Within that framework we are working towards incorporating standard resource management features such as[1]:
As at 2.x dotProject is and remains a Project Management tool - not a Project Planning tool. Some of the features in the next release will take us slightly further towards planning, but management will always remain the main focus.
2.1 General Changes
2.1.1 Active / Inactive Project Status
The current method of having an active / inactive project flag needs to be changed so that Archived is another status – just like other project statuses. Done 21 Nov by Greg.
2.1.2 Address Book
As an enhanced function of the contacts list there will be an option for the system to connect to an LDAP address book and provide a contacts listing / private address book facility for keeping PIM details. View only – will look up both local contact lists and the LDAP address listing and allow choice of either or both from a drop-down filter. All email addresses and web URL's are converted to clickable links.
--KarenC 15:49, 1 February 2007 (EST) Incorporated first pass of this in CVS with an updated LDAP library which is now being tested.
2.1.3 Announcements / User Messages
We need to incorporate an announcement function within the login page for general announcements that can be provided via System Configuration.
We also need to have a facility for a secondary announcement – user only that can be shown on the dashboard.
A broadcast email message facility should also be available – either all users or selected companies.
2.1.4 Backup Module
The add-on backup module has been expanded to be compatible with version 2.0; incorporated XML export and import of both schema and data; incorporated translation support and ADODB support. This module will now become part of the dotProject core. done in 2005 by AJD, may need to be updated.
2.1.5 Column Orders
Customised column orders for all modules.
2.1.6 Configurable Project Alerts
This option should allow the project manager to establish for a particular project a series of “events” and an alert type and content that will be posted. Alert types will include:
- Forum Notice
- Email to <project contact / task contact / task assignees / project manager / project sponsor)
Event types will include:
- Task Completion
- Task Generation
- Task % complete Update
- Forum Posting
- File Update / Upload
- Contact Assignment to a Project
2.1.7 Contact Categories / types (Project Roles)
In a move towards release 4.0 and being able to handle more sophisticated project reporting, we would like to be able to flag certain contacts against projects, for example: Project Manager / Project Sponsor / Committee Member and so on. These categories will need to be able to be modified by the site admin (hence be part of the system values structure).
2.1.8 Critical Path / Chain Methodology
As a first step towards generating a CPM diagram we have received a donation of code from a community member which takes an array of tasks with set dependencies and determines the start and end nodes to which the tasks are attached.
This commencement work will need to be taken further to ensure that we can and do generate total CPM diagrams – including viewable / printable versions.
2.1.9 Direct Entered Dates
We need to have the facility for dates to be directly entered with the pop calendar only being optional.
2.1.10 Email Reminders / Alerts
This has been incorporated into the 3.0 Release as the event queue management was added in 2.0 and the work required to take this to the next stage of having email reminders alone is not substantial. This update to the queue facility will provide email reminders of upcoming tasks and events – at a frequency to be established in the system defaults / modifiable by the user in user defaults.
Further to that there will be a facility for sending out an overdue task listing – either in individual email or “digest” format – on a frequency basis – again to be established in system defaults.
2.1.11 Externalise Email Contents for editing
For 3.0 we will be setting up a system that will allow the contents of email messages to be customised by the system admin from within the dotProject environment. This is the precursor to an email content / trigger point system that is envisaged for later releases.
2.1.12 Flatmode View
To be dropped – will definitely not work with most of the changes proposed for version 3.0 - Done Gregor/Keith - 20 Nov
2.1.13 Forum Status
Fix the fact that forum status currently does nothing. This was only partially implemented in the first ever release of dotProject and has stayed that way ever since.
2.1.14 Links Module
Links add-on module has been absorbed into the main project and will be included in the right hand side option menu. more than 3 months ago
2.1.15 Maintenance Lockout
We need to have a facility that will lock all users (except the nominated admin user) out of dotProject whilst maintenance is underway and automatically include a message (customisable by the system admin in system configuration) instead of the login box.
This should be developed after the Announcements facility - people should have time to complete their work. A maintenance logout should automatically be announced by the announcement system. (Greg, 20071017)
2.1.16 Optional Sort order for user names
A configuration item for how all user name listings are displayed is required – this should allow the site administrator to state that on their site it is either:
-
First Name, Surname -
Surname, First Name -
username
Done a while ago (cyberhorse)
2.1.17 Permission Granularity
There are a number of elements within the permissions system that need to be fine tuned, these include:
* From the Roles Admin, be able to access users that have that role assigned. Also allow add and remove users from that role from that view.
* Lock down permissions for view user.
* Take Company permission down to department level.
We've reworked permissions in 3.x to be policy based - rather than the current method so this will mean a significant change in options / behaviour - to be documented when the beta is completed.
2.1.18 Row Highlighting
A patch has been provided for the companies view that will highlight the row that the cursor is hovering over – if we are going to implement that patch then it should do the same thing in all listings.
2.1.19 RSS Feed
An RSS Feed function will be built into the Collaboration Release of dotProject to further enhance this functionality.
2.1.20 Search Highlighting
Patch provided by a community member
2.1.21 Show Event Times in All Calendar Views
Currently the weekly and monthly views of calendars do not include the time of the event.
2.1.22 General Calendar Improvements
We need to provide better navigation options (ability to click and enter month / year / day and so on).
2.1.23 sysvals to Database Table
Work is already underway to implement this functionality – needs to be completed and updated post 2.0 feature freeze
2.1.24 Table Prefixing
As per the work that was underway in dotProject v2.0 – we need to be able to support table prefixing so that dotProject can work on hosting packages.
2.1.25 Task Logs – Private
Add a private flag to a task log and adjust reports and views so that private entries are not included in reports and they are not viewable by any other user.
2.1.26 Today View Changes
Move task start / end events to the events tab and the small calendars on the tasks page have to indicate appointments / bookings.
2.1.27 Translation Upload / Download Manager
There should be an option that would allow an admin user to select a translation set from their site and “distribute” it. This would generate the necessary archive and provide a follow the bouncing ball facility in a browser window for that admin to follow to upload the translation.
2.1.28 User Cloning
Generate a user record by cloning an existing record should be allowed with the inclusion of a “clone this user” which generates a new entry with all the same fields, including roles and permissions but not including user name, passwords and First / Surnames.
2.1.29 User Dashboard
2.1.29.1 Basic Functionality
Whilst the current todo view provides some limited capacity for a dashboard, we need to expand that concept so that we have a dashboard which shows, from the one page:
- Tasks for “today”
- Events for “today”
- Tickets assigned to you
- Forum activity
- File activity
This dashboard should include all the same status reporting that we currently have (changing colours and so on), but it should also incorporate more interactivity with the event queue management that is now in dotProject to allow us to have an ALERT BOX which would indicate tasks / events / tickets etc that are within a critical range – site admin to be able to define the critical range.
2.1.29.2 Enhanced
Milestone Block – showing all the project milestones and using colour co-ordination to include:
- Late
- Upcoming
There will be user option to set the number of days in which to flag “upcoming” milestones.
- Upcoming Tasks – there will be a cut down view of the today listing that can be open
- Contacts / Project Participants – an address book of contact information for the company / project and private contacts will be built into the dashboard.
- Forum Integration – there should be a feed of recent forum messages into the dashboard for any forums that have been created connected with any projects that the current user is associated with.
2.2 Resource Management Specifics
Design and implementation methodology being worked on offline at present - no code updates will be released until we've finished benchmarking possible performance implications and resolved best method of implementation.
2.2.1 Find Available Working Slots
As another simple enhancement, which is likely to lead to further functionality we need a simple enquiry from the task add-edit function and from the project and task listings that will allow the user to select a user name and display a popup listing of available task times that the user has available. This will be displayed on a month by month basis – with the system defaulting to the current month.
2.2.2 Resource Allocation
Once resource calendars are available we need to be able to assign % available times of resources to tasks, and provide clash / overallocation reporting - at the time of allocation and post-allocation / levelling.
2.2.3 Estimated Dates and Durations
We need to expand the details kept for projects and tasks to include date and duration baseline records.
At this stage a single baseline / initial date and duration and the actual date / duration should be retained with an option on project display which allows the user to snapshot the baseline details. A report is then required which will show the state of the project and its associated tasks against the recorded baseline. This will indicate which tasks were completed early and which were completed later than the original baseline – including any tasks that were manually or, as a result of dependency changes, adjusted during the life of the project.
The initial implementation of this will allow for a single baseline only to be stored.
2.2.4 Project / Task Priority
Add filtering and sorting options based on project task and priority
2.2.5 Project Resources
For each individual project it should be possible for a project manager to pre-select a list of available resources (human and non-human) to assign to that project. Once that list is assigned then those resources will be the only ones that can be assigned. If no sub-list is available then all resources in the normal list will be available. There may also be a need to lock down options for resources to just the company that the project belongs to (for those that want lock-down), although we need to seriously consider what the implications of this are. Lock down isn't an ideal circumstance for a collaboration tool - and we definitely don't want to become an ASP tool.
Also please note – a project manager should be able to select resources from other companies when generating this list.
A further much needed update to this area is to make sure that we do not pick up inactive users as part of the possible resource list and/or as part of any list where a resource pool has not been setup.
2.2.6 Resource Management Information
Resource Allocation reporting is required showing by resource (human and non) / group of users / project(s) what is allocated and when including a clear on screen indication of when they are over-allocated and in relation to which tasks / projects. Ideally these should be on-screen and printable reports but wherever possible on-screen it should include a link to a view of the problem tasks (which may come from multiple projects), for example:
User X Task Allocation Bar – the bar should be a “clickable” area which will show a task list of just the problem tasks in the tab view which will allow editing of those tasks (see Task Creation – Project Planning Phase – Project / Task Display )
2.2.7 Resource Re-Allocation
There should be a facility that can be used to nominate one user / resource and re-allocate all tasks from that user to another user. If nobody would have broken the tasks per user page then we would have just this functionality. Proposal: Make the tasks per user page working again! (Greg, 20071017)
This will have to include clash advice on tasks and/or events and resolution.
2.2.8 Task Creation – Project Planning Phase
2.2.8.1 Project / Task Display
A version of the main task display tab needs to be added as another tab which shows the columns:
- Task Name
- Assigned Users (in full – no other option)
- Start Date
- Duration
- End Date
- Resource Allocation view (as discussed earlier).
This tab should allow for the direct editing of the fields:
- Assigned Resources
- Start and End Dates
- Number of Hours Allocated
2.2.8.2 Task AddEdit Screen Adjustment
We need to change the task entry methodology so that we can provide resource usage / availability information during project setup. This is a complicated requirement because of the amount of information that will need to be presented to the users. We need to change the current task entry screen to allow for a visual indicator of current resource usage and to incorporate date settings within the same tab as resource settings. In order to achieve this we will need to restructure the current tab layout and move the Additional Email comments to a separate tab of its own. We should then include a resource usage display on all resource (human and non-human) tabs. This display should be in the format:
Calendar Display......................... Resource Name bar graph showing usage day by day
The display should be able to be streamlined if the user selects the name(s) of particular resources that they want to review.
The display should show a monthly date range – with the starting date = the task start date. A popup for adjusting the date will be required from the resourcing screen
This should not prevent the user from over-allocating a user but should be used to show them the current situation. It will need to be redisplayed as the dates / resource allocations change. This will be a first pass only and will undoubtedly require further refinement in subsequent releases.
2.2.9 Task and Resource Levelling
We need to be able to consider a number of levelling options including:
Smoothing or levelling where task “hours” are spread across an assigned resource's unallocated time – without adjusting either the resources available working hours OR the required end date for the task.
Levelling where end dates for tasks within milestones can be adjusted but the milestone itself not moved.
Levelling where resources are assigned to tasks based on their available hours and the delivery dates for all tasks and the project are reset to match the available hours.
We also need to incorporate a flag against a task that indicates that this task (and any tasks that it is dependent upon) cannot be included in any levelling operation.
With all of these levelling options dotProject needs to allow users to attempt these levelling exercises without recording / overwriting the existing dates until they specifically chose to.
2.2.10 Task Duration Calculation / Work Effort
Once we have proper resource calendars, then we can move towards proper calculation of both effort and duration on tasks, as part of this release.
2.2.11 Task Dependencies
Dependency types are to be expanded to allow Finish to Finish, Start to Start, Start to Finish and Finish to Start type dependencies within tasks.
Task dependencies are currently only partially implemented in that they are available, but they are not a total implementation. This change is also predicated on the fact that dependencies are fixed to ensure that they carry forward in the event that tasks are copied / moved to other projects and/or imported. The following changes are required:
- Setting Dependency Groups / Adjusting Dates and Resourcing
- We first need to finalise the current date handling within task dependencies as there is no inter-relation between dependencies and task dates. For the first phase of this we will assume a Finish / Start relationship. For the first phase dotProject will be updated so that when a series of task dependencies are set:
- Firstly they will be shown as linked / dependent tasks on any / all task displays.
- Secondly, when selecting a group of tasks for dependency the user should be able to answer a question about whether or not to set the dates sequentially in the order that the tasks are displayed – yes or no.
- Dates should then be set, regardless of resource availability – resource levelling will be addressed in 3.1
- Adjusting Dependency Dates on Completion of Tasks
- Where a task is within a set of dependent tasks and the task is set to 100% complete at a date which is different from the original end date (< or >) then dotProject should ask whether subsequent dates should be adjusted. If the user says yes then any unfinished tasks within the dependency set LOWER in the dependency than the current set should be adjusted to their new start / end dates.
For further details of requirements please refer to Task Estimated and Actual Dates and Durations. These changes are stage one of Task Dependencies – see 3.1 for further details.
2.2.12 Working Calendar
We need to establish a facility for having a working calendar at each of the levels indicated on the left. [2]
There should be working calendars that can apply at the following levels:
- Per Site
- Per Project
- Per Resource (human or non-human)
The working calendar should be able to establish:
- Standard working hours across all days (eg Monday – Friday 9.00am – 6.00pm, Saturday – Sunday 2.00pm-5.00pm etc);
- Standard Working Days (eg Monday to Friday, Tuesday to Saturday etc);
- Holiday support – via a standard vcal holiday file upload which should set up all national / regional holidays across all calendars that are within the system;
- Special Hours – At any of the calendar levels you should be able to adjust the standard working days / hours for individual special requirements;
- You should also be able to adjust the calendar settings at each level, for example:
An individual resource could have different calendar settings to that for the project as a whole, a project could have different settings from the default and so on.
- The default calendar is used where there is no specific project or resource calendar;
- The project calendar is used where there is no specific resource calendar.
3 Footnotes
- ? Please note this is an indicative list - some items may be incorporated earlier than 3.x if they are sponsored / some items may not make it into the 3.x release
- ? By “Working Calendar” we mean a working schedule – other PM systems display it as a calendar in which you set working and non-working (weekends / holidays etc days), start / end hours / break hours and so on.
