Rosenberg’s Law Rephrased

The publishing of Scott Rosenberg’s “Dreaming in Code” and the PR circle around it, has prompted Jonathan Rentzsch writing a post which criticizes one of Rosenberg’s main tenants — that ‘Programmers like to code’ — and suggests instead that ‘Programmers like problem solving’. Rentzsch goes on to claim that programmers’ urge to rewrite problematic legacy code bases is the desire to understand rather than a desire to code.

I agree with Rentzsch completely on this point, however I do believe that Rosenberg, having come from the wrong direction, has hit a point with “Rosenberg’s Law”:
if you are doing something that has already been done — then you have a frame of reference to estimate how long it is going to take, and to guess how many people are going to be required”

I’d like to rephrase this in Rentzsch’s “problem solving” terms, and paraphrase “Rosenberg’s Law” as:

“A relationship between the unfamiliarity of a problem to the difficulty of estimating the required resources to solve it.”

Which is not surprising in hindsight, as it is a relationship between one type of uncertainty to another…