My blog has been focusing too much on politics and current events lately, so I've decided to change things up, I'm going to talk about work.
In the field of software engineering, one of the ways/metrics to measure productivity is counting the number of lines of code in a project. I don't know how great of a measurement this really is, but it is an interesting statistic anyway. In either case, today at work we ran a program that counted the number of lines of code we had written.
The last time we ran this was in April 2003, and we had about 250,000 lines of code (LOC). As of today we have about 330,000 LOC. So in a period of about 20 months, an additional 80,000 LOC were added.
Looking at the rate of code production was also interesting. I calculated that by looking at the average LOC per month we generated.
LOC/month
Jan 2002 - Jan 2003: 6,700 LOC/month
Jan 2003 - Jan 2004: 4,200 LOC/month
Jan 2004 - Jan 2005: 3,400 LOC/month
*Figures are rounded to the nearest hundred.
Average number of full-time equivalent programmers
Jan 2002 - Jan 2003: 4.17
Jan 2003 - Jan 2004: 4.33
Jan 2004 - Jan 2005: 2.83
*Figures are rounded to the nearest tenth.
There are a number of factors that I think affects the LOC/month numbers. In the earlier years, the system was very new, so many new features and modules were still being added, which means lots of new code. As the project matures, maintaining code becomes more of an issue, so the rate of new LOC starts decreasing. In addition, we rewrite certain pieces of code that are deemed to be poorly written, or very slow, so that would decrease our rate as well. A theory I have is also that as our team learned how to program better, our code becomes more concise and reusable, which results in less LOC as well. I also believe that as the system gets bigger and more complex, it becomes harder to add new features in.
The most obvious factor in LOC production is human resources, as software depends greatly on the people who write it. As the years progressed, the number of people coding has decreased. People's programming experience is also a factor. In the earlier years we had people generally work longer for us, which means they have more experience. Since then, the people at work generally have stayed for shorter amounts of time. So, that definitely affects how much code gets written. In 2001-2002, it was quite common for a person to stay for 8 months to 1 year. For 2004-2005, a person would stay for 4 months. You're probably thinking, my goodness, you guys have high turnover at your work place. Well, yes and no ... we hire primarily co-op students, so they work for 4 to 8 months at a time.
In either case 330,000 lines of code is still quite the achievement. To put this achievement into perspective consider this. When I took SENG 365, the project was to develop an information system for a catering business. Our programming team consisted of two senior programmers (
Loren and I), two juniour programmers, and two testers. In four months, we built the information system from scratch, and the thing was about 22,000 lines of code. So, the system at my work is 15 times bigger than this school project, and way more complex.
Anyways, the march towards 500,000 lines of code continues...