This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
en:support:cpm [2014/06/30 17:00] melanie.yesilcay |
en:support:cpm [2017/09/25 10:05] Julian Le [Requirement] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | FIXME **This page is not fully translated, yet. Please help completing the translation.**\\ //(remove this paragraph once the translation is finished)// | + | |
==== Definition ==== | ==== Definition ==== | ||
**CPM** stands for **C**ritical **P**ath **M**ethod. | **CPM** stands for **C**ritical **P**ath **M**ethod. | ||
- | In T!M the CPM status is displayed as traffic-light which gives an overview about the schedule of the process and is important for the [[en:software:tim:rights#Processmanager|Processmanager]] to keep track of the whole process. The CPM function is only available in the [[en:software:tim:todo-processmanager4g|Processmanager-Client]]! | + | In T!M the CPM status is displayed as traffic-light which gives an overview about the schedule of the process and is important for the [[en:software:tim:roles#Processmanager|Processmanager]] to keep track of the whole process. The CPM function is only available in the [[en:software:tim:todo-processmanager4g|Processmanager-Client]]. |
- | {{ :en:support:cpm-ampel_en.png?direct&700 |}} | + | {{ en:software:tim:activities_status.png?direct&700 |}} |
- | In ToDo-Client the traffic-light is not visible, and the responsible only see the time that remains for working off their part of the task. See also [[en:software:tim:todo_clients#Element 15|ToDo-Client]]. | + | In ToDo-Client the traffic-light is not visible, and the actor only sees the time that remains for working off their part of the task. See also [[en:software:tim:todo_clients#Element 15|ToDo-Client]]. |
>> Caution! The processing time in [[en:software:tim:todo_clients#Element 15|ToDo-Client]] is not associated with CPM! | >> Caution! The processing time in [[en:software:tim:todo_clients#Element 15|ToDo-Client]] is not associated with CPM! | ||
Line 13: | Line 13: | ||
====Processing time==== | ====Processing time==== | ||
- | The processing time of a task can be entered in Signavio. It specifies how long the employee may need for a task until it has to be finished. | + | The processing time can be entered in each process activity. It specifies how long the employee may need for the tasks within an activity until they have to be finished. |
==== Critical path==== | ==== Critical path==== | ||
The critical path describes the longest possible path of the process according to the processing time. | The critical path describes the longest possible path of the process according to the processing time. | ||
- | The processing time of the tasks, which are in the critical path, are added and result in the longest processing path. | + | The processing time of the activities, which are in the critical path, are added and result in the longest processing path. |
The critical path is shown in red on the following picture. | The critical path is shown in red on the following picture. | ||
- | The longer path is the upper one in the first branch, because the two tasks have a processing time of 5 hours each, which is a longer period as the 9 hours of the lower path. | + | In the first part of this sample process the longer path is the upper one, because the two activities have a processing time of 5 hours each, which is a longer period than the 9 hours of the lower path. |
- | The longer path is the lower one in the second branch. | + | In the second branch the path, wich has a longer processing time, is the lower one. |
- | So there is for the whole process an entire processing time of 5 hours + 5 hours + 2 hours + 7 hours = 19 hours . | + | So there is an entire processing time of 5 hours + 5 hours + 2 hours + 7 hours = 19 hours for the whole process. |
- | {{ :support:unbenannt.jpg |}} | + | {{ :en:support:critical_path.png |}} |
---- | ---- | ||
Line 30: | Line 30: | ||
==== Times of a task ==== | ==== Times of a task ==== | ||
=== EST - Earliest start time === | === EST - Earliest start time === | ||
- | The earliest start time can be calculated via the forward planning of the process. The EST of the first task is the starting time of the process. | + | The earliest start time can be calculated via the forward planning of the process. The EST of the first activity is the starting time of the process. |
- | For all following tasks, it is calculated from the sum of all processing times of the previous tasks along the critical path. | + | For all following activities, it is calculated from the sum of all processing times of the previous activities along the critical path. |
- | === EFT - Earliest end time === | + | === EFT - Earliest finish time === |
- | The earliest finish time is also calculated via the forward planning of the process. The EFT results from addition of the EFT and the processing time of the task. | + | The earliest finish time is also calculated via the forward planning of the process. The EFT results from addition of the EFT and the processing time of the activity. |
=== LFT - Latest finish time === | === LFT - Latest finish time === | ||
- | + | The latest finish time is calculated via the backward planning. That means it is indicated either a planned end for the process or the end is calculated from the length of the [[ #critical path | critical path ]]. | |
- | The latest finish time is calculated via the backward planning. That means it is indicated eather a planned end for the process or the end is calculated from the length of the [[ #critical path | critical path ]]. | + | The LFT of the last activity is equivalent to the planned or calculated end. The processing time of the following activity is deducted from the LFT of the following task for calculating the LFT of the previous activity. |
- | The LFT of the last task is equivalent to the planned or calculated end. The processing time of the following task is deducted from the LFT of the following task for calculating the LFT of the previous task. | + | |
=== LST - Latest start time === | === LST - Latest start time === | ||
- | The latest start time of a task is equivalent to the LFT of the previous task or rather the LFT of the task minus the processing time of this task. | + | The latest start time of an activity is equivalent to the LFT of the previous activity or rather the LFT of the activity minus the processing time of this activity. |
- | === Buffer of a task with an AND branch === | + | === Buffer of an activity with an AND branch === |
- | The buffer of a task can be calculated as: Buffer = LST (latest start time) - EST (earliest start time). | + | The buffer of an activity can be calculated as: Buffer = LST (latest start time) - EST (earliest start time). |
- | This is the buffer which can be used by the task for a later starting, or for overrunning the time of work without putting the schedule of the whole process at risk. | + | This is the buffer which can be used by the activity for a later starting or for overrunning the time of work without putting the schedule of the whole process at risk. |
---- | ---- | ||
Line 54: | Line 53: | ||
The process is still in scheduled time. No buffer time was needed so far. | The process is still in scheduled time. No buffer time was needed so far. | ||
\\ === Yellow light === | \\ === Yellow light === | ||
- | The traffic-light of a task is yellow if the task is going to use buffer time. | + | The traffic-light of an activity is yellow if the task is going to use buffer time. |
- | That means, the task has exceeded its earliest start time but due to a task, that runs parallel and in which the process has to wait to proceed, the task got included a buffer. | + | That means, the activity has exceeded its earliest start time but due to another activity, which runs parallel and for which the process has to wait until proceeding (AND Gateway), the activity got a buffer. |
- | If you look at the following [[#Examples | example]] it is clear how the buffer calculation works: The task with a time of 9 hours has a buffer of 1 hour because the process has to wait for the tasks with each 5 hours. | + | The following [[#Examples | example]] shows you how the buffer calculation works: The activity with a time of 9 hours has a buffer of 1 hour because the process has to wait for the activities with 5 hours each. |
\\ === Red light === | \\ === Red light === | ||
- | If a task is not completed within the scheduled latest finish time, the traffic-light turns red because the task exceeded its scheduled time frame. | + | If an activity is not completed within the scheduled latest finish time, the traffic-light turns red because the activity exceeded its scheduled time frame. |
- | Based on [[#Examples | example]] you can see that the traffic-light turns red as soon as the task exceeded the time of 5 hours. Or the traffic-light turns red as soon as the task with scheduled 9 hours needs more than 10 hours for finishing. That means the buffer is used up for this task. | + | Based on [[#Examples | example]] you can see that the traffic-light turns red as soon as the activity exceeded the time of 5 hours. Or the traffic-light turns red as soon as the activity with scheduled 9 hours needs more than 10 hours for finishing. That means the buffer exceeded for this activity. |
- | If a task or a set of tasks (see [[#examples]]) is not completed on schedule and so the scheduled time of the whole process has been exceeded, the traffic-light turns red because the process can not be finished in time anymore. | + | If an activity or a set of activities (see [[#examples]]) is not completed on schedule and the scheduled time of the whole process has been exceeded, the traffic-light turns red because the process can not be finished in time anymore. |
- | > If the traffic-light is red once, it will stay red for the rest of the process because no task can be done in the scheduled time. | + | > If the traffic-light is red once, it will stay red for the rest of the process because no activity can be done in the scheduled time. |
---- | ---- | ||
Line 86: | Line 85: | ||
==== Hand over buffer ==== | ==== Hand over buffer ==== | ||
- | For handing over the buffer in a process, the checkbox **Hand over buffer** in Signavio must be activated. This can also be done later for individual instances. This can be achieved by [[ en:software:tim:instance_context_properties | Properties of a process instance]]. | + | For handing over the buffer in a process, the checkbox **Hand over buffer** must be activated in the process properties. This can also be done later for individual instances. This can be achieved by [[ en:software:tim:instance_context_properties | Properties of a process instance]]. |
{{ :en:support:handover_buffer.png |}} | {{ :en:support:handover_buffer.png |}} | ||
- | If **Hand over buffer** is activated, buffer which arised by early completion of an activity, i.e. befor the end of their process time, are hand over directly to the following activities. The buffer is generated from unused processing time of an activity. | + | If **Hand over buffer** is activated, the buffer, which arised by early completion of an activity i.e. before the end of its processing time, is handed over directly to the following activities. The buffer is generated from unused processing time of an activity. |
- | The processing time of the following tasks is generated from the own processing time of the activity and the arised buffer. If the scheduled processing time of a task is exceeded, a negative buffer is generated which will be substracted from the processing time of the following task. But there will be remaining always a processing time of one hour at least. | + | The processing time of the following activities is generated from the own processing time of the activity and the arised buffer. If the scheduled processing time of an activity is exceeded, a negative buffer is generated which will be substracted from the processing time of the following activities. But there will always be remaining processing time of one hour at least. |
actual processing time = scheduled processing time + possibly arised buffer | actual processing time = scheduled processing time + possibly arised buffer | ||
==Hand over buffer in an AND-Gateway== | ==Hand over buffer in an AND-Gateway== | ||
- | {{ support:pufferweitergeben_bsp.png }} | + | {{ :en:support:buffer.png |}} |
As you can see in the example, a buffer of one hour arises in the upper activity within the AND-branch. | As you can see in the example, a buffer of one hour arises in the upper activity within the AND-branch. | ||
- | In the lower activity, a buffer of one hour arises in the first task. This buffer is hand over directly to the next task, which uses 30 minutes of the buffer. \\ | + | In the lower activity, a buffer of one hour arises in the first activity. This buffer is handed over directly to the next activity, which uses 30 minutes of the buffer. \\ |
- | From this you can see that a buffer of one hour arised in the upper branch. In the lower branch, a total buffer of half an hour / 30 minutes arised. The activity after an AND-branch gets the smallest originated buffer. In this case, the activity gets the 30 minutes added to its own processing time. | + | There you can see that a buffer of one hour arised in the upper branch. In the lower branch, a total buffer of half an hour / 30 minutes arised. The activity after an AND-branch gets the smallest originated buffer. In this case, the activity gets the 30 minutes added to its own processing time. |
Line 112: | Line 111: | ||
==== Requirement ==== | ==== Requirement ==== | ||
- | 3 points are required for activating the CPM modul: | + | 3 points are required for activating the CPM module: |
- | - A processing time is entered on each node | + | - A processing time is entered on each activity |
- The process has no loop, because no minimum term can be calculated anymore (see [[#CPM modul deactivated]]) | - The process has no loop, because no minimum term can be calculated anymore (see [[#CPM modul deactivated]]) | ||
- CPM calculation is activated in the process | - CPM calculation is activated in the process | ||
* **Signavio**: Count Critical must be activated (see [[#CPM modul deactivated]]) | * **Signavio**: Count Critical must be activated (see [[#CPM modul deactivated]]) | ||
- | * **iGrafx**: //Follows// | + | * **iGrafx**: If CPM is active, "Big" endings must be used in iGrafx. When "Small" Endings are used, CPM will not be calculated. (see [[en:software:igrafx_documentation#endings|iGrafx Endings]]) |
Line 126: | Line 126: | ||
==== Examples ==== | ==== Examples ==== | ||
- | {{ :support:beispiel.jpg |}} | + | {{ :en:support:hours.png |}} |
---- | ---- | ||
Line 153: | Line 153: | ||
----- | ----- | ||
=== CPM modul deactivated === | === CPM modul deactivated === | ||
- | {{:support:cpm_schleife.jpg?direct&300 |}} | + | {{ :en:support:loop.png?direct&300 |}} |
This is an example of a process in which the CPM modul can not work, because a loop is integrated. Because of this loop, the CPM modul can not calculate how often the process will be passed through and can not specify any times until certain tasks must be completed. | This is an example of a process in which the CPM modul can not work, because a loop is integrated. Because of this loop, the CPM modul can not calculate how often the process will be passed through and can not specify any times until certain tasks must be completed. | ||
Line 162: | Line 162: | ||
- | {{ :support:aktivitäten.png }} | + | {{ :en:support:times.png |}} |
- | |< 100% 300px>| | ||
^ Element ^ Description ^ | ^ Element ^ Description ^ | ||
| **Name** | Name of the activity in the process | | | **Name** | Name of the activity in the process | | ||
| **desired start** | If the checkbox is activated, the desired start time takes effect. | | | **desired start** | If the checkbox is activated, the desired start time takes effect. | | ||
- | | **desired start time** | A [[#Desired start time]] for an activity can be specified here, if necessary. | | + | | **desired starttime** | A [[#Desired start time]] for an activity can be specified here, if necessary. | |
- | | **Period** | The period of an activity can be changed here for this process instance. | | + | | **Duration** | The duration of an activity can be changed here for this process instance. | |
| **LFT** | The latest finish time of a task is displayed here. | | | **LFT** | The latest finish time of a task is displayed here. | | ||
| **Start** | The actual start of an activity is displayed here. | | | **Start** | The actual start of an activity is displayed here. | | ||
| **End** | The end date is displayed here if the task has been finished. | | | **End** | The end date is displayed here if the task has been finished. | | ||
- | | **Disc symbol** | If changes were made, they need to be saved by clicking this symbol. | | + | | **Disc symbol** | If changes were made, they need to be saved for each line by clicking this symbol. | |
===Desired start time=== | ===Desired start time=== | ||
- | In the activities tab, a desired start time can be set for each task. This ensures, if a previous task has been completed in an early stage, the processing time of the following task is not used immediately. The left time is added to the task correspondingly, so the original scheduled processing time is used only from the desired start time. | + | In the activities tab, a desired start time can be set for each activity. This ensures that, if a previous activity has been completed in an early stage, the processing time of the following activity is not used immediately. The left time is added to the activity correspondingly, so the original scheduled processing time is used only from the desired start time. |
+ | |||
+ | ==== Special cases in the CPM calculation ==== | ||
+ | |||
+ | With version 4.6 it is possible to calculate the critical path for processes with subprocesses, multiple ends and loops. | ||
+ | |||
+ | === Processes with subprocesses === | ||
+ | |||
+ | To calculate the critical path for a process with subprocesses, the durations of the subprocesses must be available. Therefore the duration of a subprocess is calculated as the sum of the activities' durations of the subprocesses. E.G. if a subprocess consists of four activities with a duration of **one hour** each, the cumulated duration of the subprocess is **four hours**. That duration is now used to calculate the main process' critical path. | ||
+ | |||
+ | === Processes with multiple ends === | ||
+ | |||
+ | The critical path for processes with multiple ends is calculated under the assumption that there is a "positive" process end. The following example clarifies the approach. | ||
+ | |||
+ | {{ :en:support:cpm-multiple-ends-en.png |}} | ||
+ | |||
+ | The process consists of three activities with a duration of one hour each. However, the process can terminate after task 1 and task 2 respectively. Based on this assumption the process can either have a duration of **one hour**, **two hours** or **three hours**. In order to provide a consitent, process independent CPM calculation, TIM calculates the critical path based on the "positive" process end. For the process on hand the critical path is therefore calculated considering **Task 1**, **Task 2** and **Sell Product**. | ||
+ | |||
+ | === Processes with loops === | ||
+ | |||
+ | The CPM calculation for processes with loops is done in similar fassion. Instead of assuming a positive process end, the critical path is calculated while ignoring the process' loops. This is because a CPM calculation with loops is not possible. Loops can be run through arbitrarily. Therefore the critical path can only be calculated, while ignoring process looops entirely. The following example clarifies the approach. | ||
+ | |||
+ | {{ :en:support:cpm-loops-en.png |}} | ||
+ | |||
+ | Here the critical path is calculated for one process cycle. | ||