Why are apps like Fairemail, Voyager, etc. updated so often? Why don’t they collect the changes and release them once a month or something like that?
It’s interesting that every time I open Voyager I see an update warnin at the bottom. Is that really required?
Because someone in the dev team had the time to hook up their continuous integration scripts with Play Store publishing API, to the despair and jealosity of dev teams of all other apps.
This is how software should be managed. You make a change to your software, push one extra button, and in one hour all your users receive it.
Non-technical explanation: because they can.
Financial explanation: Because it’s cheaper to have all your users as involuntary testers, than to actually ensure app quality in-house.
Continuous deployment pipelines usually have lots of automatic testing ensuring nothing breaks for the user.
In case of open-source projects like Fairemail, your budget is very likely zero or in negatives. Very often it’s one or few developers who make the app basically for their own daily use, and publish it on a ‘use at your own risk’ basis for everyone else. So yeah, if you use any open-source software, please do some testing work if you want it to improve.
It’s agile. Every change is small and less likely to break the overall experience. Putting into hands of users quickly means bugs, especially breaking bugs are found quickly and easily backed out or fixed. If you wait a month, then when a bug is reported it’s much harder to track down and fix. Plus your users suffer until your next release.
Big releases are harder to test and debug issues.
If your release contains a single change and something goes wrong, you’ve got a pretty good idea of where the problem is before you even start to look.
If the friction of creating a release is low (with automated tooling) and updating is (typically) automatic there’s not really a good reason to not release as often as possible in most cases.
What would be best? Dealing with a bug for 1 month waiting a monthly update, or dealing with a bug 2 days waiting a daily update?
If you’re doing a daily release with a net increase of bugs, you’re gonna stop doing daily releases real soon.
The real answee is CI/CD DevOps pipelines.
What this means is that, when I as a developer push changes to my dev
branch in my code repository, a bunch of scripts and stuff automatically test my code for a bunch of things, and if all of those tests pass, another script is run that pushes the code to my main
branch and then compiles my app from the main
code, and finally the last script pushes the compiled “artefact” out to the public (.exe’s out on a webpage to download, a linux package gets pushed out to repos and to Flathub, Android apps get pushed to the Play and/or F-Droid stores, Apple stuff gets sent to an Apple computer and compiled and uploaded to the App store, etc.)
It streamlines the development process and makes life on the developer so, so much easier while making sure bugs also get fixed for users much quicker and the app stays more stable.