Last month, General Motors (GM) announced it was restructuring its IT function to support a strategy that will see the company growing software-enabled services revenue to $25bn a year by 2030. The IT function has been split into two roles – one focuses on back-office IT, while the other is a new digital business software function. GM also has a new software platform, Ultifi.
Like other carmakers, GM is shifting from a focus on the design, mechanical and engineering aspect of its vehicles to software-defined functionality running on top of a common automotive platform. Ultifi will offer frequent and seamless delivery of software-defined features, apps and services to customers over the air. According to GM, the software platform offers the potential for more cloud-based services, faster software development and new opportunities to increase customer loyalty.
Crown Agents Bank is another traditional organisation that is rethinking how software drives the business. The bank has been undertaking a digital transformation because of the way the point-to-point integration between its IT systems was limiting the organisation’s ability to scale up transaction processing. The architecture team wanted to move beyond point-to-point integration by taking an application programming interface (API)-led approach.
The first project involved integrating two core processing services to support its move into payments and foreign exchange (FX). This enabled Crown Agents Bank to create an in-house sanction screening capability so it could handle a higher volume of small transactions without increasing the risk of money laundering.
Describing the flow of transaction data, Osita Ngene, enterprise architect lead at Crown Agents Bank, says the bank uses the Oracle IF agent on Oracle Forms to pick up transactions. It needed to develop a wrapper around Oracle Forms to transform the application so that it could offer seven published web services. These are routed through MuleSoft’s API management to provide the APIs for the bank’s screening software.
The bank has also used MuleSoft to add in machine learning to look at risk appetite. “We designed a Risk Screen application to see scenarios and patterns,” says Ngene. “This drives down the costs of having extra people to validate transactions.” Thanks to the new integration, Crown Agents Bank can now safely process 1,900 transactions in just five minutes.
In 2019, Crown Agents Bank acquired Segovia to offer its customers a payment gateway to frontier and emerging markets. MuleSoft was again used to integrate Segovia’s payment gateway with its core banking systems and other internal and third-party payment services. This has enabled the bank to increase the number of payments it can process from 1,500 to 50,000 a day. In the future, these APIs will enable Crown Agents Bank to become less reliant on its legacy systems, further boosting its digital agility.
The growth opportunity for traditional businesses such as GM and Crown Agents Bank requires a mindset shift from using software to achieve a business goal, to developing software products as the backbone of all the products and services the company provides. Such a business operates as a software business and, in theory, should be able to use software strategically to adapt quickly to market changes and customer demand.
Analyst Gartner recently forecast that, by 2024, 80% of CIOs will list modular business redesign, through composability, as a top five reason for accelerated business performance.
Software makes a business composable
According to Gartner, progressive CIOs are shifting their mindset to see volatility as an opportunity. Business composability, or the modular redesign of operational assets to minimise interdependencies, enables work to be recomposed quickly, easily and safely. It is a competitive addition to an organisation’s toolbox that enables CIOs to master the risks of accelerating change.
Computer Weekly recently spoke to two companies that have put software development at the heart of their business strategy. Financial services firm Kore Labs is using composability to help it adapt to change quickly, while Intelligent Growth Solutions (IGS) has streamlined testing and debugging to enable it to deliver remotely controlled farming.
Kore Labs is a financial technology (fintech) company offering financial product management software that aims to reduce regulatory risks, costs and time to market for financial products. Acknowledging that every financial institution is at a different stage of its cloud journey, Kore has focused its efforts on creating customer-centric software that it says is designed to adapt to the needs of its clients, no matter where they are on their technology modernisation path.
For instance, the company needed an approach that would enable it to support on-premise and cloud-based versions of its product management software, KorePRM. As a fintech provider, one of the many challenges it faced was how to provide flexibility in the way financial services businesses could connect into KorePRM.
After deploying KorePRM at a large European financial services business, the company decided it needed to redevelop the financial services product lifecycle management software to support greater scalability and agility.
James Farquhar, Kore Labs
Angelo Ovidi, chief architect and head of technology at Kore, says the business has strategically pivoted its technology roadmap towards a full rearchitecture of the platform. This allows the company to migrate away from its previous outdated architecture in favour of an agile, modular framework that will more aptly support its rapidly growing customer base.
“Since our customers are our top priority, we wanted to provide them with a modular, API-centric solution that would allow them to select from a specific subset of our offering and quickly meet their immediate business needs,” says Ovidi.
For the second version of the product, Kore Labs wanted to use modem technology to enable it to iterate changes quickly, says James Farquhar, the company’s chief technology officer (CTO). The architecture it decided on is based on the Kong API gateway and MongoDB, which is deployed on Kubernetes in Google Cloud.
The company has taken a microservices approach to application development and is using infrastructure as code in the deployment environment. “We are now getting a baseline configuration and we are just finalising the process for client-specific workflows,” says Farquhar.
The aim is to make the application ephemeral, which enables KorePLM to be deployed in layers from a zero start, where infrastructure, reference data and client-specific configurations can be rolled out in a highly flexible way.
“We are able to spin up on the hoof, or turn down dials so that the application doesn’t consume CPU [processor cycles],” Farquhar adds.
The company is developing a parameterised environment that is fully automated, enabling clients of Kore Labs to decide which aspects of the product they need to use. To enable this level of flexibility, Farquhar says software development at Kore Labs is run in a way that maintains microservices backwards compatibility to reduce the chances of new development work breaking existing code.
“We try to maintain integrity in a microservice,” he adds. “This is a software engineering decision. Speed of delivery is one of the objectives. We have to do work to maintain agility by actively managing code.”
Automating software testing
Earlier this year, Computer Weekly spoke to Scottish startup Intelligent Growth Solutions (IGS) about the technology behind its indoor controlled farming system. The idea is that by directly monitoring light, nutrients and water, IGS can provide “recipes” for achieving particular crop growth objectives.
IGS sells the machine for growing plants with a data-driven recipe that uses software to define specific parameters affecting plant growth, to achieve the right outcome for its customers.
Owen Adams is the site reliability engineering (SRE) lead at IGS, and a small team of about 20 software developers produces software in-house using Kubernetes. The main application is IGS’s Growth Tower Management web interface, which is used to manage and create recipes that control programmable logic controllers (PLCs) to provide the correct level of light and dosages of nutrients and water. “These recipes need to connect to hardware at the correct times,” he points out.
The software is built on AKS, the Kubernetes runtime for Microsoft Azure, and uses an SQL database server. It comprises about nine microservices, which provide management and metrics functionality, which is used to control a customer’s farm remotely, says Adams. “We send signals to the PLCs, which then take a series of steps at the customer’s site.”
Given the software’s role in controlling the farming environment, errors in coding have the potential to significantly impact the outcome the customer wants to achieve for the crop being grown. Asked how IGS minimises coding errors, Adams says: “We start with the product owner, project management and engineering team to make sure what we are developing is understood by everyone. The QA [quality assurance] team is involved too.”
Owen Adams, IGS
Along with ensuring the whole team understands exactly what the role of the software being developed will be, it is also important to run sufficient tests to simulate and validate that the code does what it is supposed to do, he says.
The main role of the SRE is to monitor events in the IGS environments that have the potential to shut down the IGS system completely, says Adams. “Kubernetes is quite complex – we need to have sufficient monitoring to ensure we can remedy any issues.”
The SRE team uses Relay from Puppet for low-code auto-remediation workflows in the Kubernetes environment to listen to these events and respond to them quickly. By combining a low-code experience with triggers and steps, IGS has been able to create automation that its growing team can use.
Beyond automating testing, there is also keen interest in how to provide diverse datasets for verifying that the algorithm behaves as expected in all test scenarios.
John Lovelock, Gartner research vice-president and distinguished analyst, says that because the complexity of software is increasing every year, tools to support software development have also increased in sophistication. “When I wrote software, we’d go through testing use cases,” he says. “Now software is automating testing. The computer uses AI [artificial intelligence] to generate the test scripts.”
There is also demand to provide more and more training data for AI-based applications, says Lovelock. “Some of the new stuff in cars is AI-based, but it is difficult to get AI data. One idea is to create synthetic data to train AI algorithms,” he adds. By 2028, Gartner estimates that almost half of data will be synthetic.
Growing talent
The growth and development of the talent pool is perhaps the most significant aspect of emerging tech to propel companies into becoming truly software-focused.
In a recent article looking at the CIO agenda for the next 12 months, McKinsey urged companies to use their best developers for the most important work. In the article, McKinsey senior partner Aamer Baig wrote: “Just as the military wouldn’t have a top fighter pilot doing basic mechanical work, businesses should give their top developers the highest-priority and most exciting projects.”
According to Baig, leading companies are investing in low-code and no-code platforms, which free up seasoned developers to focus on the most challenging tasks. “CIOs need to put in place a disciplined process to track what top talent is working on and rapidly relocate the most skilled to the most meaningful initiatives,” he says.