&gt; <i>there wasn&#x27;t any mention if they were a) necessary,</i><p>They were not. It is never <i>necessary</i> to have 10,000 global variables. If you have 10,000 global variables you are systematically Doing It Wrong. (That&#x27;s not to say it&#x27;s uncommon. From my experience I strongly suspect that it&#x27;s a very common practice.) As one of the witnesses put it, quite correctly IMO:<p><i>&quot;And in practice, five, ten, okay, fine. 10,000, no, we&#x27;re done. It is not safe, and I don&#x27;t need to see all 10,000 global variables to know that that is a problem,” Koopman testified.</i><p>Trying to justify this is like trying to justify not having a bug tracker. Which, BTW, they didn&#x27;t.<p>&gt; <i>b) implemented correctly,</i><p>There&#x27;s no way to check 10,000 global variables to see if they&#x27;re implemented correctly, and that&#x27;s <i>the entire point</i>.<p>&gt; <i>and c) out of how many variables in total?</i><p>That is completely irrelevant.<p>&gt; <i>they claimed that every software within the system can access them to me this sounds that your stereo or the rain sensor for the wipers can override data for the breaks,</i><p>This was the ECU, it only controls the engine, not the radio or the wipers. It has tasks for stuff like monitoring the engine and wheel speeds, the accelerator and brake pedal positions and controlling the fuel injection. And all of those tasks were only an extra header file and a typo away from stomping on one of the 10,000 global variables belonging to another task, but that isn&#x27;t even the issue. The issue is that there is no way to trace the flow of data in the system because it&#x27;s completely unstructured.<p>&gt; <i>but that might be true only if everything is running within a single application.</i><p>Welcome to the world of embedded RTOSs, where <i>everything is running within a single application</i>. It&#x27;s not a PC. &quot;Applications&quot; aren&#x27;t a thing. There&#x27;s certainly no memory protection.