Towards true engineering. Moving software beyond craft to profession.
Software is practiced more like a craft than a form of engineering — reliant on skill, apprenticeship, and process; short on materials with known properties, mathematics that predicts behavior, modeling that stress-tests designs, and meaningful standards. The history of mechanical, civil, and aeronautical engineering shows the path forward: it's neither quick nor optional. This talk is the argument for taking that path deliberately, and what it means for software testing in particular.
Abstract
If you wouldn't cross a bridge built by craftsmen, why do you trust software that is?
Engineering, at its core, is the application of science, math, and technology to the construction of useful things. Software has the technology. The science and mathematics behind software behavior remain thin. In their absence, software over-relies on skill and process — the hallmarks of a craft. Crafts are perfectly fine for building dressers, swords, and stained-glass windows. They are a bad fit for bridges, aircraft, pacemakers, power grids, and increasingly the autonomous systems that deliver all of the above.
This talk makes the argument that software engineering — and by extension software testing — has not yet reached the status of true engineering, but can and should. It draws on four analogies from other engineering disciplines: the guild-era arms craftsman's transition into a materials-based engineering practice; the Roman empirical civil engineer who could build the aqueduct but not explain why it worked; the modern civil engineer whose wind-tunnel and Monte-Carlo models let them build a bridge that survives typhoons; and the aeronautical engineer whose discipline went from the Wright Brothers to orbital flight in under 70 years. The path is long. It is also possible.
The specific levers — engineering materials with known properties, mathematics that describes software behavior, modeling that predicts it, standards that encode hard-won lessons, and certifications that let the profession self-regulate — are all tractable. Each is already moving, just not fast enough.
“Crafts are perfectly good for building dressers and stained-glass windows. Would you want to drive across a bridge — or fly on a plane — built by craftsmen?”
— Rex Black, Inc.
Outline
What the talk covers, in order.
What engineering actually means
Engineering is the application of science, mathematics, and technology to the construction of useful things. Software clearly has the technology. Where it comes up short is on the science and math — we do not yet have a mature predictive theory of why our systems behave the way they do. In the absence of that theory, we lean on skill and process to compensate. That lean is the signature of a craft, not an engineering discipline.
Guilds, craftsmen, and the transition to a profession
Early mechanical engineering — particularly arms-making — was organized into guilds: craftsmen, apprenticeship as the path to mastery, guild control over who could enter the craft. Swordsmithing is still practiced today, now built on real engineering materials (e.g. 1086 steel) and with no guilds. Software is still in the guild era: entry is gated by informal reputation and apprenticeship; standardized practice varies enormously by shop; and when something goes wrong, the individual practitioner is blamed rather than the process or the profession. That is not how real engineering disciplines hold together under pressure.
- Craft = skill, apprenticeship, guild control, master-craftsman status.
- Engineering = standardized materials, mathematical behavior models, professional accountability.
- Software today is closer to the first than the second.
Empirical engineering, Roman style
The Romans built aqueducts, arenas, and bridges that survive to this day — using essentially empirical civil engineering. They had no Newtonian physics and no calculus. They knew from accumulated experience what shapes worked for what purposes, but they couldn't explain the mathematics underneath. Software is in a similar position: we can build systems that work, but we cannot reliably explain why they work, why they sometimes don't, and what will break when we change them.
Empirical is not enough for the hard problems
You can build an aqueduct with empirical engineering. You cannot build the Seoul subway system — the longest in the world, a marvel of civil-engineering coordination — without true engineering backing the design. The same is true in software. Empirical practice gets you to a functional CRUD app. It does not reliably get you to an autonomous vehicle, a pacemaker, a medical-device ML pipeline, or a power-grid control system without a series of high-consequence failures along the way.
The role of modeling — the Hong Kong bridge
Hong Kong's Tsing Ma Bridge had a specific challenge: typhoons. Stress-testing a completed multi-kilometer bridge is obviously impossible. Engineers built a 1:400 scale replica, placed it in a wind tunnel, and ran Monte Carlo simulations to model storms and failure modes. What made that possible was the combination of engineering materials (steel and concrete with known properties), mathematical models of wind, water, and structural behavior, and ongoing calibration against real-storm data. Software engineering isn't there yet, but we are inching toward it — performance modeling, load simulation, formal methods, AI-system evaluators — each is a piece of the same pattern.
- Materials with known properties.
- Mathematics of the relevant physics.
- Models calibrated against reality.
- Continuous comparison of prediction to outcome.
Engineering materials — the missing piece
Other engineering disciplines build with materials whose properties are published and known: strength, reactivity, melting point, fatigue curve, thermal expansion. Software is built by combining words that get translated into CPU instructions. We don't have software engineering materials yet — standard, tested, reusable components with documented properties. Open-source libraries and cloud services are the start of this, but they mostly publish features, not behavior envelopes. The gap between "functional documentation" and "materials specification" is where many of our worst failures live.
Failure drives standardization
The UK railway-bridge collapses of the 1800s drove standardization — of materials, processes, and certifications. Every mature engineering discipline has a similar inflection point: enough catastrophic failures to force the profession to stop and codify what it knows. Software has started this. CMMI, ISTQB, the various safety-critical standards (DO-178C, IEC 62304, ISO 26262) are real progress. But we still have significant disagreement and inconsistency across the industry. Some worry about premature standardization; others argue that even imperfect standards self-correct faster than no standards at all.
Self-regulation, licensure, certification
In the US, engineers are primarily self-regulated, like doctors and lawyers, with governments enforcing the regulations. Professions with less status — barbers, cosmetologists — are government-regulated directly. The first US engineering-licensure law was enacted in Wyoming in 1907, a century after the profession existed, because "anyone could work as an engineer without proof of competency" was deemed unacceptable for public safety. Software sits where Wyoming 1907 sat. Certification programs (ISTQB, CSTE, various vendor specializations) are the first serious attempts by the profession to demonstrate an ability to self-regulate. They're not the destination. They're the on-ramp.
Not in 150 years? Read the aeronautical history
Naysayers argue software cannot become a real engineering discipline — not even in 150 years. The aeronautical profession begs to differ. The Wright Brothers flew at Kitty Hawk in 1903. Gagarin orbited Earth in 1961. Apollo 9 tested the lunar module in 1969. The Space Shuttle's first orbital flight was 1981. Less than 80 years from first flight to a reusable orbital spacecraft. The analogy isn't perfect, but it makes the shape clear: an engineering discipline's trajectory can be rapid once the materials, math, modeling, and standards come together.
What a true software engineering profession looks like
Six markers. (1) Craft approaches relegated to hobby and personal projects only. (2) Engineering materials as standard, tested, reusable components with known and published behavior envelopes. (3) Mathematics that represents software behavior with useful predictive accuracy. (4) Modeling that's increasingly precise as the math matures. (5) Continuously refined, meaningful standards (not checkbox compliance). (6) Government recognition of reputable certifications — in both software development and software testing. None of these are hypothetical. All of them exist in some form today. The work is to make them the norm instead of the exception.
- Craft relegated to hobby.
- Materials with known properties.
- Mathematics of behavior.
- Modeling that predicts.
- Standards that are real.
- Certifications with teeth.
What any working engineer — and tester — can do now
The profession won't transform from the top. It transforms when individual engineers, testers, and test managers insist on a little more engineering in each program they run. Measure before you standardize. Standardize before you scale. Write the model down. Compare the model to the outcome. Contribute to the standards you use. Earn the certifications that matter. Sponsor apprentices, and graduate them into practitioners who will do the same. None of this requires waiting for a policy change.
Key takeaways
Four things to remember.
Software is still more craft than engineering.
That's an observation, not an attack. It means the profession is mid-transition, and the transition is incomplete. Accept the diagnosis before you argue about the treatment.
Process and skill are compensating for missing theory.
When a discipline lacks materials with known properties and mathematics that predict behavior, it falls back on process and skill. That's not wrong — it's necessary — but it's not the endpoint.
Modeling is where testing belongs.
Performance modeling, load modeling, formal methods, AI-system evaluators: these are the early software analogues of the wind tunnel. Testing as an engineering discipline is about building better ones.
Progress is generational, and it has happened before.
Aeronautical engineering went from Kitty Hawk to orbital flight in under 80 years. Software has been recognizably a profession since ~1950. The timeline to "true engineering" is long, not impossible.
Closing
This is a generational argument, not a this-quarter argument. It won't be settled by any one engineering team, any one certification body, or any one standards effort. It will be settled by cumulative decisions — tens of thousands of engineers, test engineers, managers, and educators each deciding to be a little more engineering and a little less craft.
For our part as a QA-focused firm, this is the point of view we bring to every engagement. Test programs should be designed, modeled, standardized, and improved — not invented from scratch every time. Testers should be trained, credentialed, and accountable in the way any other engineering role is. And the craft side of the profession — the tacit judgment, the apprenticeship, the pattern-recognition — should be what a trained engineer adds on top of real engineering, not what substitutes for it.
Keep reading
Related pieces.
More for this audience
Articles, guides, and case studies tagged for the same readers.
- Whitepaper
Evaluation Before Shipping: How to Test an AI Application Before It Hits Production
The release-gate playbook for AI features. Covers the five evaluation dimensions, how to build a lean golden set, where LLM-as-judge is trustworthy and where it lies, rollout mechanics with named exit criteria, and the regression suite that keeps a shipped AI feature from quietly rotting in production.
Read → - Whitepaper
Choosing the Right Model (and Knowing When to Switch)
A practical framework for matching LLM model tier to task. Covers the four axes (capability, latency, cost, reliability), cascade routing patterns that cut cost 60 to 80 percent without measurable quality loss, switching costs you did not plan for, and the worked economics at 10K, 100K, and 1M decisions per day.
Read → - Whitepaper
Beyond ISTQB: A Multi-Domain Certification Roadmap for Technical L&D
Most engineering L&D programs over-index on a single certification family, usually ISTQB on the QA side, AWS on the infrastructure side, and under-invest across the rest of the technical domains the org actually needs. This paper covers a multi-domain certification roadmap (QA, AI, cloud, data, security, project management, software engineering) with sequencing logic for each level of the engineering ladder, plus the maintenance discipline that keeps the roadmap relevant as the technology shifts underneath it.
Read → - Guide
The ISTQB Advanced Level path, mapped
The Advanced Level landscape keeps changing — CTAL-TA v4.0 shipped May 2025, CTAL-TM is on v3.0, CTAL-TAE is on v2.0. This guide maps all four core modules, prerequisites, exam formats, sunset dates, and which module a given role should take first. Links directly to the authoritative istqb.org syllabi.
Read → - Whitepaper
Bug Triage: A Cross-Functional Framework for Deciding Which Defects to Fix
Bug triage is the cross-functional decision process that converts raw defect reports into prioritized action. Done well, it optimizes limited engineering capacity against risk; done poorly, it becomes a backlog-management ritual that neither fixes the important defects nor drops the unimportant ones. This whitepaper covers the triage process, the participants, the six action outcomes, the four decision factors, and the governance disciplines that keep triage effective in continuous-delivery environments.
Read → - Whitepaper
Building Quality In: What Engineering Organizations Do from Day One
Testing at the end builds confidence, but the most efficient quality assurance is building the system the right way from day one. This whitepaper covers the upstream disciplines — requirements clarity, lifecycle selection, per-unit programmer practices, and continuous integration — that make system-level testing cheap and fast rather than the only thing holding a release together.
Read →
Where this leads
- Service · Quality engineering
Software Quality & Security
Independent test programs, security testing, and quality engineering for systems where defects cost real money.
Learn more → - Solution
Risk Reduction & Clear Decisions
Quality programs and decision frameworks that shift risk discussions from anecdote to evidence.
Learn more → - Solution
Reliable Software at Scale
Quality engineering programs for organizations whose software is now operationally critical.
Learn more →
Want this talk delivered in-house?
Rex Black, Inc. delivers every talk on this site as a live workshop, a keynote, or a conference session. Tailored to your stack, your team, and your timeline.