Este ensayo sostiene que la informática no constituye una ciencia y la ingeniería del software tampoco se ajusta al concepto tradicional de ingeniería. El autor parte de una observación: los debates sobre las mejores prácticas de desarrollo de software rara vez se resuelven con criterios objetivos, algo que contrasta con el proceder de la ingeniería civil o la química, disciplinas atadas a las leyes de la física y a la contrastación con la realidad.
El texto recorre las definiciones habituales de ciencia e ingeniería para concluir que el diseño de software no comparte esa sujeción a un mundo externo. La mayoría de los paradigmas y técnicas en disputa son Turing-equivalentes, es decir, capaces de implementar cualquier algoritmo claramente especificado, por lo que el cumplimiento de los requisitos funcionales no sirve para distinguirlos. Solo en campos como la inteligencia artificial, donde las respuestas se evalúan en una escala continua, existen métricas comparativas más cercanas a un laboratorio.
El autor propone que el software se asemeja más a las matemáticas, una disciplina no atada a las leyes físicas y capaz de crear modelos de realidades alternativas con la única condición de mantener coherencia interna. Esta flexibilidad casi infinita para construir universos virtuales explica, según el ensayo, por qué resulta prácticamente imposible una evaluación objetiva del diseño de software: no existe una realidad interna estable que sirva de referencia. El trabajo también aborda la productividad del desarrollador y la influencia de la psicología humana en las decisiones de diseño, y advierte que comparar convenciones de programación exige avances en la comprensión del cerebro, todavía una ciencia inmadura.
