Software releases generally come in two flavors, updates and upgrades. Updates are small changes where the version number barely changes and mostly consists of bug fixes, enhancements (perhaps performance), and possibly some new small features. Upgrades are generally considered major releases and often the first number of the version changes. These include major enhancements and lots of new features. Now everyone knows a lot of work goes into major new upgrades, there’s no doubt when you look at the list of new features. But what about updates? How much effort is involved in releasing updates? More than most people realize!
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.
To give you a quick idea of why that’s skewed, let’s take a look at some of the huge performance enhancements we did for version 2.12c. Between version 2.12b and version 2.12c, as you can see from the graph below, we added about 250 new lines of code. Very few. But if you look at the effort, it took us many man hours to accomplish, probably more than all the other updates combined! So why so few lines of code? Because we removed as much if not more software code than we added. On top of this, a lot of the time we made modifications to existing code (for example optimizing the database queries), where we didn’t add or remove any code but just changed it. Version 2.12c was by far the update that required the most effort but this isn’t accurately reflected in the lines of code…
I can already see the next question, what about just measuring the total amount of time taken to implement each new update rather than using lines of code as a metric? That would be great except that we don’t really keep track here at LandlordMax of what we do in that kind of detail. I don’t know myself if I’ve spent two hours on this, then three hours on that. I know the total amount of time I spend working on LandlordMax, but I don’t know exactly on what. And to be honest, I don’t want to subject myself to this level of time tracking (even daily tracking) just to have metrics, it’s a waste of time and money. I’d rather spend that time adding more features to the software. I’m not billing a client, I’m trying to produce a software product, therefore the details of where the time is spent is not as important as building a quality product. With that being said, I do have a good idea of how much time each update took, a good guess-estimate. And I can tell you that version 2.12c was the largest by far.
In any case, I can only use the best metric I have in hand since I don’t have enough details to graph the time spent per update. Although this is not entirely accurate it’s the best I can do. That being said, it’s interesting to note that between the initial release of version 2.12 and the final release of version 2.12 (version 2.12e), we’ve added over 2000 lines of code. Assuming 40 lines per page, that’s 50 pages of new code. And remember, that’s not counting how much code has been modified, how much code has been replaced, etc.
So to answer the original question, how much effort is there in each software update? A lot! Based on the previous releases using only the lines of code as a metric, I can assure you that if we based it on time it would be a much larger percentage, we’ve added 10% as much code as a brand new full version upgrade release to the updates!