Agile methodologies and DevOps are required, but not enough to ensure speed and quality in software delivery
Nilton Omura
Global Technology and Digital Transformation Senior Executive / Consulting / Banking Technology / Technology-Enabled Business Transformation
More than ever banks are pressed to be able to deliver new products and services quickly and with high quality to stay competitive. In fact, research shows that faster software delivery is correlated with higher customer satisfaction, market share, and returns on investment. On the other end, delivering software with high quality is critical to avoid costly rework and delays, and prevent potential catastrophic damages due to bad solutions being deployed into production.
Agile and DevOps methodologies have significantly helped to improve software delivery by enabling iterative development and fostering automation and collaboration between development and operations teams. However, despite these improvements, studies reveal that a significant percentage of banks still experience delays and continue to report important software quality issues.
This suggests that to achieve superior speed and quality in software development, banks need to look beyond agile and DevOps methodologies and embrace a holistic perspective across the Software Development Life Cycle (SDLC). This means taking a comprehensive multidimensional view of the entire process, from requirements gathering to deployment, and identifying and addressing the challenges that can impact speed and quality at each stage.
One critical dimension for the speed and quality of software delivery is the underlying architectural framework. Development teams are heavily benefited from clear technical, functional, data and integration frameworks and patterns to guide their design and implementation work. In many banks going through digital transformation, the architecture vision is materialised through platforms and products. Platforms provide the underlying infrastructure, technology, data, and integration capabilities as a foundation for the development of the products, which implement the functional architecture driven by customer needs and experience requirements. Therefore, the architecture team, platform, and product management play critical roles in ensuring that software solutions are aligned, well-defined and well-designed, which greatly impacts agility and quality.
The architecture team ensures clarity on the vision and standards for the technical and functional breakdown of the enterprise architecture, including data and integration frameworks, thus playing a pivotal role to provide direction and consistency throughout the entire journey.
Platform management ensures that development teams have timely access to the necessary infrastructure, tools, and resources to perform their work. It also provides stable foundational capabilities in terms of integration, reusable pre-built services, and frameworks to simplify and speed up development activities.
Product management provides clarity of vision and prioritisation of features and requirements while ensuring alignment with customer needs (user-centric design) and expectations. This helps to reduce rework and ensure that software solutions align with business and user needs.
Because of the interconnections between the architecture framework and its materialisation in platforms and products, architects and engineers must work in close partnership to ensure alignment on the strategic and tactical implementation of the frameworks and patterns. For many banks, development work often gets impacted by conflicting priorities and views between architects and engineers, so establishing appropriate collaboration models, roles and responsibilities and decision-making frameworks is critical to ensure this partnership and smooth flow of work.
Another critical dimension to consider is team configuration. Banks that adopted agile have already embraced cross-functional teams, combining developers, business analysts, operations personnel, quality assurance engineers, security experts, and user experience designers. This fosters collaboration and promotes an end-to-end approach to software development.
To maximise the effectiveness of cross-functional teams, banks should consider team alignment and its impacts on team stability, handovers, and overhead needs. Banks need a thoughtful consideration of how teams align around platforms, products, and value streams to increase team stability over time, reduce handovers, and minimise orchestration points.
As banks often struggle to find sufficient experts to fulfil all their needs, they must take great care in allocating specialists and generalists in key roles to optimise resource allocation, promote knowledge sharing, address skill gaps, and improve problem-solving. In a rapidly changing technology and business landscape, having enough t-shaped professionals is also not always feasible, so banks need to make conscious decisions on how to allocate pure specialists and surround them with generalists who can navigate across domains and integrate the work.
As software supply chains grow more complex, their effective management plays a crucial role in software development productivity and quality beyond security concerns. Implementing a Software Bill of Materials (SBOM) is essential for addressing the complexity of third-party components. An SBOM enhances security by identifying and mitigating risks, but it also improves development efficiency through informed component selection, streamlined dependency management, continuous monitoring and maintenance, and enhanced reuse, collaboration and documentation. By optimising the software supply chain, organisations can achieve higher productivity and deliver more secure and higher-quality software products.
Finally, banks must equip development teams with best-in-class tooling. Recent Artificial Intelligence (AI) advancements and modern integrated tools can dramatically improve productivity and quality, and elevate developer experience, across the entire SDLC. In fact, several experiments and research indicate that the adoption of best-in-class tools is one of the primary drivers of quality and speed improvement in software delivery.
With modern AI-powered software engineering tools leveraging natural language processing (NLP) capabilities, valuable insights can be extracted from unstructured data sources, enabling a better understanding of customer expectations, and enhancing the clarity of requirements. AI-powered tools can also generate code from free text requirements, inspect code to detect and fix logic errors and vulnerabilities, analyse legacy systems to identify functionality and integration rules, and identify reusable components based on contextual analysis of the code being developed. Continuous testing boosted with AI-based test automation tools can optimise and increase test coverage, help to generate test data, simulate user behaviour and test edge conditions. Finally, modern AI-powered tools can automatically analyse the SBOM to detect potential vulnerabilities in the supply chain, and continuously scan the code base to keep SBOM up to date.
Modern development platforms also offer powerful collaboration tools that enable seamless teamwork regardless of geographical location. The combination of cross-functional teams, architecture/engineering partnership, intelligent alignment to platforms, products, and value streams, thoughtful distribution of specialists and generalists, and adoption of modern development tools help streamline communication and minimise handovers, ultimately accelerating the software delivery process.
Lastly, fostering a culture of continuous learning enhances the ability to deliver cutting-edge solutions. As banks move into newer, more complex and more innovative solutions, they need to ensure that their development teams can learn and experiment. This can be done by creating sandbox environments and mechanisms for experimentation. By staying up-to-date with emerging technologies and leveraging AI-powered tools, banks can enhance efficiency and quality throughout the SDLC.
In conclusion, in a rapidly evolving landscape, the banking sector faces the urgency to deliver software solutions with speed and quality to remain competitive. Each bank has a particular business and technology set-up and is in a different stage of maturity. Therefore, there is no one size fits all to software development. Hopefully, this article helped to provide useful and practical perspectives on multiple dimensions impacting productivity, speed and quality of software development work and thus contributing to a more systemic approach to achieve better and faster software delivery.
Find below some other articles I wrote with related topics with great influence on the ability to deliver software with speed and quality:
Comprehensive overview of the multifaceted challenges faced by banks in software development and this article offers practical perspectives to achieve better and faster software delivery!
Head of Partnerships | Cloud Certified | Driving Strategic Tech Partnerships in Asia
1 年Something to add to this is also the people aspect. The volume of change when bank's go through a digital transformation is tremendous and causes huge friction to those that are used to the traditional siloed approach. Stressed individuals act in fight or flight and can collectively slow the banks ability to move. Ensuring employee buy in, high communication and choosing the right delivery streams to modernise is super important for speed/quality in banking software delivery on top of this.