David Noy is CMO of Ginger Software, a language learning and productivity boosting software for ESL and native English speakers.
One of the biggest challenges for software developers lies in the realm of updates. From small tech startups to giants of industry, the problem of fixing bugs, updating code and design, and diversifying software functionality requires the deployment of frequent updates to the user.
F**k it, we'll do it live!
Our biggest ever edition of TNW Conference is fast approaching! Join 10,000 tech leaders this May in Amsterdam.
Wherein lies the challenge? There are many different industries and software types, and each requires developers to observe a balance between too many updates and not enough.
To best serve your user base, let’s look at a few tips for devising the best possible iteration schedule for your software:
1. Keep it regular
For the sanity of both your programmers and your users, your updates should be fairly regular. At Ginger Software, we work on multiple products, including mobile apps, Web extensions, Web apps and desktop applications. We have a regular schedule of expected updates per application type.
While the specific schedule may vary per application type, we usually update most of the applications every three to four weeks. This is done to ensure we keep up with the expectations and needs of our users, challenge our competitors, and keep up with technological developments and usability trends.
2. Find the right balance
While you should strive toward regularity when it comes to developing software iterations, you must understand that updates have an impact on the user, no matter how smooth you are trying to make it.
In general, there are two major groups among your user base, and they approach updates very differently. There are the auto-updaters, who prefer a hands-off experience and use auto-update features on as many devices as possible, and the extreme manual updaters, who prefer to read every detail of each update and manually accept changes.
While it may take longer for your latest iteration to proliferate through the devices of the latter group, connectivity and permissions issues may affect the former, as well. Therefore, you should be prepared to support legacy versions of your software.
Even if every update goes well, put yourself in your users’ shoes. If you receive an update notification every few days, you might be annoyed by it and uninstall the software altogether. If you never see any notifications, you might think the product is unstable and stop using it or even give it a bad review.
3. Understand your market and your users
Finding the right balance for your user base may seem like a daunting task, but the key to finding the perfect schedule lies in understanding your market and your users.
Every organization must adapt its development methodology to the market expectation in the relevant industry. In the enterprise market, for example, you are expected to iterate less and focus more on a stable, committed plan for improving your product step by step, which can actually lead to avoiding extreme changes that might add complexity to the deployment process.
In the mobile apps market, on the other hand, you are expected to keep up with users’ expectations to add a new feature every few weeks to keep them engaged with the app.
In all software industries, it can be very helpful to keep a close eye on how your competitors approach updates.
If you are developing a mobile game, set your benchmark based on the update frequency of top game developers. If you are working on an antivirus software, check the release rate of the most popular antivirus options in the industry.
For example, antivirus software companies deploy updates between two and 20 times per week. To be a contender in that industry, you’ll need to be prepared to keep up with that pace.
5. Adapt to your core competency
Every organization has different peak performance points. At Ginger Software, we are trying to work with agile development methodologies, allowing us to quickly adapt and respond to new needs and iterate to constantly improve our product. We have two- to three-week sprints for many of our client side products and apps, and we work in a continuous deployment mode for our website and server side products, thus ensuring smooth ongoing improvement.
Consider how many product managers, developers, designers, and quality assurance people you have to determine your ability to deliver good products. The final update deployment to the user is the last stage after a cumbersome process of beta testing and quality assurance. Do not release low-quality products just to keep up — it will backfire.
Finding the perfect iteration schedule for your software is a process filled with subtleties and data crunching. If you keep your finger on the pulse of your industry and stay engaged with the habits and needs of your user base, this information will lead you to the perfect balance.
What do you think? What does your industry do to find the perfect software iteration schedule?