Las variables globales solo deben usarse para un estado verdaderamente global. Usando una variable global para representar algo como, por ejemplo, la latitud del límite norte del mapa solo funcionará si solo puede haber un "límite norte del mapa". Si en el futuro es posible que el código tenga que trabajar con varios mapas que tienen diferentes límites del norte, es probable que el código que usa una variable global para el límite del norte deba ser revisado.
En las aplicaciones informáticas típicas, a menudo no hay una razón particular para suponer que nunca habrá más de una cosa. Sin embargo, en los sistemas integrados, tales suposiciones son a menudo mucho más razonables. Si bien es posible que se solicite a un programa informático típico que admita múltiples usuarios simultáneos, la interfaz de usuario de un sistema integrado típico se diseñará para que un solo usuario interactúe con sus botones y su pantalla. Como tal, en cualquier momento tendrá un solo estado de interfaz de usuario. Diseñar el sistema de modo que múltiples usuarios puedan interactuar con múltiples teclados y pantallas requeriría mucha más complejidad y demoraría mucho más en implementarse que el diseño para un solo usuario. Si nunca se solicita al sistema que admita a múltiples usuarios, se desperdiciará cualquier esfuerzo adicional invertido para facilitar dicho uso. A menos que sea probable que se requiera soporte multiusuario, sería más prudente correr el riesgo de tener que descartar el código usado para una interfaz de usuario único en el caso de que se requiera soporte multiusuario, que pasar más tiempo agregando multiusuario. soporte al usuario que probablemente nunca será necesario.
Un factor relacionado con los sistemas integrados es que, en muchos casos (especialmente en lo que se refiere a interfaces de usuario), la única forma práctica de admitir que haya más de uno sería utilizar múltiples subprocesos. En ausencia de alguna otra necesidad de subprocesos múltiples, es probable que sea mejor usar un diseño simple de un solo subproceso que aumentar la complejidad del sistema con subprocesos múltiples que probablemente nunca sean realmente necesarios. De todos modos, si agregar más de uno de ellos requeriría un gran rediseño del sistema, no importará si también requiere volver a trabajar el uso de algunas variables globales.