Day 51 – Fractional Resource Plan

The Problem

I like being systematic and scientific about things where I can. Today I had to figure out what could be done to add bandwidth at work so we can take on more projects.

Let me paint a hypothetical that has slightly easier numbers than the real-world scenario I was working through.

Let’s say:

  • I have no spare bandwidth across my existing employees
  • I have 100 days of work to do
  • Contractors are going to take about 1.5 times as long due to lack of experience with the systems to complete tasks
  • Contractors need oversight, and for every day of original effort I will need to leave an employee on the work for 1/4 day to supervise and explain things

How hard can this be?

Trial-and-Error

I just needed a number, so let’s start from the top:

  • 100 days of work done with contractors will take 150 days
  • 100 days of work will leave 25 days in-house for oversight

Done! … Oh, wait… the reason I was doing this was because I had no in-house resources left, so I need to contract out 25 days of already planned in-house work to free up in-house resources for oversight:

  • 25 days of work done with contractors will take 37.5 days
  • 25 days of work will leave 6.25 days in-house for oversight

Ah, but again, the same problem… still… 6.25 days is almost negligible, I think one more iteration and we’ll have this worked out:

  • 6.25 days of work done with contractors will take 9.375 days
  • 6.25 days of work will leave 1.5625 days in-house for oversight

And let’s just call that a rounding error. So the total then becomes:

  • Contract resource: 150 + 37.5 + 9.375 = about 197 days
  • In-house oversight: 25 + 6.25 + 1.5625 = about 33 days

It looks like we end up with an endless series of ever-more-fractional contract resources that we need to hire, but luckily it converges quickly. But I’d rather not work this out step-by-step in the future.

Mathematics to the Rescue

I decided that working out the formulas to get straight to the totals based on variable parameters for oversight and the contractor-multiplier would give me a handy tool to assess ballpark figures in the future, so here goes.

I got out some of my old University textbooks to get some inspiration for the right approach to work this out. Luckily my instinct to go straight to my number theory books quickly delivered a winning strategy.

Definitions

To make the following formulas easier to work with, I use the following definitions throughout:

  • R = the number of in-house effort days to fill with contractors (100 in the example above)
  • M = the effort-multiplier when using external contractors, the more experienced and knowledgeable the contractors are in the systems they will work on, the closer this number approaches 1.0 (1.5 in the example above)
  • S = the supervision-multiplier for the amount of in-house effort that stays in-house as oversight (0.25 in the example above)
  • O = the cumulative total number of in-house oversight days needed to supervise the contractors we need
  • C = the cumulative total number of contractor days needed to resource the extra work

Total Oversight “O”

The formula for “O” is slightly easier to derive, so I’ll start there. First, I’ll quickly recap the example I worked through before:

  • O = 25 + 6.25 + 1.5625 + …
  • O = 100*0.25 + 25*0.25 + 6.25*0.25 + …
  • O = (R*S) + (R*S*S) + (R*S*S*S) + …

To get a completely accurate result I would have to keep going on indefinitely adding further ever smaller pieces of employees. (I hope HR doesn’t find out about my plans to slice employees into ever more fractional parts!)

With a bit of trickery though I can collapse that infinite formula into a much more compact version:

  1. O = (R*S) + (R*S*S) + (R*S*S*S) + …
  2. O = (R*S) + S * ((R*S) + (R*S*S) + (R*S*S*S) + …)
  3. O = (R*S) + S * (O)
  4. O – S*O = (R * S)
  5. O * (1 – S) = (R * S)
  6. O = (R * S) / (1 – S)

Step 1 is our original formula. In step 2 I isolate the first term and split out one “*S” from the remainder of the infinite series. The piece between brackets at the end of step 2 looks very familiar… it’s exactly what “O” is defined to be in step 1! In step 4 I subtract “S*O” from both sides of the equation. In step 5 I factor out the “O” on the left hand side. And a quick division takes us to step 6 with a three-operation formula for the oversight component.

Now, note that the division by “(1 – S)” from step 5 to 6 is obviously only valid if S is less than 1. But then, if your supervision factor is 1 or above there is really no point trying to bring contractors in. I’m sure we’ve all worked with people like that.

Unless you are in the enviable position of having contractors available that are so good they do not need supervision, then S will also never be too close to 0.

My gut feel at the moment is that realistic values for S probably are somewhere in the range from 0.2 to 0.5; where it falls exactly depends on the complexity of the work you want to get done, and how much of the work you are prepared to entrust to contractors.

Using this formula on my original hypothetical suggests that in-house oversight would actually be: O = (100 * 0.25) / (1 – 0.25) = 33.3333…

Total Contract Resource “C”

After explaining the derivation of “O”, doing “C” is actually a little easier. Going back to the example again for a recap:

  • C = 150 + 37.5 + 9.375 + …
  • C = 100*1.5 + 25*1.5 + 6.25*1.5 + …
  • C = (R*M) + (R*S*M) + (R*S*S*M) + …

Solving this infinite series of fractional contractors follows a similar pattern to my earlier attempt:

  1. C = (R*M) + (R*S*M) + (R*S*S*M) + …
  2. C = (R*M) * (1 + S + S*S + …)
  3. C = (R*M) * (1 + S*(1 + S + S*S + …))
  4. C = (R * M) + (R*M)*S*(1 + S + S*S + …))
  5. C = (R * M) + S * (R*M) * (1 + S + S*S + …)
  6. C = (R * M) + S * C
  7. C – S*C = (R * M)
  8. C * (1 – S) = (R * M)
  9. C = (R * M) / (1 – S)

I won’t explain the steps, because the tricks used are pretty much the same as in the previous formula.

The bounds on S were already explained above. M should never normally be less than 1, unless you make a habit of hiring the wrong people. How high M could get depends on how much you are prepared to spend on a contractor.

Once again, if you are in the enviable position of having a contractor that doesn’t need supervision because they are already familiar with your systems due to working with them before, then M could theoretically be 1.

If you are solving this problem for S = 0 and M = 1 though, I suggest that you just hire the contractor already because they are probably practically working for you anyway… and a salary is going to cost you far less than contract rates.

Realistically I’d say M is probably somewhere between 1.25 and 2. With values greater than 2, I’d suggest spending a little more and getting a better contractor instead.

Using this formula on my original hypothetical suggests that the required contract resource would actually be: C = (100 * 1.5) / (1 – 0.25) = 200.

Summary

To summarise, assuming you have no employees available at all in-house, then you can calculate the amount of contract resource and oversight you are going to need by picking:

  • R = number of days an employee could do it in
  • M = effort-multiplier for contractors (probably between 1.25 and 2)
  • S = in-house supervision-multiplier (probably between 0.2 and 0.5)

Then the total amount of in-house resource you will spend is: O = (R * S) / (1 – S).
And the total amount of contract resource needed is: C = (R * M) / (1 – S).

These are obviously fairly idealised formulas, but by playing around with the values of M and S around where you think they should be will give a pretty good sense of what the range of possible real-world outcomes might look like.

And if you have some amount of employee resource available, you’ll probably always want to use that first and subtract it from R before doing anything else.