Características de un buen programa

Escrito por -
19 1776

¿Hay cuestiones imprescindibles que debe satisfacer un programa informático?

Hace tiempo estoy tratando de buscar puntos en común entre programas que considero excelentes, siempre hablando desde el punto de vista del usuario, claro, ya que del lado del código son muy pocos los que pueden opinar (además de que pueden existir programas impecables de acuerdo a su código y completamente inusables). He aquí algunas que fuí anotando:

Un buen programa debe ser rápido: Puede tener o no un código optimizado, pero el usuario final debe sentir que para lo que usa el programa el tiempo que tarda en hacer las cosas es normal, un buen ejemplo es el reproductor multimedia Songbird, que puede ser excelente pero por lo que tarda en iniciar para los que solo quieren escuchar una canción lo convierten en una contra que le cava la tumba. Otro buen ejemplo son los visualizadores de imágenes, que deben ser instantáneos al abrir (como Irfanview). Por el otro lado programas profesionales como Autocad, 3Dstudio y demás pueden tardarse otro tiempo en abrir, para ellos tenemos otras pretensiones.

Un buen programa debe ser estable: Una fija es la confiabilidad que debe generar un programa, una buena aplicación no te debe dejar a mitad del camino con todo el trabajo hecho en un procesador de textos, con una cita a punto de concretarse mediante el programa de chat ni con una presentación frustrada delante de decenas de colegas. Y si falla (porque nade es perfecto en esta vida) un buen software debe tener tantas opciones de recuperación como sean posibles (recuperar últimas sesiones, mensajes offline, abrir el último archivo en el lugar donde quedamos, entre otras).

Un buen programa debe ser usable e intuitivo: De nada sirve que programes algo con miles opciones si no las colocas de una manera de que el usuario pueda encontrarlas y utilizarlas. Eso no quiere decir que las miles de opciones estén a la vista como las viejas versiones de Word que mareaban al pobre usuario de oficina. Lo ideal es presentar de una manera accesible los menúes frecuentes y luego juntar todos los demás en un menú avanzado para que, además, los usuarios que se inician con el software no sufran frustraciones tempranas y se vayan adecuando al mismo de una manera paulatina. El botón office fue uno de los primeros ejemplos de ello, que ahora sigue con todos los programas que usan Ribbon, el menú configuración avanzada de NOD es otro. Picasa es un ejemplo genial de usabilidad, tiene de todo, para todo, y se encuentra muy fácil.

Un buen programa debe actualizarse silenciosamente: No hay nada más placentero que ver que Mozilla nos avisa que actualizó a la última versión y que se instalará en el próximo reinicio. Este mismo programa a lo sumo requiere la acción del usuario para actualizar complementos de vez en cuando y es casi el extremo de programas molestísimos como Adobe Reader o Real Player que le preguntan al usuario hasta la hora.

Un buen programa debe ser inteligente: Quizás este punto parezca un poco pretencioso, pero hace unos días estaba hablando con un amigo de algunas características que tiene JDownloader, entre ellas el hecho de que si usas un password para descomprimir un archivo descargado, luego, al bajar otros archivos y en lugar de pedir passwords primero prueba descomprimirlo con los passwords anteriormente utilizados. Esto que parece una tontería (y debe ser sencillo de implementar) es una genial muestra de un programa que va aprendiendo a medida que uno lo va utilizando. Cuanta razón tienen los libros de usabilidad cuando afirman que los usuarios no quieren pensar, quieren todo servido, ya digerido.

¿Que otras características consideras que debe tener un buen programa?

