Beacon Platform is a cloud-native all-in-one developer platform that provides quantitative teams with all of the foundational components – apps, tools, and infrastructure – they need to build, test, deploy, and share fintech applications for capital markets investment, trading, and risk management. Our clients use this platform to develop new models for pricing standard and customized financial instruments, undertake deep and broad scenario analyses, and evaluate cross-asset portfolio risks.
We use a CI/CD model to deliver software updates, as part of our broader DevSecOps approach to the software development lifecycle. Clients get weekly notifications of updates, which can include fixes, enhancements, and new features.
(CI/CD are acronyms for continuous integration and continuous delivery or deployment.)
Classic or waterfall process
As a Fintech veteran, I’m more familiar with the classic release-based upgrade process, sometimes referred to as the waterfall methodology or model. Waterfall-based processes work sequentially through each phase of a project, with each phase dependent on the completion of the previous one. Major software releases using this approach tend to happen every year or two, with minor releases in between to address important bug fixes and small enhancements.
Installing the latest major release tends to be an expensive and time-consuming process for clients, so many put them off until forced to upgrade by contract maintenance terms or when they need a new feature for their business. Whether the new release is coming from an external vendor or an in-house development team, poorly managed releases can cost hundreds of thousands of dollars or more, especially if issues arise after the upgrade process is complete.
Testing for consistent results
One of the primary objectives of the classic development and upgrade process is ensuring that the new version uses the same calculations and produces the same results as the release currently in production. This is particularly important for financial applications with so many calculations for price, risk, margin, collateral, future payment, and position values. Most of the time, vendors or internal teams get the core values correct. But challenges frequently emerge in edge cases, such as the price calculation when maturity falls on a holiday. The regression tests necessary to ensure that all edge case scenarios are validated require careful preparation of test and supporting data sets.
Beacon’s CI/CD process
Under a CI/CD development and release process, changes are made incrementally and frequently, supported by automated processes that move code through the design, development, review, testing, and deployment phase. To ensure code quality, we use code review tools and run updates through an extensive automated test suite, with new test cases added to our inventory every week. Our test harness is implemented within an internally authored tool called Test Dashboard. Only after everything has been tested and verified is new code sent out via our automated distributions to each client’s Git repository, within their Beacon domain.
Once received, clients control when they want to use the new code. We encourage our clients to regularly evaluate and promote new code, so that they are able to take advantage of our latest features and fixes. And we teach our clients how to develop their own CI/CD processes, running acceptance test procedures focused on the elements of Beacon that are in production and any associated work products clients have developed.
Staying current produces higher yields
Beacon’s use of a modern CI/CD approach to software development avoids the “step function” effect associated with the waterfall release-based upgrade model. Updates are smaller, easier to validate correct and consistent results, easier to isolate and debug any issues, and easier to roll back changes if necessary. This process does require clients to change their approach to software release management, but it provides substantial benefits. Clients can access enhancements and fixes in weeks or months, not years, which can be critical in times of high volatility or unexpected market events. This is particularly impactful where we are developing extensions at the behest of a client to meet a near-term business goal.
CI/CD also smooths out the system support model, eliminating the requirement to add staff or engage teams of consultants to test and deploy a major upgrade. Instead, firms operate in a steady state and can manage these incremental upgrades with existing staff. There is a reduced risk of major failures with incremental releases, and code rollbacks (if necessary) are easier and less of a shock to users. But most importantly, quants, traders, risk managers, and other investment professionals are more productive, as they are always working with the latest capabilities. In fast moving markets, equipping the front line with the latest tools is critical to the bottom line.