Tuesday, February 10, 2009

Senior Developers Team Productivity X4 (from MS Research Paper)

There is a very interesting MS Research paper about test driven development (TDD). It is one of the only real study about it that I know of. The paper conclusions from experiments over 4 TDD teams vs 4 traditional teams is:
"TDD seems to be applicable in various domains and can significantly reduce the defect density of developed software without significant productivity reduction of the development team"
Their data gives also other interesting results:
  • An experienced team (5 people over 10 years + 2 people under 5 years) : 155KLOC C# code (+60 test).
  • A junior team (3 people under 10 years + 6 people under 5 years): 41 KLOC Java code (+28 test).
If you do the ratio of KLOC/man month, you have the following graph:

I know this is very far from scientific evidence and more like astrology, but still, the most conservative ratio for senior/junior is 4.23!


  1. number of lines of code should never be used to justify quality or functional output

  2. Over time, any person that minimally wants to improve will perform better. Not to mention an eager programmer that likes to learn and maintains that attitude over the years.

  3. I'd agree with the first comment, I'm not sure about the improvement in lines of code, that doesn't really justify much. It is interesting to see how people learn how to use the language and it's features better, hence depending on the problem you might actually see that experienced coders need to write less code. Another more intresting measure for me is the tests the code has. Are there more tests, better tests or more coverage with experience?

  4. As mentioned by previous posters. LOC as a measure of quality is just stupid.

    You might argue the relation is actually inverse. The programmers who program their own MVC / IOC frameworks will have many many more bugs, than those who would just use an existing framework.

  5. While it is true that LOC is not in itself a good measure of quality or productivity (just duplicate all the code and you will have 2x LOC), I am amused at the comments.

    A senior dev produce more LOC, more LOC means bad quality => A senior dev produce bad quality?

    I think in the context of the studies you can trust the senior team to do as many useful lines of code as the junior team.

    And therefore all complaints about LOC measurements being stupid are wrong.

  6. to the above.

    and who are you to say that it is not stupid?