The Effects of Rework

Posted

Having solved yesterday’s bug, we can get back to looking at the effect of re-work on throughput. As a reminder, our workflow looks like this:

+----------------+    +-----------+    +------------+    +------------+    +---------+
| task generator | -> | dev queue | -> | developers | -> | test queue | -> | testers |
+----------------+    +-----------+    +------------+    +------------+    +---------+
                            ^                                                   |
                            |                                                   |
                            +---------------------------------------------------+

The two parameters that affect re-work are p_rework_needed, which is the probability that a tester is going to send a task back for more work, and p_rework_chosen, which is the probability that a developer will choose something from her re-work queue rather than starting fresh work when both are available. The extreme cases are:

Finally, this version of the simulation always sends tasks back to the developers who originally worked on them rather than allowing the first available developer to re-do someone else’s work.

Final States

The figure below shows the number of tasks in each of the five possible states at the end of the simulation as a function of p_rework_needed and p_rework_chosen:

final task states

As expected, lots of tasks are in the complete state when there is never any need for re-work, while none are when re-work is always needed. This finding may seem obvious, but this simple check uncovered a couple of bugs in the simulation.

A more interesting finding is that how developers choose tasks doesn’t seem to have much effect on how many they get done: while there is some variation, the bars stay more or less the same height when we look at each row.

We can reach the same conclusion by looking at the number of times tasks were developed and re-worked. The sizes of the circles in the plots below reflect these counts:

development count
re-work count

Again, the probability of needing re-work has an obvious impact, while the probability of choosing new work vs. re-work doesn’t seem to.