As far as I’m concerned, an update should only consist of bug fixes or improvements in the software (performance, etc.), it should not include any new features. Major and minor software releases include the same fixes as updates, but they also include new features and functionality. This is what and ideal world would be for me, but the reality is not quite so black and white as you’ll soon see from my examples using my company LandlordMax Property Management Software.
Just a quick addendum for those of you who aren’t as familiar with LandlordMax Property Management Software, the way we do release versions is Year.Month. Year being how many years since the first version, and month being the month of the year. So if we were to release this month, it would be version 3.09, next month version 3.10, and so on. We do this because we offer one year of free upgrades to all releases of LandlordMax with each purchase, major and minor.
So why isn’t it so black and white? Sometimes it’s nice to add a quick little feature to an update to help our customers. We just can’t wait until the next major release, we want to offer it now! Maybe many of our customers requested it and we’d like to oblige them rather than make them wait for a full release, of even a minor release. For example, one feature we added to an update of version 2.12 (version 2.12a) was the ability to sort building units in a way that made much more sense to our customers.
Initially we had the units sorted alphanumerically, but this didn’t make sense to our customers. For example you’d get:
Whereas what you really wanted was:
You’ll notice that 2a is before 10a, which if you do an alphanumeric sort this is not the case. A small modification but it had a lot of implications to our users. This really helped them in searching for units because it makes more sense if you think about it from their perspective!
The biggest “enhancement” we did though was to greatly improve the performance of LandlordMax. Now should this be considered an update or a new release? This is debatable, and we went the view that this was an enhancement, hence an update (I’ve seen many software vendors use this as an excuse to launch a new release). But let me tell you this was no small feat, it involved many man hours!
Why didn’t we just release it as another minor update, say from version 2.12 to version 3.03, or something like that? Because if we did that, everyone who purchased the software that was eligible up to version 3.02 would not be able to receive this update. Was it significant enough for them to purchase an upgrade? Not likely, not unless they had a substantially large database. Was it worth it for them to upgrade? Yes, especially if they had larger databases. So it was worth an update but I doubt many would have paid for an upgrade, it wasn’t enough to validate the expense. But we wanted to release it sooner than later since it significantly affected our larger customers (we have many larger customers), and all our new potential customers trying out the software for the first time. Hence in this case we opted for an update.
This week we were faced with another situation. I was talking to one of our potential customers on the phone and he brought up a very good point. He had a 150 unit building, and was looking to add two more 150 unit buildings within the next few months. His issue was that he had to enter in all the tenant lease information AND all the scheduled accounting entries for those leases. Now I don’t know about you, but I could sure appreciate his argument of not wanting to enter in the same 450 similar pieces of information twice! He did suggest that he could have one of his clerks do it, but that would take time away from their other tasks, and I completely agree. This lead to the discussion of having the software automatically generate the scheduled accounting entry for each new lease when it’s initially saved for the first time. This is a great feature, one that we had planned on implementing before but that had been pushed back due to resource limitations. We only have so many resources and we try our best to implement the most sought after features and requests. In any case, I completely agreed with this gentleman, this is a feature that should be in the software sooner than later. After hearing his plight, I decided we could no longer wait for this feature, we needed to add it now rather than later.
Now here’s the dilemma, we’re also nearing another update release of version 2.12, version 2.12f. This update is mainly another performance update on the data entry screens. What we’ve done is cached all the combo box (drop down menu) items to avoid a lot of unnecessary database calls. If you have a database like the sample database I’m creating for the showcase video, this can result in a lot of extra processing that’s not really necessary. For example the tenant combobox can be easily cached, especially if you consider how often the tenant list changes versus how often we render that combobox (almost every data entry screen). This provided a significant performance increase to data screens with large databases (in my test case, this was 2659 tenants that didn’t need to be extracted from the database each time! We’ve done the same with all the major comboboxes and it made a noticeable change. The improvement went from 2-3 seconds to a virtually instantaneous display of all the data entry screens, with the exception of when there is an update to be made. If you’ve studied Graphical User Inteface (GUI) disciplines, you know that anything above 2 seconds agitates the users and makes them think the software is not responding. A significant improvement!
As I was saying, the dilemma is that if we’re about to release an update anyways in the near future, should we just tack on this new lease feature? It’s easy to say yes, but you have to remember that each new feature does cost us money to implement. And if we add that one feature, why not another one that’s really beneficial. For example we could also add the ability to convert suggested accounting entries that are late as accounting entries with no amount paid and no date paid (this is beneficial because if after a certain number of days your tenants haven’t paid you, you want to quickly take all the suggested accounting entries and mark them as unpaid. If you have a lot of these, it can take quite some time to manually edit the amounts and dates one by one)? What about adding a few new reports? This could be considered a minor upgrade. The dilemma is that, assuming we release next month, it will have been 10 months since our last release (not counting updates). Is a few new features in a year enough to warrant an upgrade? Will enough people whose license have expired purchase an upgrade? I don’t know, but I’d prefer to really make a convincing argument for an upgrade by giving them much more value than the cost of the upgrade! That’s just me.
So what are we to do? Do we give away more new feature for free as an update? Do we release a minor release after 10 months with only a few new features and performance enhancements? Will it be worth it for enough customers to purchase the upgrade and benefit from it? I don’t think either of these options is really any good… So the answer is I don’t know.
What we did decide though is that we’ll release a major update rather than a minor update very soon. Rather than just working on the 2.12 branch and adding the features there, we’ll release all the new features we’ve already implemented and tested for version 3.xx. We’d of course like to get all the new features we planned for that release, but instead what we’ll do is cut it a bit short and release it with everything we’ve already implemented (which is no small list). We’re going to do this because I believe there’s enough new value already implemented that most of our existing customers whose license is going to expire with the new major release will find more than enough value in it to buy the upgrade. By the way, just as a quick plug, remember that upgrades are discounted at 50% of the current price. Anyways, I know if it was me I’d prefer to have all the new features we’ve already implemented as part of a major upgrade, and there’s some great new features and benefits in there! If everything goes according to plan, we’re hoping to have the next major release available something in October as version 3.10! I’m not promising anything, but that’s what we’re currently anticipating.