¿En qué aspectos el mundo real del software es más complejo que el campo de los algoritmos?

La diferencia es que los problemas no se dan y las respuestas “correctas” a los problemas aparentemente observados no siempre son soluciones apropiadas.

El espacio de cualquier solución apropiada particular para un problema del mundo real no es paramétrico; es decir, no se le dan todos los problemas y posibles soluciones, y tiene limitaciones económicas y políticas que no son evidentes de inmediato. El campo de los algoritmos es una reducción del software del mundo real; comienza cuando puede plantear un resultado deseado algorítmicamente, y termina una vez que tiene esos resultados, pero antes de que se pongan en práctica y tengan que lidiar con las consecuencias.

¿Qué querrá el usuario entonces? ¿Qué sabremos cuando hayamos observado suficientes estudios de usuarios para saber que los usuarios importantes no harán algo para avergonzar? ¿Hemos hecho compromisos que nos obligarán a hacer algo antes de saber qué es lo correcto?

Lo que el diseño de algoritmos deja sobre la mesa, en términos de diseño de software del mundo real, es el diseño de sistemas.

No siempre es así, pero la investigación y el desarrollo de algoritmos académicos generalmente no tienen una fecha límite que puede costarle a la compañía millones si no lo hace. También es a menudo la diferencia entre dar una explicación rápida de una idea y desarrollar cada detalle y comprender cada ramificación; piense en la diferencia entre dar instrucciones a alguien a un restaurante y conducir por el tráfico.