Disclosure: I'm long Tesla.
Let's talk about Beta software. This will be an important foundation for the rest of the discussion. Here are the basic stages of software development:
Pre-alpha - major sections of the software are incomplete and/or non-functional. Formal testing has not started.
Alpha - Most of the features have some level of functionality although they may have major known defects. Testing begins, but much of the test plan may be blocked (due to the known defects).
Beta - All of the features have some level of functionality. There are still known defects, but testing on all features can formally begin to uncover the unknown defects. There may be many beta releases, e.g., beta1, beta2...
Betas come in several flavors:
Private beta - aka Closed beta. Software is kept internal to the development team and quality team. No one outside of this circle has access to the bits.
Limited release beta - a select group of customers or development partners can run the software with the understanding that it still has known and unknown bugs. This software must not be used in a production environment without safeguards. The users must assume the software will do the worst possible thing, at the worst possible time (remember there are known and unknown defects).
Open beta - aka Public beta. This is just like a limited beta except now anyone (with the minimum hardware requirements) can install and use the software with the understanding that it has defects, testing is still ongoing, and it is not yet approved for production release, safeguards must be in place.
Release Candidate (RC) - The known bugs are minor and the product could be released with these known documented defects. Testing is still ongoing and new defects are likely to be found. There may be many RC releases as defects are resolved and testing restarts to ensure that a "fix" didn't break something else (aka cause a regression).
Production Release - All verification tests are passed. The known defects are documented. The software is stable. Unknown defects may (likely) still exist (this is nearly always true in software development).
Field Hardened - Software that's been deployed for a significant time. It's had multiple bug fix releases and security patches. The defect report rate had declined to near zero. No new features (that may bring new bugs and vulnerabilities) have been added recently...
What Is FSD? (software lifecycle)
In the software lifecycle, Tesla's Full Self Driving (FSD) Beta is a limited release beta. The driver must maintain vigilance and assume it will do the worst possible thing at the worst possible time. The licensed driver behind the wheel is the safeguard. As Tesla rolls the beta out to more people, based on their safety score, FSD is still a limited release beta (just a little less limited). FSD is still years away from being considered Field Hardened. This is the level that it would need to be before the steering wheel could be removed.
Levels Of Autonomy
The Society of Automotive Engineers (SAE) International has defined 5 levels of driving autonomy (6 levels if you count level 0, no autonomy). But they've made a major error in this scale in that it includes both human-piloted levels with various levels of assistance and it includes levels of fully autonomous systems where humans have no responsibility for driving.
I think this has contributed to some of the confusion about autonomous driving.
In Levels 0 - 2, the human is responsible for everything. Levels 1 and 2 may include assistance systems such as ABS, cruise control, lane following, traffic-aware cruise control, blind-spot warning, lane change assist, traffic light indication, sign recognition, and more. However, even with all of these assists, the driver must maintain awareness of their surroundings and they are responsible for the vehicle's actions.
Let's come back to level 3 in a moment.
Level 4 - 5: in these levels, the vehicle does all of the driving. There may not even be a steering wheel. Level 4 would be geo-fenced (or otherwise limited), such as an airport shuttle to/from long-term parking. Whereas Level 5 would be able to drive to any location that a typical person could drive, think robo taxi.
Part of the problem is that these have radically different levels of human responsibility, yet they are on the same scale.
Level 1-2 should be called Driver Assistance (DA) levels and it could be expanded far beyond 2 levels based on how many assistance features are offered.
Level 4 and 5 should be called Autonomous Drive (AD) levels.
Creating independent categories, based on who's responsible (human-piloted or machine-piloted) removes any confusion as to who is responsible for piloting the vehicle. You have either a driver assistance system or an autonomous system. The responsibility is clearly defined.
Level 3 - I promised we'd come back this one. Level 3 is not really a separate level, it's a level that operates at Level 4 some of the time and Level 2 at other times. This level operates autonomously in some areas but requires a human driver when it leaves this well-defined geofenced zone. The human is given adequate warning before the vehicle leaves the geofenced zone and there's a clear hand-off protocol from machine-pilot to human-driver. An example could be a semi-truck that can drive on the freeways with no human supervision; however, once it leaves the freeway, it can no longer pilot itself, and a human pilot is required. When the human is driving, it may have driver assistance features. This is a DA-AD hybrid system.
Geofencing is the simplest example, but other operational domain parameters (such as time-of-day or weather) may also require the human to take over.