19 COMENTARIOS

  1. Lo indispensable es que te cebe mate, como diría un ex compañero laboral que tuve. Está muy buena la definición que hiciste, aunque yo agregaría una objeción a lo de Inteligente: No tiene que ser TAN inteligente como para no dejarte decidir exactamente qué hacer, y por supuesto de una forma más o menos intuitiva que no haga necesario memorizarse un manual para manejarlo. Las típica opción modo experto/básico, cuando está bien implementada.

  2. Coincido coincido. Yo agregaría algo muy trivial para la mayoría de los lectores, pero dependiendo de qué tipo de aplicaciones, fundamental: Tiene que ser lindo. Y esto tiene que ver con la usabilidad e intuitividad (existe la palabra?) también. Estoy viendo fotos e imágenes practicamente todo el tiempo, y quiero un visualizador que sea agradable a la vista. Muchos traen cantidad de opciones, botones y demás, y la verdad es que yo quiero ver la foto nada más, para editarlas y organizarlas ya tengo otras cosas.
    Pero está claro que no tiene que chocar con todas las otras características. Y el ejemplo es de un visor que encontré (que ahora no logro acordarme el nombre) que era perfecto para lo que busco. Pero no tenía un boton para girar las fotos, ni siquiera estaba la opción. Así que muy lindo todo, minimalista, rápido, pero no me servía. Chau programita, seguimos con el visor de Windows.

  3. ser multi idioma (no hay excusas, todo buen programa tiene una enorme comunidad de usuarios fanáticos dispuestos a hacerlo for free)

    ser configurable. Los muy silenciosos o los muy preguntones no serían molestos si tuvieran opción de “No preguntar más” o “preguntarme la próxima vez”, dependiendo del caso.

    ser minimalista (o sea, KISS) podés agregarle todas las funciones que quieras… pero aparte, y dejarme decidir si las quiero instalar o no. A vos NERO te estoy hablando, no te hagás el boludo.

    respetar los estándares. Todo bien con que tengas tu propia extensión de archivos, pero dejame decidir si la quiero usar o no, y lo estandar debe ir por default.

    ser directo, el que programa un buen programa, es tan genio y visionario, que le ahorra pasos al usuario en la ejecución de las tareas más habituales. Hay algunos programas que uno se pregunta si sus programadores lo usaron alguna vez en sus vidas. Detalles como q guarde la carpeta x defecto donde guardaste archivos la última vez, o no volver a preguntar si la respuesta siempre va a ser la misma o tener al alcance las opciones más usadas, o permitirme agregarlas.

    respetar las convenciones del diseño de interfaces. De hecho, algo que identifica mucho a los malos programas es tener una interfaz “única”, generalmente con mucho color y mal gusto, botones grandes y fuera de lugar, que desentonan con tu theme de windows (sí a ustedes freewares programados en visual basic les estoy hablando). Las páginas llenas de gifs y midi tienen su símil en software de escritorio. A veces hacen lo que prometen, son útiles, pero son tan FEOS que no los usás.

    y en definitiva: un buen programa, es uno que hace lo que promete, de la mejor forma posible. Y nada más.

  4. Tiene que tener dos versiones: una Libre/open source/gpl u otra para windows que haya que pagar.

  5. Iba a decir cosas que estan arriba, pero no vale la pena, así que acá va el comentario flame

    No lo había notado, pero los programas de GNOME suelen seguir esas reglas bastante bien. Por ejemplo, tratan de mostrarte una interfaz “cogelada” lo antes posible, mientras se carga podes apretar los botones, y si lo haces te aparece un cartelito para que esperes, y ahi se ejecuta tu acción. Las cosas que tardan tiempo tienen barras de progreso, aquellas que no no tienen, o tienen una pequeña en la barra de estado. Además la mayoría sique una especie de estandar de UI, y es muy facil usar uno si ya conoces otro. La excepción a esto último es el GIMP. En cuanto a las actualizaciones, el gestor de paquetes se encarga de hacerlo todo de una vez. La verdad, que cada día que usas linux te gusta más.

  6. Capaz y a todo lo expuesto ya por vos y también en los comentarios creo que estaría bueno que el programa tenga la posibilidad de sumarle addons y otras funciones que nativamente no tiene, así cada usuario lo personaliza a su gusto y necesidad.

    Si, yo siempre tengo que romper algo en los programas, sepanlo!

  7. @Gabriel: Coincido. También me parece bueno que cualquier funcionalidad del programa sea un addon desactivable. Si está bien echo el backend, te queda un programa muy estable, ampliable y fácil de mejorar.

  8. Te falto algo muy importante que debe tener todo software que se aprecie de bueno, la tolerancia a los fallos humanos, esto es, si el usuario se equivoca o tiene un error poder corregir. Saludos.

  9. muy bueno… estaba buscando esta informacion

    buen post… o blog…. o como se llaem aqui

    me ayudo mucho

Deja un respuesta