This is a follow-up to a previous blog titled, “QA Survival Guide: 3 Philosophies to Future-Proof your Software Testing Practice” .
It is a fact for Software Testing professionals that technology evolves at an extreme pace today, and there is tremendous urgency toward building a strategy on how we tackle it. Because of this invisible hand that continues to push for acceleration, our technology communities have developed smart ways to accelerate delivery – in Agile and DevOps practices. The most recent studies indicate that only 4% of organizations do not have any agile teams, and most have more than half their dev teams doing a flavor of Agile[a], so it is almost a certainty that you are familiar, even experienced in it. DevOps on the other hand, is another set of practices to enable a seamless flow for continually delivering software into production. DevOps is quickly becoming a standard today with research showing that 74% of IT organizations are doing, planning or plan to implement it in 2016[b]. Considering that it has only been around officially for 6 years, this rate is alarmingly higher than adoption for Agile, which many considered to be already remarkable. With this trend, DevOps will be a directive for most organizations within this year or the next.
Some see DevOps as a supplement to Agile, some say the two are parallel, and to some, an evolution of Agile itself. Personally, I would simplify it as having an Agile mindset with a Continuous Integration & Deployment (CI/CD) capability. No matter how you see the relationship between the two, there are significant parallels to what is driving the incredible rate of adoption of Agile and DevOps. In fact, where they overlap is precisely where we need to pay attention, since this means regardless of where you are in the adoption of either or both – these expectations are the common ‘wish list’ of the business, your CIO or pretty much the IT industry as a whole. If you focus on developing capabilities that are common to both, you will largely be ready whatever comes your way and in fact get ahead before your organization makes it a must. This overlap can be summarized in four points:
But we should not make decisions completely on what our superiors and the industry want us to do. When we signed up to be leaders of QA and Software Testing, we took on the responsibility of advocating quality in our organizations. As leaders, there are expectations of us both by upper management, peers and team members. The fine print stipulates that we need to strategize, manage and innovate in terms of:
The area of overlap between Agile, DevOps and the Software Testing discipline is the primary focus for building strategy. This is where the Ubiquitous Quality™ Model comes in.
Figure 1: The Ubiquitous Quality™ Model (click for larger image)
Since we have to be champions of software testing and quality, and reflect the speed with which our development practices change, the Ubiquitous Quality™ Model evolves software testing in a cadence that allows both for thoughtful planning for the future and shifting gears as we learn, and as the organization around us changes. UQM in a nutshell:
Figure 2: The approach to UQM (click to enlarge image)
These guidelines to UQM and its approach are the basic building blocks to get started. There are also 16 capabilities which can be broken down or extended further, as long as it follows the approach, timing and the direction toward the three basic pillars. These capabilities, as well as various ways to implement them, will be covered in future articles. There is a whole spectrum of example implementations for each capability, starting from rigorously mechanical approaches to the completely automated and dynamic ones – and there is no single best approach. Selecting an implementation requires a balance of business need, risk and availability of resources – skillsets, hardware and software. Some industries also need to factor in regulatory compliance as well (PCI, SOX, HIPAA).
The capabilities in UQM may seem familiar, and that is unsurprising because there are elements based on the different components or dimensions found in QA roadmaps and assessments methods, or ‘process areas’ in terms of the TMMi (Testing Maturity Model integration) Framework. The major difference is that UQM does not measure success towards different stages of rigid conditions to exhibit testing maturity. Nor does it point out a ‘gap’ in some aspects of your software testing, as found in QA assessments. It also does not define a fixed sequence for building capabilities and processes. What it does instead is focus on building immediately beneficial capabilities, instead of procedures and processes. Governance and operational processes and metrics of Software Testing are seen as foundational and are present to support, manage and measure the building of testing capabilities.
The beauty of UQM is that it is cleanly streamlined to create laser focus on just three pillars towards enabling (Infrastructure), generating (Expertise), and sharing (Distribution) business value from testing. UQM recognizes the unique circumstances of your organization – the collection of organization goals, business priorities, access to resources, or wherever you are in Agile or DevOps adoption. And let’s face it, with the velocity necessary to remain competitive in the IT industry, those will change – a lot. With UQM, you will always be ready, and you can even get ahead. The beauty of UQM is that it is Futureproof.
#UbiquitousQuality #IdeasRealized