Speed and agility reign supreme in software development. However, this drive can sideline the role of testing: Bugs slip through the cracks, security vulnerabilities go unnoticed, and user frustrations mount. Amidst this turmoil, James Bach stands as the voice of reasonâand dissent. From his unconventional beginnings as a computer salesman to his rise as an authority in the testing field, James shares his journey in the industry and the necessity for testers to challenge the norm.
Edited transcription
James Bach doesnât fit the mold of the typical software tester. A self-proclaimed âproud high school dropout,â his journey defies convention. Starting as a teenager programming video games, he got his first job as a computer salesman. âI never managed to sell a single computer and I broke one computer,â he recalls. Yet, Jamesâ self-taught knowledge of assembly language landed him a job in software development by one of the storeâs clients, despite lacking any formal experience in the industry. âIf you donât have a lot of experience in the field, you donât have to worry too much because just be hungrier and be a little less expensive than the experienced people,â James advises.
âIâm a natural complainer; I look at everything as problems,â James admits, arguing that this contrarian perspective is precisely what makes him a good tester. âSerious projects doing serious software should want to have independent software testers, not just a bunch of cheerleaders,â he emphasizes.
The challenges of modern testing
Since Jamesâ early days, the software landscape has undergone a seismic shift, and testing was not left unturned. âThere are two main pressures on testers today,â he explains.
The first is the loss of management. Before, it was common to have test managers protecting testersâ autonomy, something often absent in agile environments. The modern trend of embedding testers directly within development teams, fueled by the idea of fostering collaboration, diminishes the independence of testers and their impartiality of judgment. âWhen testers work directly for developers,â he argues, âthey end up working for people who may not fully understand the value and nuances of testing.â Tests might feel that their job of finding flaws in code negatively affects developers who have to fix it.
The second pressure on testers stems from the online, continuous development nature of modern software. In the past, when internet updates were not the norm, projects had more breathing room before customer release, allowing testers time for thorough exploration. But today, the rush to deploy new features often clashes with rigorous testing. âPrioritizing constant deployment can inadvertently prioritize crashing deployment,â James says. While agility and speed are important, they should not come at the expense of thorough testing and careful judgment. Development focused on rapid release risks compromising quality. âYou can put out bad software today, and people might just shrug and say, âItâs alright,â â James admits. However, effective testing goes beyond product quality; it can also mitigate major security risks.
In like manner, the pressure to release faster fuels the trend toward automation, but James remains skeptical about its ability to fully replace human testers. âAutomation is great for repetitive tasks,â he concedes, âbut human judgment plays a massive role in testing: A machine canât replicate the critical thinking and creativity needed to uncover truly unexpected issues.â
Moving beyond quality
âTesting is not about quality,â James declares, shattering a fundamental tenet of the field. For him, itâs not about ticking boxes or meeting pre-defined standards, but a relentless pursuit of truth, a quest in which the tester has to uncover the hidden flaws and discrepancies between âwhat the software should beâ and its current reality. âA lot of times whatâs written down is obsolete,â James explains. Specifications evolve, user needs shift, and unexpected scenarios emerge. The âtruthâ on product development is dynamic, requiring a shift in focus from predefined quality metrics to a deeper understanding of the softwareâs true state.
Hence, due to softwareâs nature, James views testing as an âinvestigationâ rather than a technical exercise. He encourages testers to adopt a detectiveâs mentality, actively looking for trouble, for the cracks in the facade of functionality. He believes issues are inherent, waiting to be exposed, and ignoring them creates a false sense of security.
Building a safe space is a requirement for this kind of investigative journey. Accountability, according to James, isnât about blind adherence to authority but about fostering an environment where testers can speak their minds without fear of reprisal. He differentiates between âresponsible testers,â who own the testing strategy, and âsupporting testers,â who execute it. Both roles are crucial, but only the responsible tester holds the ultimate accountability for uncovering the truth.
Whatâs more, James argues both testing roles should respond to a testing manager, who acts as an intermediary between them and their tasks and programmers, allowing them to concentrate on their work and filtering external feedback. To further keep testing and development separate, managers from both groups report to a shared business unit manager. âThey can cooperate but maintain autonomy,â James reiterates, emphasizing the importance of independent judgment.
And this autonomy extends beyond technical expertise. James champions the value of non-technical testers, arguing that a monoculture of coding hinders diverse perspectives and ultimately inhibits excellence in testing. âWe need diversity,â he proclaims, âif weâre going to have excellence.â
Rethinking testing education
To this end, James advocates for a âphilosophy that encourages diversityâ in testing and welcomes individuals with varied skill sets and backgrounds, believing they enrich the field with unique perspectives. In this regard, James recalls his experiences hiring a philosophy graduate and a lawyer with a CS degree, both thriving as testers thanks to their non-technical strengths. He even recounts mentoring a restaurant owner and former 911 call agent into a successful testing career, bypassing the traditional âqualifications.â
Still, broad perspectives and critical thinking are often excluded by the industryâs obsession with CS degrees and programming experience. His own brother serves as a poignant example of this exclusion. A successful tester at Microsoft in multiple roles, Jamesâ brother’s lack of a computer science degree disqualifies him in the eyes of standardized recruitment processes.
Tech giants like Google and Facebook, James believes, are to blame for these âcrazy ideologuesâ of pushing CS degrees instead of fostering true testing talent and product quality. Their claimed success, he suggests, rests more on monopolies than truly exceptional software quality.
Taking Testing Seriously
While other testing books âwave their handsâ at automation, James affirms his upcoming release, Taking Testing Seriously, promises a refreshing dive into practical, hands-on skills. Rather than following the latest trends or buzzwords. James aims to create a resource for aspiring âexcellent testers,â individuals who value learning and honing essential skills above all else.
But before diving into tactics, James acknowledges the need for a solid foundation. Key concepts like âresponsibility,â âsystem,â âquality,â and âriskâ all carry subtle nuances within his methodology, requiring clear definitions to establish a shared understanding. He throws shade at existing testing discourse for its ânewly written code bias,â criticizing the neglect of integration challenges posed by pre-existing code from platforms like GitHub. Taking Testing Seriously, James guarantees, breaks free from this narrow focus and embraces the real-world complexities of testing across diverse contexts, from medical devices to embedded systems.
And itâs not a solo journey. Taking Testing Seriously will include guest chapters from fellow practitioners who utilize variations of the Rapid Software Testing (RST) approach. This diverse perspective ensures the book reflects the richness and adaptability of RST in action.
The bottom line
Taking Testing Seriously will be published by Wiley towards the end of 2024. Besides, James is currently penning two more volumes âone on rapid software testing and another detailing his unique methodology honed over two decadesâ with no release date yet.
Visit Jamesâ website Satisfice and follow him on X (formerly Twitter), at @jamesmarcusbach, and on Linkedin.
