openpyxl-redmine workflow who does what in Redmine¶
Overview¶
Redmine roles are used to enable accounts for different actions in the PMO project area.
- accounts with Manager and Contributor roles perform workflow_* management actions
- accounts with Contributor roles perform task work actions
- Readonly is hopefully what it says.
Tipp: the “and” in “Manager and Contributor” implies the correct interpretation, that the allowed actions of the Manager role and the Contributor role are OR’d together to give the allowed action set.
The Redmine Contributor role when working with the Elvis type task tracker is configured to have no management capabilities. That is, the Contributor uses the browser interface whilst working with a task.
Management actions are performed by Managers using Python scripts (enables automation) or the browser (those tasks which are complicated and not easily scripted).
Contributor updates allowed in the browser Task update view:
- task status (see Elvis tracker chart below)
- add task notes (Redmine history comments)
- set task insights (Redmine Custom-Field)
- set task duration in hours (Redmine Custom-Field)
- set %done (Redmine attribute)
- adding co-workers
Contributor updates not allowed in the browser Task update view:
- assign new people to a task
- change task start_date and due_date
- set Responsible DATA team
- create a task in the primary Redmine project
Contributor changes not allowed in the browser Gantt view
- move a task in time
- relate (precedes, follows…) a task to another task
The figure shows status (state) and transition options allowed by the Redmine Elvis tracker used with workflow_*.
Contributor notifications¶
Redmine sends email notifications when a task state changes, e.g. its status, to co-workers associated with the task. The assignee does not get notified for changes that he/she made.
Asynchronous Notifications may be sent when:
- an external agent, e.g. daily analysis of task status, shows that the task is late or otherwise requires attention.
Contributor work actions¶
Contributors perform work to complete the task. They update the task’s Redmine entry to show the current state.
Note
It’s important that contributors update the 4, outlined in red, task properties in Redmine to enable project progress reviewing by the managers.
1. Status update¶
Status is the current state of work
Contributors are assigned tasks with status set New unless they are taking over a task in a different state. Please set the status to reflect the task state:
- In Progress when work is started and later when on-going
- Feedback when a vendor or requester design issue stops work
- Blocked when a h/w, s/w or f/w fault stops work
- Resolved when the task is completed
2. Insight update¶
Insight is a menu driven short text string describing the status. Updating insight to the most fitting string allows automation processes, e.g. Python scripts, to identify tasks which need additional attention from the PM or PTC.
Insight should be updated when task status is changed or when appropriate without a status change by selecting an option from the pull-down menu.
The current list of insight strings allowed is best seen by simple selecting a task from the project and pulling down the menu when updating a task as shown in the figure above.
Insight strings are status grouped and have two parts. Before the comma is description, after is who fixes the problem.
Note
The insight string allows managers to represent the needs for task progress during reviews. Suggestions for additional insight options are welcome and expected. The Blocked “Assignment expired,…” will trigger a manager to do something.
3. Duration in hours update¶
Duration in hours is the accumulate sum of hours worked on the task.
Duration in hours should be updated frequently when the status is In Progress - it shows that the task is active. The final summed value for the task will be compared with the expected time to allow Managers to set more realistic cost-estimate task duration requirements. If other people work on the task without becoming the assignee add their time in as well, we’re interested in the actual time spent in the task and not who did it!
When Redmine upgraded to version 5.0.0 duration in hours will be replaced by Redmine’s Spent Time module. Existing duration in hours values will be migrated to it.
4. %done update¶
The requirement of filling in the percentage done task attribute is particularly important for tasks taking more than a few days.
Note
How to update %done is currently being reviewed. For tasks such as module delivery, where the number of modules is fixed, updates are straightforward - if 2 of 5 modules are delivered, it’s 40%. For tasks like EPLAN design and verification, without module counts, then the assignee should linearize %done to reflect task progress.
Manager role¶
Managers have two responsibilities
- perform PMO project Table and Redmine configuration activities, using the Python tooling (e.g. workflow_inject, workflow_push, etc.) and Redmine browser interface, to allow projects to be executed within the DATA dept PTC concept. Typically, configuration work is concentrated at the the point when the project is injected into the procedure and Contributors may only become aware of a project on receiving a Redmine task assignment email.
- review and coordinate project progress. As with configuration work the aim is to automate review activity and Python tooling scripts, running in batch mode, are used to prompt Managers and Contributors of tasks which need to be addressed (e.g. free blocked tasks, perform assignee reassignment, etc.).
Readonly role¶
Is provided to allow wider, non-invasive, viewing of Redmine content.