Taddeini's Law

I was talking with my friend Andre Taddeini recently about the state of the industry and he made an interesting observation that the amount of bad code being written might be increasing in proportion to the demand for programmers. I thought it was interesting enough to talk about here.

The reasoning is that, as the demand for programmers goes up, the aggregate quality of developers goes down because the supply of capable programmers is somewhat upwardly inflexible due to the amount of effort that goes into being expert. Since the supply of expert developers can't keep up with a rapid increase in demand, the expected quality of a hire is necessarily lowered. As the overall quality of programmers is lowered in this fashion, the corresponding code that is written should lower in quality as well.

There is an implied relation between experience and quality, but it could be equally true that the acceptable quality of inexperienced developers would also lower simply through demand. Either way, I accept that experience doesn't necessitate skill, I'm only talking in the aggregate. The other assumption present is that we are holding the quality of code constant over time. This might not be true if constant improvement in frameworks and tools lessen the need for programming skill.  There is certainly some truth to that assertion, but, by observation, the rate of tooling and framework support increases only offsets the increased expectations of application complexity. Another assumption present is that the demand for developers overall is roughly equivalent to the demand for expert developers.

So Taddeini's Law is

Q = E / D

Where Q is the quality of code produced, E is the population of experienced developers and D is the demand for experienced developers.

It's really a pretty trivial observation and I'm probably aggrandizing it by calling it a law, but I think it has some interesting implications for the state of our industry. If it's accepted as true, the implication is that the current increase in demand for developers is creating an influx of bad code for our industry to grapple with in years to come. Did the same thing happen during the dotcom boom? As inexpertly written code rots, will organizations be paying an increased "maintenance tax" in the future? Should larger organizations plan for this in some way?  And finally, is there something we can do lessen the impact of under-qualified people in the industry overall?

Comments (6) -

  • Art
    Thinking about this I started wondering about the relationship to Brooks's Law and the golden triangle.  Brooks says adding manpower to a late project makes it later.  Taddeini's law says adding manpower slips quality rather than schedule?  Perhaps.  Might to do more research in a micro brew research facility.
  • Art
    Might need to do ...
  • It's unfortunate that you opted to take this tack in your blog.

    While it is true that there are varying degrees of skill within the industry, I do not see the benefit of denigrating others--well, other than trying to make yourself feel good.

    If you have an interest in doing a public service, you might consider presenting your idea of "quality" so that it could be debated.  

    Based on this blog, all I can conclude is you have a remarkable high opinion of yourself and a remarkably low opinion of an "other" class of developers.
  • Brooks' law is probably more temporal. So adding manpower doesn't make a project later if you do it at the start, only if you do it midstream, or close to your deadline. Taddeini's law doesn't say anything specifically about adding manpower except where it affects the overall supply of developers.  For example, if you needed to hire 20 devs in a market where there were really only 10 good people available.  I think there might be something to the idea that adding more manpower affects quality though.  It's definitely about time for a developer happy hour, I've been chatting with Ryan about it and we'll keep you in the loop.
  • Hmm, I can see how you would read this as pompous Shane, but it really isn't intended that way.  You've seen my code, so you certainly know I'm not anything special Smile and I certainly don't consider myself to be.

    Mostly the discussion started when we were talking about the dotcom boom and how similar it is to the situation today as it affects the job market for devs. Back then, just about anybody who could spell Access was applying for advanced developer jobs and often getting them because there simply weren't enough qualified people to go around.  I've seen some evidence that this is happening again lately.

    I'll leave it for everyone to figure out where they fall on the quality scale, but I think the observation is true.  It really probably holds true for any industry (e.g. if there is an overall shortage of machinists, the quality of machinist work goes down).
  • Sure, the observation may be true.

    I just don't find it a particularly interesting line of thought.

    I get more concerned that experienced developers are blindly pursuing trends than the talent pool is being degraded by demand.  The under-qualified are not shaping the future of software.

    In a small shop, it is probably best to have a master.  In a large shop, you architect your development to dole out easily consumable modules to less experienced developers.

    Everyone benefits.  That's just plain good.

    I just hope, from you, and your blog, that the more difficult, intractable problems might be discussed.

    I hope we could agree that if software fails it is not because of the "under-qualified" that are brought in to do a load of trivial tasks.

Add comment