Rapidly changing consumer needs, especially in the wake of Covid-19, are driving a very real need for digitization at scale in sectors as diverse as banking, education, gaming and healthcare. Gartner Inc. predicts that worldwide spend on IT will top US$ 3.9 trillion in 2021, up by 6.2% from 2020 notwithstanding the impact of the pandemic. There’s no mystery in this, of course. In order to remain competitive, enterprises of all kinds simply have to keep up with the pace of digitization.
But the added scale and complexity required now, especially as around 33% of organizations are already running half of their workload in the cloud, poses many challenges. For a start, as the level of complexity increases exponentially, large teams of software engineers need to be involved in the development process. In the world of software engineering, where the ‘pizza rule’ applies, this is fundamentally counterintuitive. Software developers know from experience that as soon as teams exceed eight in number, communication across the team becomes complex and the development process not only becomes more difficult to manage but slows down.
The challenge, then, is to maintain the level of innovation that characterizes small teams while simultaneously scaling up in order to be able to develop, implement and manage organization-wide software solutions.
Our core team at Global Kinetic helped develop and built the first-of-its-kind digital bank in the southern hemisphere way back in 2002 using XP, long before fintech and agile were even a thing, so we have ground-level knowledge of the challenges involved. In an environment in which there’s no room for error, we’ve distilled what we believe are the three components necessary to deliver software innovation at scale.
In the first instance, it’s important for development to take place within an organization-wide culture of learning; a culture that allows for experimentation. This is essential as developing and deploying software and innovation at scale has to be done throughout the client organization at multiple key points, all of which drive productivity. The process is also iterative and depends on constant feedback between the development team and the client in order to ensure that the solution meets all requirements. In short, one has to be able to deliver stable solutions in an agile way, which requires a flexible mindset.
A further dimension is that, when working at scale, a number of development teams have to be deployed on the project and cooperation between them has to be both organic and seamless. Not only do they need to be able to coordinate planning activities, they need to have integrated channels for analyzing progress, dealing with feedback, implementing changes, managing versions and testing systems for stability and robustness.
A design thinking approach is fundamental to this agility. As a company, design thinking and agility is in our DNA and it features in everything that we do. This is encapsulated in our use of managed teams, which work together in a cooperative matrix.
Our agility doesn’t imply going with the flow, though, because in the software environment, it’s vital to maintain a rigorous approach. System quality and integrity can’t be compromised. We nevertheless need to be both rigorous and flexible as we need to be able to adapt to feedback and changing circumstances throughout the development process. It’s a fine balance that takes knowledge, skill and experience.
By its nature, innovation is a process of experimentation and that means being flexible about analyzing needs, identifying problems and finding solutions to those problems. The rigor comes in because the solution needs to work impeccably.
Finally, one has to have a predictable delivery model; one that guarantees both quality and timing. The big challenge, of course, is that this model needs to harness innovation and not constrain it. We nevertheless need to be able to deploy the software into strategic key points within the organization simultaneously and without disruption, and to manage it as it gains traction throughout the business.
In order to do this, we have to have efficient tools and processes in place to manage the complexity of the development process, while nevertheless being flexible enough to accommodate innovation as an input. That’s why our Managed Enterprise Software Engineering solution is an end-to-end process that takes every project from initiation right through to final delivery. Beyond that, we provide 24/7 support for all software artefacts, which is again delivered by managed teams.
Since Global Kinetic was founded, we’ve been guided by these three principles, and they’ve worked for us and our clients every time.
We’ve successfully helped dozens of large global financial institutions execute digital product and enterprise software engineering initiatives. Using managed services teams, we’ve been able to reduce the many risks and uncertainties common in large custom software development projects. Our goal is to consistently provide quality software and solutions to meet a wide range of business needs in alignment with our customer’s development cycles, and to empower them to innovate.
If you’d like to know more about what we can do for your organization - or are interested in joining one of our teams - please don’t hesitate to be in touch using any of the contact channels available on our site.