¿Por qué las computadoras y la electrónica de consumo muestran códigos de error en lugar de simplemente decirle qué está mal y cómo solucionarlo?

Hay muchas razones diferentes, pero aquí hay algunas para que su mente apunte en la dirección correcta.

Una razón es que es común que una condición de error particular tenga múltiples causas raíz posibles. Luego se requiere la intervención humana para reducir cuál es la causa raíz real exacta.

Otra razón es el costo. Agregar memoria adicional para lógica adicional e información detallada sobre mensajes de error / instrucciones de reparación agrega costos. También debería presupuestar el espacio de almacenamiento para manejar varios idiomas si un producto en particular se va a vender en todo el mundo.

Un ejemplo de dónde se cruzan el costo y la función es su horno de microondas. No necesita, ni desea, una pantalla en su microondas que pueda mostrar largas cadenas de texto de información. Su microondas solo necesita mostrar el tiempo y la información básica relacionada con el modo / temperatura / tiempo de cocción / etc. En una pantalla tan pequeña y limitada en algo como su microondas, es mucho más práctico tener un código de error como “P012” parpadeando que desplazar las palabras “Fallo de magnetrón. Lleve al centro de servicio” lentamente por la pantalla:

¡Espero que ayude!

Para agregar a las otras excelentes respuestas:
1) Porque el código de error no es para ti.
2) Demasiados detalles pueden ser un riesgo de seguridad

TL; DR: en los casos en los que simplemente no puede corregir un error usted mismo (que, si no entiende / no puede descubrir lo que significa el código, si es que siempre es así), le da a un técnico un servicio preciso y conciso información sobre lo que salió mal, y no necesitan intentar interpretar lo que quieres decir con “¡Hice X y no funcionó!”

~~~~~~~~~~~~~~~~~~

Con frecuencia uso un código de error (arbitrario) para que, si un usuario informa un problema, sepa exactamente en qué parte del código se produjo el problema. (Por lo general, visualizo un mensaje que dice “Si el error continúa, comuníquese con el soporte técnico citando el Error X”)

Un ejemplo: en mi trabajo anterior, creé una interfaz web para que los usuarios publicaran una actualización de estado en sus Facebook / Twitter / etc. de una sola vez. Cuando se ‘envió’ un nuevo estado, ocurrieron varios pasos: la actualización del estado se guardó en la base de datos; Luego se le dijo al objeto ‘remitente’ que lo enviara a las redes. Si esto fallaba, no había nada que el usuario pudiera hacer aparte de volver a intentarlo, y todo lo que realmente sabrían es que “la actualización no se envió”. Pero, ¿sucedió esto al intentar guardarlo en la base de datos, o hubo un error en el objeto emisor?

Entonces, en referencia al # 1 anterior: decirle que facebook.php tiene un error, o que no estoy escapando correctamente de las cadenas citadas es bastante irrelevante. Incluso si sabe lo que está sucediendo, es poco probable que pueda hacerlo funcionar alterando su actualización de estado (además, ¿por qué debería hacerlo?).

Con el n. ° 2 : mostrarle mi consulta SQL podría permitirle encontrar un exploit (de hecho, un error de seguridad común es que los desarrolladores dejan activados los mensajes de error para los sitios de producción, y estos son explotados por piratas informáticos).

Sin embargo, si contacta al soporte técnico citando un código de error, no tengo que intentar adivinar qué problema tuvo cuando me dijo: “¡Mi actualización no apareció en Facebook!” Puedo saltar a esa sección de mi código, ver exactamente lo que hace (¿Guardar en DB? ¿Publicar en FB?), Y luego ir desde allí.

Ruban Lawrence da varias buenas razones; no es necesario para la operación habitual, el costo de agregar tanta información adicional y que un síntoma puede tener múltiples causas raíz. Hace muchos años, no había memoria o espacio físico en un dispositivo para mostrar incluso un mensaje de error, por lo que algunos equipos fueron programados para emitir pitidos o luces intermitentes para indicar que las cosas estaban funcionando o que había un problema.

He trabajado en PC desde que salieron en 1981 cuando era niño, fui ingeniero de sistemas centrales / de rango medio durante 13 años, luego apoyé los módems de Internet / teléfono de telecomunicaciones y la televisión por cable durante varios años, y ahora soporto las computadoras para la TSA, por lo que he solucionado muchos problemas diferentes, pero el proceso es muy similar para cualquiera de ellos. En la mayoría de los casos, es más fácil para un cliente llamar a un 800 # que hacer su propia solución de problemas, ya que la experiencia con la tecnología realmente varía. Algunas personas no quieren solucionar problemas incluso con alguien en el teléfono y otras personas quieren trabajar en un problema hasta que se adentren realmente en el problema y se atasquen o hasta que rompan el dispositivo.

Además, si la resolución de problemas es más profunda que simplemente reiniciarla y ver si funciona, el proceso tendrá que repetirse si el cliente tiene que llamar para obtener más asistencia técnica, y eso solo complica el proceso. MicroSoft a menudo incluye información de solución de problemas, pero desafortunadamente a menudo no es tan útil. Por ejemplo, cuando Outlook no puede conectarse a Internet, mostrará un mensaje que indica un DNS (error del servidor de nombres de dominio). Si bien esto es “ técnicamente ” correcto, cuando brindaba soporte de módem con frecuencia recibía clientes que informaban que nuestro DNS no funcionaba, lo que no era el caso. De ser así, ninguno de nuestros clientes podría resolver los nombres de los sitios web y tendría que usar direcciones IP. Esto sucedió una vez cuando trabajé allí, y nos inundaron las llamadas telefónicas. Entonces, si alguna vez sucede, lo sabríamos, sin embargo, regularmente recibimos que los clientes informen esto como el ‘problema’ cuando en realidad su Internet simplemente no funcionaba para ellos.

Desde el punto de vista de la prestación de asistencia técnica, es mucho peor que un cliente piense que está realizando su propia solución de problemas cuando no está haciendo nada más que enturbiar las aguas en lo que informa. Con frecuencia, si un cliente cree que sabe cuál es el problema, no está dispuesto a dejar que el técnico solucione los problemas y simplemente les dirá lo que creen que debería solucionarse. Por supuesto, esto no es muy productivo y, con frecuencia, sea lo que sea que un cliente informe sobre lo que cree que es el problema, realmente no es el problema. Por lo tanto, en el esfuerzo por poder resolver los problemas de manera efectiva, las instrucciones a menudo guían al cliente a través de un reinicio, lo que soluciona muchos problemas, pero de lo contrario, haga que el cliente llame al número 800 para problemas más complejos.

Sería demasiado complicado y desperdiciado en el usuario promedio. ¿Alguna vez has intentado seguir la “ayuda con este problema” en Windows? Hace un par de sugerencias en un nivel con la comprobación de las conexiones, luego se conecta en línea para buscar y luego le dice que no puede ayudar. Una persona bien informada que posea los manuales correctos puede buscar el “Error 43” y descubrir qué significa, y una persona realmente bien informada puede examinar el registro y el volcado de la pila de un error crítico y tener alguna posibilidad de rastrear la causa. Sin embargo, si es (como suele ser) un error en alguna pieza de bloatware de terceros, ahí es donde termina el rastro. “Lo sangriento no funciona” es un mensaje de error tan detallado como puede esperar, y “¿Has intentado apagarlo y volverlo a encender?” es tan buen consejo como cualquiera puede dar.