El International Software Testing Qualifications Board ofrece una excelente definición preliminar definición de calidad: «El grado en que un producto de trabajo satisface las necesidades declaradas e implícitas de sus partes interesadas». Sin embargo, a pesar de todas sus virtudes, esta definición sigue necesitando más aclaraciones para comprender plenamente todas sus ramificaciones empresariales. Aquí es cuando la noción de valor resulta útil.
El valor es subjetivo
Aprendemos de la praxeología que los individuos deciden lo que quieren o necesitan (fines) y cómo esperan alcanzar esos fines (medios). En otras palabras, tanto los «fines» como los «medios» se deciden subjetivamente, lo que significa que son elegidos por seres humanos individuales que tienen distintos antecedentes, necesidades, deseos y preferencias.
Desde la revolución marginal del siglo XIX, todos los economistas serios coinciden en que el «valor» de los bienes y servicios es subjetivo. Jesús Huerta de Soto explica en su introductoria obra La escuela austriaca: orden de mercado y creatividad empresarial que, propiamente hablando, el «valor» corresponde a cómo el individuo actuante evalúa sus fines mientras que la «utilidad» se refiere al grado en que los medios satisfacen sus fines, de nuevo según juicios individuales.
La calidad es una utilidad subjetiva
Teniendo en cuenta este marco teórico, podemos afirmar sin temor a equivocarnos que la calidad es una noción subjetiva. Las partes interesadas eligen un producto en lugar de otro con la expectativa de que les irá mejor si eligen ese producto alternativo. Pero la elección no es un mero «capricho» porque, en última instancia, todo programa informático debe satisfacer una necesidad empresarial real. Sin embargo, resulta que hay varias formas de satisfacer las mismas necesidades con distintos bienes y servicios, como la sed puede saciarse con agua o con refrescos, y es aquí cuando entran en juego las preferencias y deseos individuales.
Dado que el desarrollo de software es una empresa muy humana, no puede escapar a la lógica de la acción humana. Más concretamente, el análisis económico de la calidad del software no puede evitar referirse a la actividad de quienes participan en su realización. Como tales, las partes interesadas siguen el axioma de la acción: los individuos adoptan un comportamiento intencionado cuando pueden prever una situación futura mejor que la actual y toman sus decisiones en consecuencia. Es evidente, por tanto, que la calidad está estrechamente relacionada con la noción microeconómica de utilidad, ya que se refiere a los medios. Como sabemos por la teoría de la utilidad marginal, existe en grados: hay productos que nos ayudan a alcanzar nuestros objetivos mejor que otros porque, sencillamente, preferimos unas cosas a otras (o la ordinalidad del valor).
En un escenario así, encontramos una capa extra de complejidad que ya aborda nuestra definición de partida: «necesidades declaradas e implícitas de sus partes interesadas».
«Declarado» significa básicamente lo que el cliente dice que necesita, siguiendo su imagen mental del producto o la expectativa de cómo será. Aunque en ocasiones estas apreciaciones pueden ser inexactas, quedarse cortas o exceder lo que realmente necesitan, las declaraciones resultantes constituyen la base misma de los requisitos del sistema que servirán de documentación de referencia para desarrolladores y probadores a lo largo de todo el ciclo de vida de desarrollo del software.
«Implícito», en cambio, es lo que se deriva natural o lógicamente de las necesidades declaradas, lo que significa que hay algunas necesidades que aún no se han descubierto.
Aspecto empresarial del testeo
Los ingenieros de control de calidad, también llamados «probadores», son lo que Israel Kirzner llama «empresarios», aunque en un sentido impropio. En su opinión, emprender es descubrir creativamente las necesidades y deseos humanos y satisfacerlos con bienes y servicios.
Ahora bien, al principio puede parecer extraño que aplique este concepto a un campo tan ajeno como el de las pruebas de software. Al fin y al cabo, los empresarios son los que hacen avanzar la economía. Son ellos los que coordinan los procesos de producción, en lugar de limitarse a participar en ellos, como hacen casi siempre los ingenieros de control de calidad. Sin embargo, de forma muy parecida a los empresarios, los ingenieros de control de calidad descubren información implícita que el cliente o el equipo de desarrollo nunca han declarado explícitamente, ya que estos ingenieros participan en un proceso creativo de descubrimiento.
Como el destacado especialista en calidad James Bach dijo, las pruebas son «intrínsecamente exploratorias». Los ingenieros de control de calidad desentierran conocimientos tácitos que no se dicen ni se escriben y que no se pueden formalizar, razón por la cual las pruebas no se pueden automatizar del todo, ya que se refieren a un saber práctico y no a un saber científico. Además de las pruebas unitarias y las pruebas de interfaz de usuario, los ingenieros de control de calidad se concentran principalmente en las pruebas de integración, que es otra forma de decir pruebas de transmisión de datos. Los ingenieros se aseguran de que haya un correcto intercambio de datos entre componentes y sistemas y, por tanto, desempeñan un papel crucial de coordinación.
Hay que tener en cuenta que todos los sistemas informáticos son, en el fondo, sistemas de información. Estos sistemas se ocupan de cómo las personas pertinentes obtienen la información que necesitan en los momentos adecuados. Sin embargo, no se pueden reducir las aplicaciones informáticas a un simple procedimiento matemático —en el que se procesa una entrada para obtener una salida— como si los únicos puntos relevantes de análisis y crítica fueran las entradas y las salidas. Por el contrario, se descubre mucha información sobre el propio proceso, ya que los probadores crean nueva información al encontrar defectos (bugs) desconocidos hasta entonces, aportar ideas útiles sobre el estado del sistema y mejorar la comunicación entre sistemas a su paso.
Testeo, calidad de datos y conocimientos
Los conjuntos de datos son información, y la información interpretada es conocimiento. El «problema del conocimiento», tal y como lo planteó Friedrich Hayek en su obra fundamental «El uso del conocimiento en la sociedad», indica que el principal problema económico no es simplemente cómo hacer el mejor uso de la información ya disponible (como plantea la economía neoclásica), sino cómo obtener la información relevante para el proceso de toma de decisiones. En palabras del propio Hayek «Es un problema de utilización del conocimiento que no se le da a nadie en su totalidad».
Aunque nadie en una compañía lo sepa todo sobre ella, los datos completos siguen siendo necesarios porque ninguna empresa puede tener éxito con datos malos, y el software existe precisamente para salvar esa distancia. Las empresas de éxito son aquellas que sobresalen en la predicción del futuro, y la calidad de los datos es esencial para lograr este objetivo. Aquí, obviamente, la ciencia de datos y la analítica modernas tienen un enorme papel que desempeñar a la hora de informar las predicciones empresariales cualitativas con datos cuantitativos reales, aunque históricos. Al mismo tiempo, la actividad del científico de datos está limitada por la propia calidad de los datos. Como dice el refrán, «basura entra, basura sale».
En cierto sentido, toda garantía de calidad ha sido siempre —en parte, si no totalmente— garantía de calidad de los datos. Dado que los sistemas de software existen para resolver un problema de información empresarial, la garantía de calidad consiste principalmente en garantizar que los datos se crean, actualizan, acceden, almacenan, transmiten y eliminan de forma correcta y segura. Por supuesto, también intervienen aspectos no funcionales, como el rendimiento o la seguridad, pero lo importante es siempre la calidad de la información y todo lo demás gira en torno a ella.
Dado que la calidad del software es la utilidad que las partes interesadas obtienen del producto informático al resolver sus necesidades de información explícitas o implícitas, la labor de los ingenieros de control de calidad es garantizar la calidad del producto, pero no definirla: al fin y al cabo, eso lo deciden el cliente y el mercado.