Cómo elegir software (III)

Hace unos días comenzaba una serie de entradas sobre cómo elegir software. En la primera comentaba que había que establecer unos criterios para poder comparar productos, y en la segunda decía que podíamos establecer dos categorías de criterios: los funcionales y los no funcionales.

Decía también que los criterios funcionales se podían enumerar echando un vistazo a los catálogos de los fabricantes, estudiando las comparativas de productos online y viendo qué cosas nos podrían interesar para nuestro producto.

Quedaba pendiente revisar los criterios no funcionales. Vamos allá.

Criterios no funcionales

Hay muchos criterios no funcionales para elegir un coche: la potencia, la facilidad de conducción, la red de talleres, la velocidad punta, el coste de los recambios, el consumo en ciudad, ...

Podríamos inventariar todos los criterios no funcionales para el software y ordenarlos alfabéticamente, por ejemplo, y obtendríamos entonces una lista larguísima que nadie usaría, como la de la Wikipedia. O podríamos también echarle un vistazo al estándar IEEE 830 obteniendo también una lista que nadie usaría.

La verdad es que los criterios no funcionales del software, como los de los coches, tienen un interés diferente conforme el software va pasando de manos. A un señor que arregla las averías en un taller le da igual el consumo en ciudad, pero le interesa que los frenos sean fáciles de revisar. Al señor del concesionario no le interesa saber dónde está el carburador, pero le importa que la tapicería haga juego con el color de la carrocería, para poder venderlo mejor. Desde luego que hay criterios no funcionales que comparte toda esta gente (la seguridad, por ejemplo), pero hay otros que sólo interesan (o que tienen más importancia) en una fase del ciclo de vida del coche, o del software.

Parece entonces razonable listar los requisitos no funcionales en función de quién usa el software, o de su fase en el ciclo de vida, y así lo vamos a hacer aquí, que para eso el blog es mío y hago lo que quiero. Además, y como el objetivo es describir una técnica para elegir el software con fundamento, pues vamos a empezar por el principio, por donde más dinero se gasta. Esto es, por el final (qué lío): llevando el software al desguace.

El software en el desguace

Cuando queremos llevar un coche al desguace tenemos que quitar la silla del niño, vaciar el maletero y guardar los documentos de la guantera.

Con el software pasa lo mismo, pero resulta que tenemos un porrón de documentos en la guantera y por eso la operación puede ser muy, pero que muy cara.

Si uno quiere llevar al desguace su tienda virtual, o su blog, o su programa de contabilidad, y sustituirlo por uno nuevo entonces hay que intentar salvaguardar toda la información y volver a introducirla en el nuevo software de forma automática (después de todo nadie quiere volver a teclear a mano todos los apuntes contables o todas las entradas de un blog de los últimos años, ¿no?).

Lo cierto es que la información suele ser más longeva que el software y es, también, más valiosa. A la hora de elegir software conviene saber cómo y dónde se va a almacenar la información, en qué formato se va a guardar, con qué estructura y si la información es buena o no.

Podemos entonces empezar a listar los primeros criterios no funcionales que podemos usar para elegir el software:

  • Integridad de la información: una cualidad del software que nos indica si la información que almacenamos con él es correcta o no. ¿Hay apuntes contables mal introducidos? ¿Hay entradas de blog duplicadas? En nuestra tienda virtual, ¿hay información obsoleta de artículos o de usuarios? ¿Hay pedidos sin cliente o entradas de blog sin fecha? Que el software sea capaz de mantener la integridad de nuestros datos durante toda su vida es, quizá, uno de los criterios no funcionales más importantes a la hora de elegir software.

  • Accesibilidad de la información: una cualidad del software que indica cuán fácil es obtener la información almacenada: saber dónde está la información (en cintas, en discos, en bases de datos, en cajones, en la nube), cómo está estructurada (en archivos, en tablas de base de datos, en servilletas, etc.) y qué formato tiene (si está en Word, o en XML, o en un formato oscuro y propietario que nadie conoce).

La mayoría del software comercial presenta unos niveles de integridad de la información bastante altos, porque en caso contrario no se vendería o recibiría demandas judiciales por sus clientes. Es un criterio no funcional importante, pero en general no es preocupante.

Sin embargo la accesibilidad de la información es harina de otro costal: hay productos comerciales que hacen difícil saber cómo/dónde/en qué formato está almacenada la información, de modo que actúan como "agujeros negros": uno sabe que los datos están allí, pero no puede sacarlos. Es como si nuestra información estuviese secuestrada. Por eso, antes de elegir software (un programa de contabilidad, o de control de stocks, o un blog, o una tieda virtual) conviene comprobar que vamos a tener fácil acceso a nuestra información, que es nuestra, y que vamos a poder "exportarla" a otros sistemas diferentes. Que no haya secuestros, vamos.

Los dos primeros criterios no funcionales para elegir software podrían entonces resumirse así:

Elijamos software que nos permita elegir un software diferente en el futuro, y que mantenga nuestra información de forma íntegra.

Que nuestro software tenga una nota alta en estos dos criterios no funcionales nos permitirá llevar el software al desguace con la tranquilidad de que la factura no nos va a salir muy cara.

La próxima parada es la anterior al desguace: el taller. ¿Qué criterios no funcionales nos permitirán asegurarnos de una factura baja cuando llevemos el software al taller?

Pues lo veremos en la próxima entrega, que esta es ya muy larga.