- If your AI-generated code becomes faulty, who faces the most liability exposure?
- These discoutned earbuds deliver audio so high quality, you'll forget they're mid-range
- This Galaxy Watch is one of my top smartwatches for 2024 and it's received a huge discount
- One of my favorite Android smartwatches isn't from Google or OnePlus (and it's on sale)
- The Urgent Need for Data Minimization Standards
The Hidden Gem of Savings in the Software Delivery. And no, it’s not AI
According to Deloitte research, AI will boost the productivity of software development processes from 50% to 1000%. It will improve project management, help with requirements creation, assist developers with coding, cover the system with auto-tests, report defects, and improve deployment. The bad news is that it will take years for corporations to widely adopt this technology, as there are still too many obstacles in the way. These include security and data privacy concerns, low-quality data, reputational risks, and immature technology, to name a few.
While we are waiting for a bright future, an alternative source of productivity improvement is available to any company. If implemented correctly, large corporations can save millions of dollars on IT annually. We are talking about quality-driven software delivery methodology.
Challenges with shipping IT products in the enterprise
The software delivery process in corporations is complex. Let’s look at a couple of real-life examples, which illustrate this complexity.
Example 1: major outage after a core system update
A large broker-dealer updated its core system and immediately ran into a catastrophic failure. The system was unavailable for the whole day, with thousands of unhappy users and millions of dollars in lost revenue. It turns out, one tiny legacy component that was barely documented didn’t sustain the production volumes and brought down the whole system. A combination of factors led to this failure. These include:
- lack of knowledge about legacy components and the overall architecture;
- no regular process for assessing the impact of production load on all components of the system;
- missing component-level load testing;
- absence of production-like infrastructure to simulate the behavior of the whole system under the production load.
Example 2: extreme delays with the trading platform update
An investment bank is developing a trading platform. Despite multiple requests from the business to speed up the delivery, it takes three months to deliver the platform updates. Throwing more money at it and expanding the IT team doesn’t make it any better.
The problem is complicated here by the following factors :
- Business analysts have neither a technical background nor an understanding of IT architecture. Their requirements lead to excessive bugs;
- Developers do not cover their code with low-level tests. Hence, a lot of defects spill over to later stages of testing where it is generally more expensive and time-consuming to fix them;
- QA and development teams spend an enormous amount of time bouncing defects back and forth while trying to stabilise the release;
- With each release, the tech debt is growing and making testing more and more time-consuming.
The problems exposed by these examples are so outstanding that Business directors lose trust in their IT structures and try to initiate projects on their own. And IT executives hectically throw more bodies, change processes, replace vendors, use modern fancy tools and do many other things to fix the problem.
Quality-driven software delivery
The recipe for solving these problems has been known for years – we call it quality-driven software delivery. It focuses on promoting quality at all stages of the delivery lifecycle:
- Establish an end-to-end quality assurance process. Starting from the design phase and ending with deployment and production support;
- Make quality an integral part of the project planning – evaluate risks affecting quality at the project initiation phase, estimate effort needed to mitigate them;
- Document architecture and regularly review quality risks related to architecture changes;
- Produce solid requirements that cover all technical nuances – architecture, databases, integrations, data dependencies, and production load expectations;
- Promote quality control as part of the ‘agile’ methodology;
- Cover the application code with auto-tests at all levels – starting from individual components up to complex end-to-end scenarios;
- Provide the infrastructure needed to guarantee product quality;
- Establish regular end-to-end load testing on a production-like infrastructure;
- Implement the process of automated code delivery and validation on various platforms (operating systems, browsers, and mobile);
The advantages of this methodology are impressive – improved application reliability, reduced number of defects, better customer satisfaction, minimised risks (including compliance), lowered IT expenses, and accelerated time-to-market.
Below are our recommendations for a smooth transition to a new delivery model.
9 steps to embrace quality-driven software delivery
A successful transition to a new model doesn’t require a revolution in your organisation. Start with baby steps, gradually implement and pilot various elements of the methodology, get success stories, and move forward. Based on our experience, you will start getting the first results in 2-3 months. With time, increase the number of changes and expand the new approach to a broader range of projects/systems.
- The QA team is the one that will be driving changes across all delivery stages. Ensure that QA leaders have the expertise, vision, and skills to play this role. If in doubt, find a partner who will help you gain this expertise;
- Establish basic QA controls and reporting that will become the basis for further changes;
- Include QA team leaders in the project planning. Make sure that project managers understand the importance of assessing quality-related risks and adjusting project plans accordingly;
- Evaluate the quality of your requirements. Do they include technical details? Are they testable? QA team will help with the assessment and could even enrich requirements with tech data while you are working on strengthening the analytical team;
- Ensure that the development team has the knowledge and skills to create low-level tests as well as do component-level load testing. Make creating such tests a mandatory requirement as a part of the job description or vendor contract. If there are already tests in place, the QA team will help to review their coverage and create an improvement plan;
- Implement end-to-end test automation;
- Invest in sufficient infrastructure to conduct all quality checks;
- Make end-to-end load testing mandatory for all releases;
- Build the team responsible for automating and streamlining code delivery and validation.
In the earlier examples, let’s look at the results of implementing these steps.
Example 1: In three months we helped the broker-dealer introduce regular load tests on component and end-to-end levels, upgrade its infrastructure, and completely mitigate all risks related to the application’s performance.
Example 2: It took us six months to help the investment bank introduce basic quality controls, strengthen its business analysis team, and cover code with automated tests. As a result, the time-to-market was reduced from 3 months to 1 month.
Implementing at least half of these recommendations will make your organisation significantly more productive and cost-effective than most competitors. And you don’t need to wait for the AI revolution to get savings and improve time-to-market.
Contact Allied Testing now if you are looking for a partner who will help you implement quality-driven software delivery and save millions of dollars on IT now.