Software de calidad

El viernes 20 de julio volví a un  Alfredos.rb. Si sois programadores Ruby en Madrid y no habéis estado en uno, reservad una comida de viernes para ir.

En este Alfredos.rb vino Agustín Cuenca y, aunque estaba en el extremo opuesto de la mesa, hubo un momento en el que  la conversación pasó a ser sobre software de calidad. Según Agustín, un software de calidad es aquel que cumple con los requisitos, tanto de funcionalidad como de tiempo. Por ilustrarlo con un ejemplo, si lo que se necesita es un programa que haga A, B y C y se necesita en 12 horas, el churro que te sale en dicho tiempo es software de calidad con tal de que cumpla con los requisitos. Si después se necesita ampliar, los requisitos han cambiado por lo que la condición “de calidad” también.

Este enfoque tiene varios puntos positivos pero, sin duda, con el que me quedo es el siguiente:

  • Es objetivo. No cabe un “en mi opinión”. ¿Cumple los requisitos? Sí. No. Si sólo cumple una parte no es software de calidad, es algo deficiente, carente de ella.
Como principal punto negativo cabe destacar:
  • No es inherente al código. Tanto es así que no puede tener menos que ver con él. La denominación de calidad va atada a un “contrato” en el que se especifican los requisitos. Así un software de calidad hoy, puede no serlo mañana.

En el rato de charla, yo comenté que mi opinión de software de calidad no era ése, sino que habría que añadir, como mínimo, que fuese mantenible. Agustín dijo en un momento dado que la definición de calidad en el DRAE es precisamente que cumple los requisitos. Puesto que no soy un Eminem que se lee el diccionario para mejorar sus rimas por las noches, me quedé con la duda hasta bien entrada la madrugada.

Busqué en el DRAE calidad. Según dicho diccionario, de calidad significa “Dicho de una persona o de una cosa: Que goza de estimación general.”. Seguramente Agustín se refiriese a la cuarta acepción, “Condición o requisito que se pone en un contrato.”, pero ésta se refiere a un sustantivo y no a una locución adjetiva, por lo que no se puede aplicar al caso.

Aunque no esté respaldada por la RAE -al fin y al cabo, por definición, el diccionario va por detrás del uso actual- la definición dada por Agustín es útil, pero no creo que refleje lo que, al menos algunos, tenemos en la cabeza cuando hablamos de que algo es “de calidad”. En el caso del software, no estoy seguro de que la calidad sea algo inherente al código; aunque tampoco creo que sea algo que depende únicamente de un contrato o una especificación.

¿Qué es software de calidad? No tengo una respuesta que satisfaga, pero seguramente esté un justo medio aristotélico entre ambas posturas. No espero una definición universal, algo que hace tiempo aprendí a no buscar fuera de las matemáticas. Al fin y al cabo, hay algunas poco satisfactorias dentro de ella.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *