Releasing Updates to the Jungle Disk Backup Software
The Jungle Disk desktop software is at the core of our backup product, thousands of our customers rely on it to backup their business’ critical data. To ensure that our customer can continue to rely on our software, we need to periodically release updates to that software.
Updates come in a variety of categories:
- Security - We make updates to our code and/or 3rd party libraries to improve security
- Compatibility - We make updates to our code to support the latest version of operating systems
- Performance/Optimization - We make updates to our code to improve the overall performance of our software
- New Features - We introduce new features and/or functionality into the software
- Cosmetic - We make changes to the user interface to improve overall usability of the product
Software Update Testing Process
For me, releasing updates to our software is by far the most exciting part of being a developer on the Jungle Disk R&D team. So, today, I wanted to highlight a portion of the testing process our teams undertake before releasing updates to our core desktop software; we usually just call this a “testing night.” In this “phase” of testing, members of our development and support teams will stay late, order food, and work through numerous scenarios and use cases with the new software. Typically these scenarios will focus on features or use cases that have be changed in some way during the development of the new version of the Jungle Disk client. Here’s what a normal “testing night” looks like:
- Distribute “builds” of the new software to those staying late to test.
- Testers begin installing and configuring the new software.
- Testers may be setting up virtual machines to test the software on multiple operating systems.
- Testers begin going through sets of instructions on various features and functionality and recording their results.
- If any issues are found, developers will work with testers to reproduce the issue and document their steps.
- Once all specific tests have been completed, testers will continue using the software as they wish, often trying to force errors or other unexpected behavior.
This last phase of testing usually goes on beyond just one night. Many other members of the Jungle Disk team will install the new software and begin using it on their personal computers. Should any issues or unexpected behavior be found, they are reported directly to the development team for additional testing and debugging.
While this is a very manual process, I really enjoy digging in with our support team to push the new version of the Jungle Disk software to its limits. I believe that everyone who participates in one of these testing nights walks away with a better understanding of how our software works, why we’re making the changes we’re making, and how these changes will play out for our customers.
Two Different Stages of New Software Releases
After we have completed the development and testing process, all that remains is to make the new version of the software available to our customers. We typically release new versions of the software in two different stages: a “soft” release, and an “auto-update” release.
In the first stage, we will make the new software available to download and install manually. A customer wishing to use the latest version would need to visit our downloads page and manually install the software. This gives our teams the ability to get the new version into customers’ hands and observe how it’s performing before enabling an “auto-update” release.
For the second stage of an update, we enable our software’s “auto-update” capability. Once a day, existing installations of Jungle Disk software will automatically “check-in” with our backend servers to check if a newer version of the software is available. If a new version is available, the user will be prompted to download an install the new version. Within 1-2 weeks of enabling auto-update, upwards of 50 percent of our install-base will have updated to the latest version available.
Releasing quality, reliable, stable software is priority number one for our Research and Development team. Including this layer of manual testing into our release processes is invaluable to making sure that we keep that priority in focus.