LandlordMax Size and Complexity
There are many ways to measure the size and complexity of a software package, and all of them have their pros and cons. Although not entirely accurate, lines of code is one such standard metric, it allows you to see how large the program is growing. For those of you not familiar with lines of code, this is the count of the total lines of written computer language in a software application.
Of course I understand it’s not accurate, every developer writes code differently. For example one person could write a piece of code in 10 lines and another the same piece of code in 100 lines. Maybe one developer’s code is brutal to read and the other easy. Another’s is convoluted, overly complex, or is overly written because of bad architecture (or vice versa). For you non-developers, think of it this way, how many lines does it take you to tell a story? For Tolstoy (War and Peace anyone?), probably a lot. For another writer maybe it only takes a small fraction, a few pages.
In any case, it’s a good enough metric for us because we really push high quality code that is succinct, maintainable, and standard (for lack of better term). We prefer to refactor when the architecture is no longer sufficient. We don’t like to leave loose ends or to keep a larger code base (the code base is the total amount of programming code to make LandlordMax possible).
That being said, here’s LandlordMax’s lines of code growth curve over the last 4 major releases (omitting the minor updates) :
I have to admit that I myself was quite surprised at the “linearnous” of the graph (how straight it is). I suspected it was going to be much less linear, with “jumps”. But it makes sense if you think about, as we release each new version the code base gets more and more complex (there’s simply just more code) so it takes a little longer to build up on it. This is especially true when we need to make architectural refactorings that result in significant code changes with little or no additional lines of code added (sometimes the lines of code even get reduced). We had at least two of these significant architectural changes that I can quickly think of in the last major release: we changed the database engine and implemented table column sorting throughout.
Anyways, it’s just interesting to see how much LandlordMax has grown over time. The total lines of code may seem small for some developers/projects, but I think that’s because we spend a fairly larger amount of time on the architectural aspects of the software. I’d rather spend X amount of time now so that we save a larger amount of time adding new features today and tomorrow. Otherwise you can quickly and easily get caught always writing quick fixes and patches for one more feature after another until the system becomes completely unmaintainable. Not to mention that adding each new feature in the interim in such a system becomes exponentially more expensive!
If you’re interested in measuring your projects lines of code and you use cvs for your source code repository, there’s a great open source framework called Cvsplot which can produce some amazingly detailed graphs and text data file reports.
· September 26th, 2006 · 12:51 pm · Permalink
[…] I just took a look at all the updates we released for LandlordMax Property Management Software version 2.12, which is now at version 2.12e, and it was quite lengthy as you can clearly see from this list of new features and fixes for each update. What’s the best metric to show how much effort was involved? That’s very debatable. One could argue LOC (Lines of Code) but that’s very skewed. […]
· December 11th, 2006 · 12:55 am · Permalink
[…] Yes, I know lines of code (LOC) is not a very good metric for measuring complexity of software, growth, etc., however it’s still the only real metric I have easily available right now. That being said, since I last posted about this in June comparing the differences in lines of code between the four major releases then, I figured it was only appropriate that I do the same again for this release, our 5th major release of LandlordMax (version 3.11a). […]