El desarrollo de software generalmente busca alinear las especificaciones con la implementación.
Por esta razón, diseñamos el software para que cumpla con las especificaciones y luego lo implementamos basándonos en ese diseño. Posteriormente, utilizamos pruebas para confirmar que la implementación satisface las especificaciones, corrigiendo la implementación si hay discrepancias, o clarificando las especificaciones si son ambiguas.
Esto puede denominarse ingeniería basada en especificaciones e implementación.
En contraste, al hablar de software hoy en día, la experiencia del usuario está adquiriendo una importancia creciente.
Además, es el comportamiento del software, y no su implementación, lo que realmente da forma a la experiencia del usuario.
Por lo tanto, fuera del marco de las especificaciones y la implementación, existen la experiencia y el comportamiento.
En consecuencia, creo que vale la pena explorar el concepto de Ingeniería de Experiencia y Comportamiento, que se basa en la experiencia y el comportamiento.
Liquidware
La Ingeniería de Experiencia y Comportamiento es un enfoque poco realista con los métodos tradicionales de desarrollo de software.
Esto se debe a que requiere mejorar la experiencia del usuario sin límites estrictos ni divisiones funcionales en las especificaciones. Una solicitud casual de un usuario para mejorar su experiencia podría incluso requerir desechar todo el software desarrollado previamente.
Por otro lado, si llega un momento en que la automatización del desarrollo de software basada en agentes que utiliza IA generativa se vuelva común, la reconstrucción de sistemas de software completos será aceptable.
Además, en una era así, al equipar el software lanzado con un chatbot de ingeniero de IA, es concebible que entremos en una era de "liquidware", donde la interfaz de usuario se pueda modificar para adaptarse a las preferencias de cada usuario.
Liquidware significa algo más flexible que el software tradicional, que se adapta perfectamente a cada usuario individual.
Cuando llegue esta era de desarrollo automatizado y liquidware, el paradigma de ingeniería de especificaciones e implementación quedará obsoleto.
En su lugar, haremos la transición a un paradigma de Ingeniería de Experiencia y Comportamiento.
¿Qué es el Comportamiento?
En pocas palabras, el comportamiento es un estado que cambia con el tiempo.
Y probar el comportamiento no es otra cosa que probar este estado que varía en el tiempo.
Además, probar el comportamiento no se trata de confirmar la alineación con una especificación que define cómo transitan los estados. En su lugar, el comportamiento se prueba basándose en la calidad de la experiencia del usuario.
Por supuesto, si hay errores que hacen que el sistema realice operaciones no deseadas por el usuario o el desarrollador, estos también afectan significativamente la experiencia del usuario. Por lo tanto, las pruebas de comportamiento incluyen la verificación de la conformidad funcional y la validez funcional.
Después de cumplir con estos requisitos funcionales básicos, el enfoque se desplaza a la prueba de un comportamiento de alta calidad desde la perspectiva de la experiencia del usuario.
La Experiencia Definitiva
Para los seres humanos, la experiencia de usuario definitiva es el control del propio cuerpo cuando se está en buen estado de salud.
Considere lo siguiente: todos los días, controlamos un cuerpo complejo, pero altamente limitado y con restricciones, que pesa decenas de kilogramos, utilizándolo para actividades con un propósito.
Si uno intentara controlar un sistema tan pesado, complejo y con tantas restricciones para realizar actividades deseadas, la experiencia sería típicamente bastante deficiente.
Sin embargo, mientras no nos sintamos indispuestos, movemos este cuerpo pesado, complejo y con tantas restricciones como si no tuviera peso, lo manipulamos tan fácilmente como un mecanismo simple, y no le prestamos atención a sus limitaciones y restricciones como si no existieran.
Esta es la experiencia definitiva.
Al buscar un comportamiento de alta calidad, es posible que se pueda ofrecer una experiencia a la par con el control del propio cuerpo.
En otras palabras, incluso si un sistema es lento en procesar, complejo en funcionalidad y tiene muchas limitaciones y restricciones, se podría lograr una experiencia de liquidware completamente libre de estrés.
En Conclusión
El liquidware definitivo ofrecerá una experiencia similar a la de nuestros propios cuerpos.
Dicho liquidware se convertirá en algo parecido a un cuerpo para nosotros.
Cada vez que el liquidware definitivo prolifere o sus funciones sean mejoradas, se sentirá como si nuestros propios cuerpos se estuvieran extendiendo.