According to studies in the subject, the average software developer can produce between 325 LOC and 750 LOC per month. LOC implies of course Lines Of Code. If we are to be kind, and round upwards, this becomes 563 LOC per month on average. There are 22 working days per month, hence 563 divided by 22 becomes 25.5 LOC per day on average.
Hence, if you’re about to start a software project, and a qualified estimate of its complexity is 40KLOC, implying 40,000 LOC, this would require a single software developer 40,000 divided by 25 days to complete – Which becomes 1,600 days, divided by 22 equals 72 man months, divided by 12 becomes roughly 6 years.
At my previous company we had a fairly large codebase. The total count was 246KLOC of C#. The codebase was roughly 3 years old, and on average there had been roughly 8 developers working on it – Sometimes more, sometimes less.
If you multiply 8 developers by a productivity of 25 LOC per day, and you multiply this number by 22 working days per month, and you multiply this number by 12 months per year, and then again this number by 3 years – You end up with 158,400 LOC. The last number is the number of LOC these 8 developers should have been able to deliver in 3 years. Hence, 246,000 LOC is considered to be within the range of what they should have been able to produce, accommodating for standard variations.
Lines of Code might be a terrible way to measure productivity. Bill Gates once said that measuring developer productivity according to LOC, is the equivalent of measuring an airplane’s quality according to weight – But unfortunately, it’s our only way to measure these things, and it’s also highly accurate once you break down the numbers, and apply them in your own organisation. Of course, the really brilliant developers removes 25 LOC per day, and still keeps the existing functionality – But that’s another discussion.
Do me a favour and look at your current codebase, and count its LOC. Then look at your development department’s size, and how many years your developers have been working on the codebase. If the numbers don’t add up, you should be asking somebody in your organisation some difficult questions. The paradox is that “that somebody” is often the leader of the organisation, and not individual developers, and not even the head of the development department – Because productivity sprinkles down from the top. And if you cannot facilitate for your developers’ productivity to increase somehow, that’s your problem!