NAB has spent the past 14 months completely rewriting its online banking architecture, culminating in the release today of its new mobile banking app for iOS.
It follows the debut of a new Android mobile banking application three weeks ago.
Underneath the hood of the shiny new apps lies a new, microservices-based architecture that replaces a "monolithic" piece of bespoke code that NAB's online banking platform had run on for the past 18 years.
"We have fundamentally rebuilt internet banking," NAB's acting head of digital banking Todd Copeland told iTnews.
The bank has "chunked down" its existing single piece of homegrown code into smaller high performance Java-based services to make it easier to deploy changes and maintain the platform.
Its new architecture is supplemented by tools like Jenkins, Netflix's Histrix and Chaos Monkey technologies, Atlassian's quality assistance, and the Axway API gateway layer.
"We're getting the speed and flexibility to deploy quickly because instead of having to go back to the monolithic piece of code and change one line in the middle, that's now chunked across multiple areas designed from the ground up using modern coding techniques and practices," Copeland said.
"We've still got mainframes and all those things in the back-end, but the way we interface and call the data and deliver it to the customers is very different."
At the moment only the two new mobile banking applications are fully running on the new microservices architecture; the bank is working progressively to bring it to its wider online banking ecosystem, including its retail desktop platform and NAB Connect business platform.
Copeland declined to provide a timeline for the complete replacement of the old code given funding and priorities considerations, but said "it's absolutely the way we are now doing things".
Diving into DevOps
The delivery of the two new apps also marks the first time NAB has implemented DevOps end-to-end when it comes to mobile banking.
The bank has long used the DevOps methodology - which combines development and operations teams and aims to automate repeatable ops tasks in order to deliver higher quality software faster - for other customer-facing technology. It also already uses continuous delivery for internal releases.
For the first time in mobile banking, NAB extended its use of continuous delivery and DevOps to its Android and iOS app deployments.
The bank spent the past 10 months working with 4000 customers, who offered up 2700 pieces of feedback that informed fortnightly releases up to launch. Android came last month, with iOS following last night.
The team built 500 new screens for the mobile banking apps, offering new features like the ability to temporarily block a lost or stolen Visa card and notify the bank of overseas travel.
The project was dubbed E301, NAB CIO David Boyle told FST Media’s Future of Banking & Financial Services conference in Sydney today.
The moniker represents the team’s drive toward a “great customer experience”; the three seconds they wanted it to take for a customer to reach any feature; zero downtime; and their goal to get any code changes into production within one hour of the change being completed.
“You can’t get things into production, into the hands of our customers, in an hour if you don’t fundamentally think differently about how you test and deliver change,” Boyle said.
“And it completely busts all of the norms that we used to have, and has made the biggest difference.”
Around 95 percent of testing for the apps is automated, and the bank is using the App Experience Analytics tool from CA Technologies to monitor performance and ensure the bank can jump on any issues before customers need to report them, Boyle said.
Ditching the traditional method of software development where someone “writes a requirements document in an ivory tower and sends it through to the technology team to build” means the bank now gets immediate insight into what customers want rather than second-guessing, Boyle said.
“We had 2700 suggestions on how to make it better. So all the money we would have spent writing documents and getting them signed off, we spent building and evolving the solution.”
For the IT team, releasing new functionality every fortnight allowed it to incrementally build the front-end based on customer feedback - making the eventual go-live low-risk, Boyle said, “because we didn’t do anything last night that we haven’t done for the past ten months”.
For example, during the design process customers told NAB that they'd normally check their account after making a payment to view the balance, prompting the bank to include the updated balance on the payment receipt screen.
“And today [we’ve had] feedback from customers wanting a subtotal of accounts down the bottom [of the app], so we’ll put that into the next release,” Boyle said.