I started in this business as a programmer, in 1983. I like programming. But I like trouble even more— that is to say, I am interested in how and why things go wrong in complex systems. My feelings and my work have evolved over the years toward a humanist vision of technology. I had the good fortune to be a student of Gerald M. Weinberg. My work is a continuation and elaboration of his, in many ways. I have dedicated my career to exploring how craftsmanship develops in technical people, to learning better ways of coaching and training in the area of software testing, and to sharing what I’ve learned with anyone who’s interested.
I am a co-founder of the Context-Driven School of software testing thought. This is a community of practice, as well as a paradigm for thinking about testing. CDT focuses on skills and problem-solving, rather than rote formalization of technical work. I created the first-ever class in Exploratory Testing. I created the Rapid Software Testing methodology.
I have written a couple of books (Lessons Learned in Software Testing, and Secrets of a Buccaneer-Scholar).
I work with project teams and individual engineers, coaching them in testing and testability advocacy, among other things. I figure out how to test things that are very hard to test, yet must work properly. I also assist in product risk analysis and implementation of computer-supported testing.
I have also been an expert witness on court cases that involve the need to test software products (such as in patent infringement or trade secret cases), or to analyze test processes.Employment History
4/99 – present Consulting Software Tester
Satisfice, Inc., Eastsound, WA
Satisfice is a software testing consultancy. We specialize in Rapid Software Testing(tm) methodology, exploratory testing, and heuristic testing techniques. Among my projects have been hiring and training teams of exploratory testers, designing certification and metrics programs for testing, and forensic testing. One of my projects was to develop the General Functionality and Stability Test Procedure for Microsoft, which became part of the Designed for Windows program.
I teach Rapid Software Testing around the world, and I have also served as an expert witness on several court cases, such as the Microsoft anti-trust remedies trial, in 2002, and a successful patent infringement case in 2005.
9/98 – 4/99 Principal SQA Practitioner
Reliable Software Technologies, Inc., Sterling, VA
Worked on context-driven testing methodology and consulted on several projects.
10/97 – 9/98 Software Process Support Manager
Aurigin Systems, Inc., Mountain View, CA
Responsible for managing testing, technical support, installation, and software configuration management in support of a multi-user client/server system for managing 3.5 million patents and associated data. Produced a Perl and Visual Test-based test automation framework for performance analysis and regression testing. This included a client simulator, a log file analysis program, automatic test matrix generator, and data-driven test scripts.
12/94 – 9/97 Chief Scientist
STLabs, Inc., Bellevue, WA
Reporting to the President, responsible for defining the testing methodology and consulting services for STLabs, (at the time, a respected provider of software testing services and training). This includes oversight of the testing practices, development of training curricula, and classroom training or mentoring of our testing staff. Consulted at various companies on behalf of the company. STLabs frequently performed testing for Microsoft, on an outsourcing basis, and maintained a special test lab dedicated to Microsoft work. I spoke and taught at Microsoft several times.
3/93 – 12/94 Staff Metrics Egr. , Sr. Staff Metrics Egr.
Borland International, Scotts Valley, CA
Reporting to the Director of QA, responsible for maintaining an overview of the quality of our Languages products and the progress of the various QA teams. Tasks include the specification of project controls, decision support, development of measurement systems, and project coordination. Invented an automated bug metrics analysis system, and invented a scaleable test documentation control system. Created test planning and quality evaluation heuristics.
7/91 – 3/93 QA Project Manager
Borland International, Scotts Valley, CA
Managed team of 10 testers and programmers performing quality assurance on Turbo Debugger, Turbo Assembler and associated tools. Responsibilities involved all aspects of commercial software project management including requirements definition, risk-analysis and management, scheduling, project documentation, metrics analysis, intensive communication, team staffing and training, and test tool development. Was a core member of the project teams responsible for several versions of the award-winning Borland C++ and Pascal products.
5/87 – 6/91 Test Manager
Apple Computer Inc., Cupertino, CA
(contractor 5/87-2/88; fulltime thereafter) Managed team of testers testing development systems on the Apple IIgs and Macintosh. Responsibilities included QA project documentation, bug tracking, schedule tracking and negotiation with developers. After two years, I moved into managing a team of programmers designing tools and methods to improve the productivity of Apple’s Development Systems Group. Delivered presentations on the practice of SQA, analyzed progress of QA department toward objectives, and supervised test tool development.
1/83 – 8/86 Programmer
Spinnaker Software, Cambridge, MA
Working as contractor or employee for Dale Disharoon, Inc., programmed and designed educational software products for various micros. Contributed to sixteen nationally marketed software games (sold under the Spinnaker and Fisher-Price brand names), as well as the book, Commodore 64 Puzzlements. Published software for Apple II, Commodore 64, and Amiga.
- Secrets of a Buccaneer-Scholar: How Self-Education and the Pursuit of Passion Can Lead to a Lifetime of Success, (author), Scribner, 10/08.
- Lessons Learned in Software Testing: A Context-Driven Approach, (co-author), Wiley, 12/01.
- Amplifying Your Effectiveness: Collected Papers, (senior editor and contributor), Dorset House, 8/00.
- My work is also included or mentioned in a number of other books about software development and testing. Some notable examples are Software Engineering: a Practitioner’s Approach, by Roger Pressman, The Rise and Resurrection of the American Programmer and Death March, both by Ed Yourdon, Adaptive Software Development, by Jim Highsmith, Visual Test 6 Bible and Visual Test 4.0, both by Tom Arnold, and Visual Basic for Testers, by Mary Sweeney.
(Most of my work since 2004 is on blogs, videos, or embedded in my classes.)
- Testing is Not Test Cases: Toward a Performance Culture, Testing Trapeze (magazine), 02/14.
- The Rise of the Intellectual Indian Tester (Parts 1 & 2), Tea Time For Testers (magazine), 12/13, 01/14
- Pairwise Testing: A Best Practice that Isn’t, Pacific Northwest Software Quality Conference, 2004.
- Inside the Mind of the Exploratory Tester, article in Software Testing and Quality Engineering Magazine, 11/03.
- Troubleshooting Risk-Based Testing, article in Software Testing and Quality Engineering Magazine, 05/03.
- Value Without Numbers, article in Software Testing and Quality Engineering Magazine, 07/02.
- Testing Testers, article in StickyMinds.com 06/17/02.
- Becoming an Expert Tester, article in StickyMinds.com, 1/9/02.
- PANDEMIC II: Malicious Intrusion- Global Attack Scenario. Co-authored with Tom DeMarco. Cutter Trends Council Opinion, Vol. 2, No. 12.
- Boost Your Testing Super-Powers, article in StickyMinds.com, 11/21/01.
- PANDEMIC I: Malicious Disruption (the Halloween Scenario). Co-authored with Tom DeMarco. Cutter Trends Council Opinion, Vol. 2, No. 10.
- Explaining Testing to THEM, article in Software Testing and Quality Engineering Magazine, 10/01.
- How Much is Enough?, article in StickyMinds.com, 9/12/01.
- Where Does Exploratory Testing Fit?, article in StickyMinds.com, 7/23/01.
- The Dark Side of Component Use, Cutter Trends Council Opinion, Vol. 2, No. 5, 6/01.
- How Do You Spell Testing?, article in StickyMinds.com, 5/14/01.
- Exploratory Testing and the Planning Myth, article in StickyMinds.com, 3/19/01.
- What is Exploratory Testing?, article in StickyMinds.com, 1/29/01.
- Skill over Process, Cutter Trends Council Opinion, Vol. 1, No. 8, 11/00.
- The Role of Testing in the E-Business Era, Cutter IT Journal, 4/00.
- What Software Reality is Really About, IEEE Computer, 12/99.
- James Bach on Risk-Based Testing, Software Testing and Quality Engineering magazine, 11/99.
- Risk and Requirements-Based Testing, IEEE Computer, 6/99.
- Reframing Requirements, IEEE Computer, 2/99.
- Good Practice Hunting, Cutter IT Journal, 2/99.
- A Framework for Good Enough Testing, IEEE Computer, 10/98.
- Highs and Lows of Change Control, IEEE Computer, 8/98.
- Plans, Lies, and Videotape, IEEE Computer, 6/98.
- Certification is Discrimination, Cutter IT Journal, 5/98.
- Tripos: a Cognitive Model of Software Testing, www.stlabs.com, 10/97.
- Good Enough Quality: Beyond the Buzzword, IEEE Computer, 8/97.
- Working with Testers, article in Software Development, 3/97.
- The Hard Road from Methods to Practice, IEEE Computer, 2/97.
- Useful Attributes of an Automated Test Suite, appendix in Visual Test 4.0, by Tom Arnold.
- Software Testability Factors, section included in Software Engineering: A Practitioner’s Approach, 4th ed., by Roger Pressman.
- Internet Software Testing, article in American Programmer, 12/96.
- Test Automation Snake Oil, article in Windows Technical Journal, 10/96.
- Training Testers, article in Software Development, 9/96.
- Microdynamics of Process Evolution, IEEE Computer, 2/98.
- Process Compliance vs. Problem-Solving, article in Application Development Trends, 3/96.
- Utilitarians at the Gate, Information Week, 2/12/96 [article featuring my work at ST Labs].
- The Challenge of Good Enough Software, American Programmer, 10/95. This paper is also referenced frequently in Ed Yourdon’s book Rise and Resurrection of the American Programmer.
- Software Quality on a Shoestring, article in Soft-letter, 1/17/95.
- Enough about Process, What We Need are Heroes, article in IEEE Software, March 1995.
- Tools of the Trade [column discussing my work at Borland], Software Development Magazine, 12/94, 1/95.
- Document Management as a Prerequisite to Quality Assurance, co-authored with Peter Aiken, 1990 IEEE Models and Media in Human-Computer Interaction Conference.
(Below is from 2001 and prior… since then I have lost track.)
- Rapid Software Testing, 3-day seminar offered through Satisfice, Inc. (’01-present).
- Black Box Software Testing, 5-day seminar co-presented with Cem Kaner, offered through Satisfice, Inc. (July ’01).
- Exploratory Testing (ver 2.0), 2-day seminar offered through SQE and Satisfice, Inc. (’99-present).
- Heuristic Software Testing, 1-day tutorial at STAR East, 4/00.
- Test Techniques, 2-day seminar offered through ST Labs (’96-’97).
- Exploratory Testing (ver 1.0), 2-day seminar offered through ST Labs (’96-’97).
- Market-Driven Software Testing, 2-day seminar offered through ST Labs (’95-’96).
(Below is from 2001 and prior… since then I have lost track.)
- No Best Practices! How to Think about Methodology, keynote at STAR West ’01, 11/01.
- Software Engineering Coming of Age? Not Yet, keynote at the Conference on Software Engineering Education and Training, 3/00.
- Testing in the Next 10 Years, keynote, 16th Intl. Conference on Software Testing, 6/99.
- A Low Tech Testing Dashboard, keynote, STAR East ’99, 5/99.
- Debated Dr. Bill Curtis on the subject of software processes before 1300 attendees of SEPG ’95.
- Beyond Requirements and Traceability: Testing for big bugs in medical devices, organized by AddQ, Sweden, 3/12.
- Buccaneer-Tester: Winning Your Reputation, Swiss Testing Day Conference, Switzerland, 3/12.
(Below is from 2002 and prior… since then I have lost track.)
- Writing Testing Lessons, presentation at Boston SPIN, 1/02.
- How Expert Testers Think, presentation at Rational Users Conference, 7/01.
- High Accountability Exploratory Testing, presentation at 14th International Quality Week, 5/01.
- Exploratory Testing in Pairs, presentation at STAR East, 4/01.
- Getting the Most out of Exploratory Testing, presentation at STAR West Conference, 10/00.
- The Heuristic Approach to Software Testing, presentation at 13th International Software Quality Week, 5/00.
- Evaluating Test Suites, presentation at 13th International Software Quality Week, 5/00.
- How to Explain Testing To Anybody, presentation at STAR East, 4/00.
- Helping Developers Help Testers, Pacific Northwest Software Quality Conference, 10/97.
- Test Automation Snake Oil, 14th Intl. Conference on Software Testing, 6/97.
- How to Be an Expert Tester, presentation at 10th International Software Quality Week, 5/97.
- Good Enough Software, presentations at SD’97, STAR’97, and the University of Colorado Distinguished Speaker series, ’97.
- Risk Management for Software Projects, Northwest Developers Conference, 7/96.
- Teaching Testers: Obstacles and Ideas, 9th International Software Quality Week, ’96.
- Managing the Software Test Team, presented at Software Development ’96.
- Why Software Projects Need Heroes, presented at the 3rd Annual Software Practitioners Conference, ’96.
- Market-Driven Software Engineering, Cadence Distinguished Speaker Series. 10/95.
- Debated Herb Krasner and Roger Pressman on the subject of the CMM at the Software World conference 10/95.
- What Every Developer Needs to Know About Testing, presented at PC Database Summit, 8/95.
- The Pros and Cons of Outsourced Software Testing, 8th International Software Quality Week, ’95.
- The Immaturity of the CMM, American Programmer, 9/94.
- Process Evolution in a Mad World, 7th Intl. Quality Week, ’94.
- Barbarian Risk Management, 3rd Intl. Conference on Software Quality, ’93.
- The Persistence of Ad Hoc Testing, 10th Intl. Conference on Software Testing, ’93.
- Organic Quality Assurance, Apple Computer internal videotape, ’90.
- Critical Thinking For Software Testers, Full-day Tutorial given at Swiss Testing Day Conference, Switzerland, 3/12.
- Received the Testing Luminary award 2014 by the people at STP (they run the STPCon testing conference). Honestly, I am not sure what it means. But everyone likes an award!
- Founding member of the Context-Driven School of Software Testing.
- Charter member of the International Society for Software Testing.
- Charter member (and occasional board member) of the Association for Software Testing.
- Member of IEEE 829-2008 Standard for Software and System Documentation (I repudiate this standard, but I was on the committee and tried to fix it.)
- Member of the Body of Knowledge committee for the ASQ Certified Software Test Engineer program (I repudiate this program, but I was on the committee and tried to fix this, too.)
- Signatory of the Stop ISO 29119 Petition, which establishes clear opposition to this “standard.”
- Expert witness on various court cases, including Microsoft antitrust remedies trial (May, 2002) and patent infringement matters.
- Creator of Rapid Software Testing(tm), Session-Based Test Management, and one of the progenitors and advocates of skilled exploratory software testing.
James teaching at Swiss Testing Day in Zurich, Switzerland, March 2012