7 Things Technology Leaders Need to Know About Software Quality
Software is making its way into every aspect of life, and tech companies must change to keep up- and realize that change starts from the top.
Join the DZone community and get the full member experience.Join For Free
I don’t have a crystal ball, but I can issue one statement about what’s to come with 100% certainty: Software will continue to eat the world.
Software now runs throughout everything we do, and every company, regardless of its core competency, is a software company.
This environment presents an interesting challenge for technology leaders, especially those who might be familiar with procuring systems but not as familiar with delivering software of their own to customers. Regardless of what was once the case, the latter is now very much a part of the space, and that portion of the job will only continue to grow.
Top Software Quality Lessons for Technology Leaders
As delivering software to customers becomes more important to businesses of all kinds, we will see a major emphasis on quality. Ultimately, the ability to deliver quality software will either help or hurt technology leaders when it comes to achieving their agendas.
For example, Gartner reports that CIOs expect their digital revenues to increase by as much as 131% over the next five years. But as most of this growth hinges on winning new customers from competitors and retaining existing ones, CIOs must obsess over software quality. To do so, Forbes recommends emphasizing software and data analytics, putting customers first (particularly by dedicating time to speaking with them) and focusing on how software and other digital initiatives can add value by aiding in growth, improving the customer experience, and driving innovation.
With all of that in mind, what do you as a technology leader need to know about software quality? Start here.
1) Customer Expectations for Software Are Through the Roof
Given the amount of technology we use every day, it’s not surprising that customers have extraordinarily high expectations for software performance. Just consider the recent finding that 80% of users will not attempt to use a problematic app more than three times. And while it was once okay for some tools to be clunky, particularly those used in a business setting, today every software has to have a good UI or users will simply turn to the competition.
As Paul Merrill, Principal Software Engineer in Test and Founder of Beaufort Fairmont Automated Testing Services puts it: “Most industries and sectors are no longer able to avoid considering the impact their software (or their competitors’ software) has. Software is now the lever lifting companies to success or the ‘lead suit’ drowning them in failure.”
As a result of these high expectations and the fact that the competition is always just a click away, quality assurance is of utmost importance. Simply put, having good development isn’t enough anymore — you also need QA to ensure the product works in the real world. Now, bug-free software is only an entry point to quality, and QA should do more than just detect bugs; it should also make software more friendly, helpful and desirable for customers.
2) Software Development Is Picking Up Speed
Software now gets pushed through the development lifecycle faster than ever, and it’s still picking up speed. This increased speed is now a must as customers want the latest versions of software at all times and are quick to switch if their expectations are not met.
The rise of Agile and DevOps processes have helped teams meet this increased speed by changing how they work to deliver new software in smaller, iterative chunks rather than taking a big bang approach. For instance, a study from McKinsey reports that taking a DevOps approach helps teams move from code to production in as little as 15 days, down from 89 days without DevOps.
But for all the benefits that these new approaches bring — and speed is just one of many — they also carry significant risk. Most notably, this need for speed creates the risk that software isn’t being tested thoroughly because it gets rushed out the door. In some cases, pushing software live without thorough testing might have minimal consequences, but more often than not the consequences can range from lost customers to lost revenue and even to serious repercussions for the business.
And that’s just the public fallout that happens before the issue gets fixed, as studies find it costs four to five times as much to fix an error after product release as it does during design. As Brandon Cipes, Vice President of DevOps for cPrime, puts it, while quality assurance does take time, when done correctly it actually fuels a speedier development cycle. He says: “QA gets cut from too many budgets because it costs money or takes time. And every company that makes that decision is going down a very dangerous path. QA is absolutely paramount to being able to run an effective software development lifecycle that can scale and go faster.”
3) Software Development Lifecycle Tools Are Multiplying
The fact that technology is now everywhere extends to every situation — including the software development lifecycle (SDLC) itself. Look no further than our SDLC Landscape Graphic, which includes just under 1,500 different solutions, for proof of the proliferation of tools.
While many of these tools can help software developers and testers do their jobs more efficiently and effectively, the sheer number of them presents challenges for technology leaders. For instance, many leaders are simply overloaded with solutions, as they’re unsure of where to start when it comes to evaluating the options or their stacks have become a tangled web of difficult to manage, often redundant solutions.
To alleviate this problem, it is important for technology leaders to rethink their approach to the enterprise tech stack. Rather than committing to one large expensive software vendor and being trapped in their ecosystem (including the high priced consultants), IT leaders should look to the modern best-in-breed commercial and open source solutions that provide the flexibility to integrate with a diverse range of tools.
4) QA Teams Are Being Redefined
In order to keep up in this new world, QA teams must be redefined. Specifically, many organizations believe that QA teams must become embedded within development teams in order to achieve true agile collaboration. This change can help everyone better embrace a DevOps model and help keep up with the need for speed without sacrificing quality.
Here at QASymphony, we’re seeing this change play out through a shift from large testing teams with specialized resources to smaller, more well-rounded QA teams embedded throughout the organization. And one structure that’s proving particularly popular is the “Three Amigos” model, in which the tester, developer, and product owner work closely together throughout the development lifecycle.
Regardless of the exact setup, Angie Jones, a Senior Software Engineer at Twitter, nails it on the head when she says one of the biggest changes in the software testing world “is that testers no longer solely own quality. To truly succeed in this fast-paced game, everyone must make quality initiatives a part of their job.”
5) Planning and Visibility Are Critical
Planning and visibility were always important, though they typically became a bit fuzzy as you worked your way up. But given the fast pace of development and high expectations of today’s world, not to mention the limited resources available with which to do it all, leaders must be involved in planning and maintain visibility at all times.
Budgeting often proves one of the most challenging points of planning, as technology leaders are constantly being asked to do more with less. As a result, you need to find ways to get more out of the resources you have. This is one area where the mountain of technology solutions to aid in the SDLC can prove extremely helpful. For example, tracking testing activities to gain visibility into what’s providing value and what’s slowing down the process will be essential to rapidly delivering new software with limited resources.
A good budgeting rule of thumb to follow is to invest at least 50% of your development budget into QA since QA should be present at every step of the SDLC.
6) Security Should Be Top of Mind
Security has always been at the back of everyone’s mind when developing software, but it needs to move to the forefront.
We now use technology for everything — including sensitive activities like banking and storing medical records — and all of that technology is becoming interconnected. In this environment, security must be a top priority.
Ultimately, people will not use software that they can’t trust to protect their information, and that makes security an integral piece of the software quality equation.
7) Data Goes a Long Way
Despite being asked to do more with less, technology leaders still have some of the biggest budgets within their organizations, with most companies predicted to allocate 40% of their IT budgets to quality assurance and testing by 2018. But most leaders have to defend this budget on a regular basis. In these cases, it’s data to the rescue.
Specifically, technology leaders need test reporting data that illustrates what goes into properly testing software to ensure its quality and the results of that testing. The right data can help demonstrate the need for QA and the impact of those efforts (e.g. one round of testing caught X issues before production, and those issues could have cost the company Y had the software gone live without proper QA).
Remember That Change Starts From the Top
Embracing quality at every step of the way, from idea to development to production and beyond, is an absolute must to staying competitive in today’s software-driven world. And this change must start from the top, as the onus is now on technology leaders to make the appropriate organizational and process changes to ensure that important balance of speed and quality.
Published at DZone with permission of , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Effortlessly Streamlining Test-Driven Development and CI Testing for Kafka Developers
Auditing Tools for Kubernetes
Design Patterns for Microservices: Ambassador, Anti-Corruption Layer, and Backends for Frontends
Microservices Decoded: Unraveling the Benefits, Challenges, and Best Practices for APIs