March 4th, 2021 • Technology by Marketing Skaleet

Continuous Delivery at Skaleet 👨‍💻

Implementing change is the core strategic business of any modern technology company. Not many legacy software vendors, or banks for that matter, use continuous delivery to update the core banking production platform. Instead, they rely on the age-old method of developing new versions to deliver new features and improved functionality to their clients. And they deliver the new version by migration every 12 to 18 months. 

" If it hurts, do it more often "

Martin Fowler - Software Developer, Author and Public Speaker

Definition of Continuous Delivery  💡

Continuous delivery, on the other hand, enables developers to deliver updates automatically, continuously, and either directly to the software, or to a production platform. This can be done at any given moment or at short, regularly scheduled intervals. The “impromptu” aspect of continuous delivery makes it easier to design and implement, and especially to develop new features. Furthermore, continuous delivery allows for the smooth integration of new partners as well as the ability to eliminate bugs and deliver patches and enhancements to existing software. 

Skaleet decided to shift to continuous delivery, not only to be able to deliver more frequent updates to its own clients but also with the goal of quickly building the next generation of digital banking features

Our approach to continuous delivery falls into the following categories: 

  • Cloud Computing Architecture 
  • Automated and Regular Tests 
  • Managed Configuration 
  • Agile and Sustainable Culture 
  • Superior Quality 

Cloud Computing Architecture ☁️

Our Core Banking Platform solution is built in the Cloud and gives our clients access (via APIs) to all the digital banking services we market to them, including creating accounts, viewing transaction history, and making payments. In order to personalize and tailor our clients’ Core Banking Platforms, all our features, functions, and processes are developed independently in the Cloud. The benefit of this architecture is that it allows us to react quickly to client needs. We can deliver patches, enhancements, and even new features, continuously or at a moment’s notice. In addition, this architecture allows us to easily integrate new partners (via APIs), which brings added value to our own clients and especially to other end users.

Automated and Regular Tests

It is well known that testing is the biggest obstacle to one’s desire to rapidly deploy new features. In fact, developers code and deploy new features, functions, and even processes in a testing environment. During this time, clients derive no benefit from the developers’ work. The product team focuses on uploading patches and upgrades according to a scheduled to-do list. Almost all tests are automated because developers share responsibility for automating tests for the code they write. 

After the developers are finished testing, we give our clients a 15-day window to work with the new features on a test platform. During this period, called User Acceptance Testing (UAT), clients can report any bugs they encounter, and the development team will respond in real-time and correct those problems. After 15 days, the new features are released onto the Core Banking Platform. 

Managed Configuration 👨‍🔧

Every detail of our development, testing, and production infrastructure is codified and hosted in the Cloud. By having an infrastructure-as-code model, we can replicate testing and production environments on-demand. At the same time, and with just a few clicks, we can implement our solution in several geographic regions across the world. We have no environment conflict because each revision is stored in a version control history, so we know what was changed when it was changed, and we can restore to that point if necessary. In terms of monitoring the tests,  developers receive alerts on Slack when an automated test fails, and until the problem is resolved. 

Agile and Sustainable Culture 

The success of continuous delivery requires a culture of trust at a company. Whether our employees work from the office or remotely, we trust them because they know what needs to be done. So, we give them the resources and tools necessary to do their job and ensure the success,  not only of continuous delivery, but also of the development of new and innovative features and,  ultimately, our clients’ satisfaction. 

Superior Quality 

Due to our agile culture, we can achieve a higher quality in our products, especially in security,  performance, and code integration. Using a microservices approach, each function is quickly broken down into discrete services without impacting overall functionality. Each discrete service implements a specific business function and can be completed independently of the other services. Once completed, all the services are integrated onto the production platform, soon to appear in the client solution when that solution is updated. The microservices approach increases efficiency in product development. 

With continuous delivery, new features are delivered quickly and reliably, thus increasing user satisfaction and reducing the client’s time to market.

  • #innovation

  • #corebanking

  • #continuousdelivery

  • #agile