While we have all come to expect regular software updates from products we frequently use, rarely do we stop to think that the new features that seem to magically arrive, on schedule, every few months, are the results of a well thought-out strategy and months of behind-the-scenes work.
Traditionally, companies aim to launch at least one or two major software releases per year and, in some cases, must do so in the framework of pre-specified launch dates. However, there is another approach to product development that is gaining popularity — the Agile and Scrum methods. This methodology states that instead of major bi-annual releases, companies should engage in smaller development cycles that result in new releases every few weeks. The advantage this offers is providing more flexible time tables that contribute to a more stabilised product by addressing challenges and issues in real time. At SysAid, we have already begun the shift to this model, unveiling a major software release every six months, in addition to minor releases on a more frequent basis.
The goal of a new release is clear — to produce a superior, yet stable, solution that within days will reach hundreds of customers, in weeks, thousands, and in months, tens of thousands. How do we do it and what factors must we consider when rolling out the next-generation of smarter, better, and faster products?
The first critical factor that must be taken into account is ensuring that the new release aligns with the overall company vision. The second factor is the customers — the loyal users who rely on our product daily and have first-hand knowledge about the features they like as well as what needs improvement. We must also consider customer requests for personalised features.
The third factor that must be taken into consideration is advances in technology and updates from OEMs and third party software tools. The new release must not only be able to support all of these updates, but must also allow them to be easily integrated into the product once it is in the customers' hands.
The fourth factor is security. As more industry security threats and vulnerabilities are discovered each day, we must ensure that protection against high-priority threats is incorporated into each new release. The fifth factor is performance and optimisation. Companies constantly strive to produce new products that achieve superior performance and work faster than previous versions in order to meet rising customer expectations.
The final critical factor of any new release is software bugs.
Addressing all of these factors in order to achieve the right formula for change can be quite challenging, but can be simplified through the adoption of a systematic process.
When introducing new software features, modules, or enhancements, one of the most effective ways to keep track of ideas is to compile a wish list. With the generation and influx of thousands of new ideas (at SysAid we receive more than 20 every day) the wish list is a great way to organise all suggestions in a qualitative manner. Once we have listed the items, we categorise and prioritise them, and of course add any new suggestions to the ongoing list as they come in. Categories include core feature, performance, new module, integration technology, etc.
Once we have identified the top features of interest in each category, we gather both internal and external feedback.
Key personnel from customer relations, R&D, Quality Assurance, as well as the core product team are brought together to discuss the potential new features in depth. New features will be evaluated on a number of levels, including not only new benefits, but also ensuring that the proposed additions are compatible with previous versions and that the upgrade will not harm or disable existing features.
One method we have found highly effective is encouraging direct feedback from customers concerning which features they like, the challenges they face, as well as new features they would like to see. We engage customers in a number of ways, including hosting an open discussion in the online community about a specific proposed feature as well as organising roundtables or webinars geared towards customers. Thousands of our customers participate in these forums to share their ideas and vote on new features.
Taking both the internal and external feedback into account, we decide which new features to incorporate into the release. We also evaluate potential changes that may be made to the graphical user interface and determine if any particular QA scenarios will be integrated.
We then write the code, integrate the new features and changes, and modify the product until we have a working prototype.
During the alpha stage, the new release is installed and tested internally. The Quality Assurance department goes through a labor-intensive period of testing the new software across all platforms, in both upgrade and new installation modes. This is a long process that includes the use of automatic tools to test backward compatibility, overall performance, and functionality of the new features. This process lets us know which features are ready to go and which ones still need fine-tuning.
Following completion of the alpha stage, we move to beta testing, in which an elite group of customers (we call our beta testers “pathfinders”) participate in the final stage of testing before the product is publicly launched. The beta testers receive access to the new release one to two months ahead of the official release. The group tests the software through a test site or in actual production and shares their comments and any challenges they may have. In exchange for their participation, we devote an entire support team to their service and commit to providing immediate assistance with any issue they may have. This important process helps us identify any items that may need additional modifications.
Before we can officially launch the product, we make additional tweaks and minor changes to the product based on the feedback from the Pathfinders. Then, the solution is stabilized as a release candidate and ready for public launch.
Typically, within 24 hours of a new release roll-out at SysAid, hundreds of customers will have upgraded and thousands more will continue do so over the coming days. However, with the new product comes new inquiries, especially relating to installation and questions about new features. Therefore, with any launch, the support team must be fully prepared to handle the influx of new queries.
So there you have it, product development in a nutshell. This is just a small glimpse into the complex process that software companies continually undergo to provide value to customers and remain competitive in the market. Now, when you click on that software upgrade, you’ll have a newfound appreciation for the hundreds of thousands of hours that went into its creation.
Oded Moshe is VP Products & IT at SysAid