Even big companies like GitHub have difficulty implementing a correct “update” feature (2 years work in progress).
I believe I have never seen a proper implementation of a software’s online and auto-update / upgrade feature. They all have one or more of the following problems:
The reason for this
I’ve come to believe the primary reason for this is updating the software is an afterthought. Naturally, it would contain one or more of those flaws.
A first class citizen
What if, for a moment, we all decided to identify our software update process as a first class citizen - an integral part of our application: to be clear, well documented, simple, private, possibly offline, interruptible, and fail-proof?
With Jidoteki, that has been part of our plan from the start. We’ve successfully done that with our offline update process, and today we’re presenting our approach for online updates as well.
Our approach
Looking at the screenshot above, we see three things:
This allows the end-user to control if and when they want to check for updates. There’s no bouncing number or nags which notify them of pending updates.
In the above screenshot, we note the following:
The end-user can decide on their own if they want to use the online update process, or if they prefer to manually download the updates and apply them at their own convenience. It also allows the end-user to review the changes before they are applied.
Clicking the “Update now” button does not send any private data to the update server. It should be a simple HTTPS GET request to fetch a list of available updates. It is acceptable to modify the URL based on the version/platform/architecture of the software (ex: /linux/x86_64/6.0/).
In the screenshot above, we highlight:
Before and after
This software update process is sane, and represents a real implementation which gives privacy and control back to the end-user. Compared with existing software’s update process, this requires merely a few changes to the UI and functionality, and could greatly improve the experience of keeping software up-to-date.
We strongly encourage people to turn off auto-updating by default. I understand the rationale of thinking “if it’s off by default, nobody will ever update”. Well, if your update process can correctly handle outdated versions, then that’s not actually a problem. It also becomes much easier for end-users to perform updates when the “Update” button is prominently displayed in the UI.
Soon to be open sourced
We couldn’t tell you all of this without making the source code available as well. For the moment we’ve only implemented this update feature in Jidometa, but we’ll soon be adding it to the open source Jidoteki Admin API & Dashboard. Stay tuned for that.
As always, our customers are first to get these new features and improvements. If you’re interesting in shipping on-premises software, and want to provide the absolute best and most professional experience to your enterprise customers, feel free to contact us so we can discuss your requirements.