The Banking and Capital Markets approach to software quality needs a major overhaul to bring it in line with today’s enterprise-wide Agile practices.
And that means doubling down on a new set of priorities:
Banks need to redefine their “fit for purpose” criterion because:
The business unit measures software quality in goals achieved (e.g., end-customer satisfaction and revenue growth), while IT relates it to efficient and defect-free delivery
The modern workforce aligns with the Agile tenet of “valuing people and interactions over processes and tools.” This is sometimes interpreted, incorrectly, as using minimal or no processes at all
Often, modern software applications are simply an integration of in-house software with third-party cloud and data solutions
How do banks strike a balance between responding to emerging challenges and ensuring high-end quality? Application of the following principles could help you achieve this balance and deliver great quality products and services.
1: Make quality a way of life
Quality assurance (QA) is often regarded as a distinct step in the software engineering process and the sole responsibility of the testing team. That needs to change because QA is a frontline concern for everyone in the team, and quality principles should be embedded into every step of software delivery:
Integrated business and IT teams should contribute to the acceptance criteria for each story in scope prior to sprint kickoff
Inbuilt rules engine on coding principles integrated with the IDE
Continuous integration culture with, or without, DevOps adopted as the default software development process
Though DevOps adoption levels differ from bank to bank, the important thing is for the team to embrace the culture of being self-organized, self-driven and cross-functional while demonstrating an unparalleled commitment to quality.
This approach also aligns with the modern workforce, having become a way of life rather than a series of distinct processes with overheads.
2: Enable compliance with quality principles
Compliance can be achieved by applying fundamental enablers even before adopting contemporary DevOps solutions:
Developing a practical guide to delivery maturity — a few simple tips covering the entire project lifecycle
Circulating quick-start guides to software engineering tools. We have an extensive set of enabling tools — stand alone or with integration to other tools — but individuals don’t like using big “instruction manuals”
Implementing automated reporting. Project status reporting for stakeholders can occupy significant bandwidth. Any automation initiative is considered a major enabler
3: Measure for improvement
It is essential to measure delivery performance metrics, analyze trends, infer and act, and continuously improve. Organizations often consider quality measurement to be an overhead and, consequently, lack the necessary tools and processes.
To overcome these challenges:
Identify minimum core metrics that match your business objectives. Ideally, limit this to five key metrics to derive tangible value for quality improvement
Align these metrics with both business and IT priorities for quality
Continuously refine shortlist of top five metrics based on business objectives and phase of project
Automate metrics measurements to extent possible, as they say any automation even if in pockets is good automation
4: Practice continuous knowledge management
Implementing structured knowledge management helps ensure consistent quality regardless of changes in the team.
Ensure effective knowledge management by:
Prioritizing knowledge capture. Not all knowledge needs to be captured upfront in the project. This can be prioritized based on various factors such as visible book of work, frequent areas of software change and so on
Working out how to capture implicit and tacit knowledge. This can be achieved by studying implemented systems with code reverse-engineering tools, shadowing key SMEs on day-to-day work and analyzing unstructured content such as emails, application logs and so on
Measuring knowledge levels of the team, continuously, via quantifiable metrics
Refreshing knowledge repositories with incremental knowledge gained over time
5: Consolidate and collaborate
Sometimes, organizations overlook the value of allowing learnings from one project’s mistakes and best practices to percolate through to other projects. This kind of siloed execution leads to vital IP getting trapped and wasted.
This can be corrected by:
Incentivizing knowledge sharing across projects
Establishing tools for collaboration and information sharing
Conducting project roadshows and collaboration workshops
Establishing intelligent, context-based information search portals
6: Avoid information overload
Offering a superset of quality and delivery maturity guidelines to all project teams irrespective of their nature of work can lead to information overload and a lack of quality.
The following steps can help:
Match quality guidelines and processes to the project. For instance, a staff augmentation project might major on individual performance while a managed delivery project might need more on product performance
Align quality metrics with the project — hiring efficiency might be a priority for a staff augmentation project as opposed to velocity for a managed delivery project
Promote a “quality first” mindset irrespective of the engagement type and tailor that need accordingly
7: Leverage modern solutions
Hybrid legacy and modern architectures, as well as extensive integration with third-party solutions pose a significant challenge for organizations trying to ensure quality. The answer lies in embracing modern solutions like microservices, DevOps and cloud platforms. However, these solutions could prove cost intensive and a high effort for adoption.
The following steps can help address these challenges:
Simplify and innovate solutions to integrate legacy applications with modern applications
Work with cloud service providers to find effective solutions for on premise, cloud or hybrid
Partner with experienced consultants like Luxoft to accelerate the implementation of innovative solutions
Create effective quality contracts with third-party partners to ensure integrated-product-level quality
Establish cross-functional teams for each party with the necessary expertise to deliver the product cohesively
8: Promote a value-addition mindset
Promoting this mindset to every software engineer goes a long way toward establishing great software quality. When the team adopts a culture of going beyond contractual obligations, it generates continuous quality improvements.
Here’s how to embed this culture:
Promote value-addition initiatives as explicit projects of similar importance to regular projects
Incentivize value-addition initiatives for the team
Establish clear guidelines on what is, and is not, value addition in the context of that project
Share value-addition initiatives across the organization as best practices and team recognition
Finally, the solution to achieving optimum quality in a fast-paced, agile delivery model depends as much on these eight principles as it does on adopting modern solutions like DevOps. While DevOps offers the mechanics for accelerated quality delivery, these principles offer the mindset required.
Solution Lead, Engineering Processes
Balaji is a senior director with Luxoft India. He leads engineering process solutions, globally, across lines of business and is responsible for delivery strategy for the APAC region. During his 22 years in the IT industry, Balaji has driven large-scale technology solutions and transformation initiatives in Silicon Valley technology companies, as well as service partnerships with global financial clients. He has extensive experience in knowledge transitions, transformations, Agile, DevOps, big data and analytics, cloud and program management.