There are questions more or less useful than others; to me, the question of technology in 10 years’ time seems to be a compelling one. It is compelling when we try to answer what the technology we create now will be like. As for GeneXus, we don’t have the crystal ball, but when trying to answer the question we need to be aware of the accelerated advances in the world, and that our mission of simplifying software development has to live up to our high self-imposed demands, as well as those of the industry in terms of functionality, quality, safety and speed. In that sense, this post is about a change in the internal production process of the GeneXus software.
In GeneXus we talk a lot about digital transformation; we support our customers in transforming their businesses and, in turn, with the solutions they build, they also help their customers in the same direction. Today, I want to mention a particular change that we have implemented inside GeneXus, going down this path, which is to digitally transform our own production processes. That is, do as you say.
In other words, just like we promote the transformation in all areas, we have applied this transformation in the center of our industry (it is curious to think that software has transformed everything, but many times the way of making software has not been transformed). Those who know us know that since its inception GeneXus has been a paradigm shift when it comes to developing. Today we have transformed our processes to keep pace with bit rates, to support our large Developer Community, and help them create and maintain strong solutions.
Bits of change
Since March 2016, our internal process has changed and accompanied us through the entire upgrade cycle of GeneXus 15. Basically, we changed the cycle of GeneXus releases so that our customers can develop and maintain their solutions with the latest tools on the market. (This means, for example, giving them immediately – or before they ask for it – the latest iOS generator to create applications with the latest features and be the first ones to publish them in the store.)
The software development process takes a certain time: months, years. We’re aware that our customers can release solutions today, with the current GeneXus version, but they will also need to maintain them in -say- 10 years, with the GeneXus version that will be available in 10 year’s time.
Why not maintain them in 10 years with the current version of GeneXus?
For three main reasons:
First, because technology is evolving fast, integration with today’s third-party components may not work in 10 years. Then, the solution may require integration with other pieces of software and forms of integration that do not currently exist. We can do a retrospective exercise to remember what technology was like 10 years ago: first of all, the solutions created did not expose REST services yet, and some had .NET Mobile components to run on Handheld devices. At present, the REST protocol is already in its next stage, with services evolving to ODATA. Also, .NET Mobile (along with the Handhelds) has given way to the Smart Device revolution.
Second, because better ways of capturing knowledge and exploiting data that allow for higher levels of productivity are also being invented and will continue to be invented. Data Providers were just beginning to be used 10 years ago. Today, we are starting to have Data Stores on ODATA fonts (and soon on more data sources, such as Amazon DynamoDB or Apache Kafka) that let us navigate with For Each commands on unstructured data or services. This implies incredibly higher levels of productivity in scenarios that will become more and more frequent!
Third, because specific events remind us of the level of disruption and fast advances in the industry time and time again –for example, the changes in Google and Apple’s requirements for the applications which are for sale in their Stores. Here is a news article about it.
That’s why we emphasize and tell our customers that the best thing to do is to use the latest version of GeneXus, as it ensures the greatest advantages.
Keeping up to date with the latest versions of GeneXus has not always been so easy in the past. This was a key factor to improve the GeneXus production process. Now, the effort to move from one GeneXus 15 upgrade to another is not as costly in comparison, and one of the reasons is that each upgrade comes out of the same release channel.
The new process is as follows: every feature created to meet a need in the industry is first stabilized, completed and presented to beta testers on the Beta Testers Channel and, when ready, moved to the Preview Channel.
Both the Beta Testers Channel and the Preview Channel are updated daily, or more precisely, we try to do it daily because they are effectively updated when the tests guarantee the quality levels specified for each channel and all publishing steps have been successfully completed. Of course, all this is done through automated processes of continuous integration and continuous delivery (CI/CD) using specific tools for each stage of the process. This is complemented by careful attention and quick response to feedback from early adopters of these versions, which closes the production cycle in a framework of continuous improvement. The benefits of the above-mentioned Digital Transformation are evident.
Each GeneXus upgrade is then released through the preview channel on a given day, every 2 months. So, according to this schedule, GeneXus 16 will be released on September 24, 2018. (Yes! On the first day of GX28!) Also, Upgrade 1 of GeneXus 16 (Tero) will be released on November 28.
GeneXus 16 will include the features that have already been made available in GeneXus 15 and its upgrades. Actually, it’s just another upgrade. As part of this process, no more upgrades of GeneXus 15 will be released after Upgrade 12 because, technically speaking, GeneXus 16 will take the place of GeneXus 15 Upgrade 13.
As a result, upgrading to GeneXus 16 or any of its later upgrades will be as simple as changing GeneXus 15 upgrades. Also, we expect it to be even easier, as we continue to improve this process continuously.
It is clear that in this process, we are not only talking about the delivery of bits, but also all the other materials such as setups, Community Wiki articles that help to adopt the new features, documents that show improvements or bug fixes and indicate the path to adoption regarding compatibility issues to be taken into account, or new requirements that are emerging for different needs. This material is often accompanied by knowledge bases (KBs) with examples, course updates and more.
The way we know how to achieve these processes, and the transformations that lead to them, is through people who are experts in the subject, who learn every day, and move forward as a team in pursuit of the goal. In this team, our motto is Trust and Respect.
As for the initial question, I can assure you that in GeneXus we do not have a crystal ball to know what technology will be like in 10 years from now. However, we do have the capacity to adapt to changes, with a production mechanism that is better than the previous one and makes it easier for our customers to adopt upgrades and keep up with the latest versions of GeneXus. For what purpose?
To help our customers create, evolve and maintain groundbreaking software solutions automatically over time.