Background​

In the realm of software development, keeping a software product current, reliable, and robust requires a strategic approach. Alaska Software, the vendor of the programming language and development platform Xbase++, has adopted a strategy known as Continuous Delivery to maintain the quality and effectiveness of its product. This article aims to comprehensively understand Alaska Software's update delivery approach for Xbase++. Specifically, we will discuss Continuous Delivery and its implementation, the concept of updates, and the categorization of these updates into what Alaska Software terms "rings."

What is Continuous Delivery?​

Before delving into Alaska Software's approach, it's crucial to clarify what Continuous Delivery means in a broader software development context. Continuous Delivery (CD) is a software engineering approach in which software changes are automatically prepared for a release to production. The term 'continuous' signifies that this is an ongoing process, keeping the software in a constant state of readiness for deployment.

In simpler terms, Continuous Delivery ensures that a software product is always ready to be distributed to the end-users without requiring substantial or any manual intervention. This method often works in tandem with Continuous Integration, which is the practice of integrating changes from different contributors into the software project as quickly as possible and validating those changes through automated testing and other quality assurance practices. In essence, Continuous Integration helps in creating a robust codebase, and Continuous Delivery ensures that this robust codebase is always in a deployable state.

Why is Continuous Delivery Important?​

The Continuous Delivery approach offers a multitude of advantages:
  1. Rapid Deployment: Since the software is always in a deployable state, it can be released to the users more frequently.
  2. Quality Assurance: Automated testing ensures that the code quality remains high and reduces the likelihood of bugs.
  3. User-Centric Development: Regular updates mean that user feedback can be quickly incorporated into the software, thereby improving user satisfaction.
  4. Reduced Costs: By automating many of the quality control steps, the overhead costs of manual testing and deployment are reduced.

Implementation of Continuous Delivery in Xbase++​

For Alaska Software's Xbase++, the Continuous Delivery strategy means that updates, a mixture of fixes and new features, are made available every month. The process is automated, alleviating the need for manual updates. The tool facilitating this is the Xbase++ Workbench, the Integrated Development Environment (IDE) specifically designed for Xbase++.

Understanding Updates​

In the context of software, an 'update' refers to a newer version of the software that replaces the previous version. Updates in Xbase++ can consist of:
  • Fixes: Corrections to existing features to improve functionality or resolve PDRs/remove bugs.
  • New Features: Additional functionalities to increase the utility of the software.
Updates are prepared based on a schedule (monthly, in this case) and include a balanced mix of both fixes and new features. However, when Alaska Software moves towards a new major release - this is the major version number is changing - then the amount of new features goes down and the focus shifts to fixes.

The Concept of 'Rings'​

To achieve a structured and efficient update rollout, Alaska Software employs a ring-based system. A 'ring' is a group of users or environments to which a particular update is made available. The rings are categorized as follows:
  1. Developer Ring: Primarily consists of Alaska Software's internal development teams and is the first to receive any update. This happens for various product branches like head, v30 or vfuture each night/day.
  2. Internal Ring: This ring includes other internal stakeholders, like testers and other non-developing staff within Alaska Software like sales-engineering.
  3. Early Adapter Ring: Also known as 'Early Adopters,' these are users who are willing to try new updates at the earliest but understand that there may be some risks involved. This is also where we deliver out fixes straight to some customers in an out-of-band manner.
  4. Majority Ring: This is the widest ring and includes the majority of Xbase++ users. Updates reach this ring only when they have passed through the earlier rings and have proven to be stable. This is where the monthly updates get delivered.
Each ring serves as a layer of quality control, allowing the company to gather feedback and make further improvements before making the update available to the broader user base.

Automatic Updates via Xbase++ Workbench​

All of these updates are disseminated through the Xbase++ Workbench. This IDE is not just a space for coding but also acts as the update manager, automating the process of downloading and installing updates based on the user's designated ring.

Summary​

In conclusion, Alaska Software adopts a robust and strategic approach to maintain and improve Xbase++ through a Continuous Delivery strategy. By offering monthly, automated updates via the Xbase++ Workbench, the company ensures that all users receive timely fixes and feature enhancements. The ring-based system adds a layer of customization and quality control, tailoring the experience for different user groups. This approach results in a product that is not only high in quality but also consistently evolves to meet the needs of its diverse user base.
  • Like
Reactions: Osvaldo Ramirez