viernes, 20 de septiembre de 2013

Qué es, por dentro, una aplicación informática

Recientemente intentaba explicar a una persona que es una aplicación informática y me daba cuenta de que no es un concepto fácil de exponer.  Lo intento en este artículo.

No me refiero al resultado, esto es, un conjunto de programas con los gestionar unas tareas, sino a sus componentes.  ¿de qué está hecho una aplicación?

Hace un tiempo la respuesta hubiera sido clara.  Una lista de códigos en un lenguaje de programación, lo que se llama los 'fuentes' de la aplicación.  Pero eso es una visión demasiado simplista.  Por ejemplo, nosotros hemos cambiado totalmente el código de algunas aplicaciones, pero hemos mantenido una serie de conceptos y una estructura que nos ha costado mucho tiempo elaborar.  En algunos casos el coste de esos conceptos y estructura supera a la de desarrollo del código.

Lo que hago es recoger de forma muy resumida un documento en el que se recogían los 10 componentes de nuestra aplicación GESTION-4100.  Tan resumida que coloco en un par de folios lo que se explicaba en más de un centenar. Espero que sirva para responder a esa pregunta que intentaba explicar: ¿Qué es, por dentro, una aplicación informática?.

Estos son las diez cosas en las que clasifico una aplicación informática

  • Organización
    El esqueleto de todo.
  • Conceptos teóricos
    Muchos de los conceptos que manejamos, tales como albaranes o artículos con comunes a la mayoría de aplicaciones de gestión. Otros son más específicos de nuestra aplicación, tales como personas, incidencias o ciclo de compras/ventas. Hay que considerar que los conceptos habituales los manejamos a veces con ciertas características propias. Por ejemplo, usamos el concepto de cliente, pero no como un fichero, sino como un atributo de nuestro concepto de personas. Estos conceptos forman parte de la aplicación, de forma que la distinguen de otras del mercado y son un componente importante de su resultado.
  • Tecnología
    Nos referimos a los elementos técnicos tales como el gestor de base de datos, los lenguajes de programación y otros componentes. Es una elección importante que puede afectar al resultado, aunque hay una amplia gama de tecnologías muy distintas pero cuyos resultados son casi los mismos. Sin embargo algunas tecnologías propietarias sí conducen a diferencias grandes.
  • Estructura de Datos.
    Es la materialización de los conceptos y su organización. Más o menos viene a ser la estructura de la base de datos. La diferencia es que en algún caso la base de datos es un compromiso entre nuestra estructura teórica y la programación. A todos los efectos vamos a considerarla equivalente a la estructura de Base de datos. Por tanto esto incluye las tablas que usamos, sus estructura y los tipos de los campos.
  • Interfaz
    Uso el término en un sentido amplio y distingo entre unas reglas generales (de alguna forma similar a las aplicaciones gráficas actuales) que se aplican en toda la aplicación, unas reglas específicas para los distintos componentes de la interfaz y específicas de algunos puntos. El diseño y puesta a punto de la interfaz es fundamental para una aplicación y aunque es una labor abstracta, que con posterioridad debe ser ejecutada, tiene un coste importante y afecta de forma sustancial a los resultados.
  • Procesos
    Los procesos son descripciones de tareas que realiza la aplicación, tal como facturar los albaranes pendientes.
  • Programación
    Esta parte son los fuentes de la aplicación. Es necesario teorizar también sobre criterios de programación. Hace unos años, en los comienzos de la informática de gestión, se hubiera considerado la parte fundamental de la aplicación, considerando el resto como detalles. En absoluto es así.
  • Documentación
    Entiendo la documentación en un sentido más amplio que el Manual del Usuario. La documentación afecta de forma importante al uso.
  • Servicios
    No me refiero a los servicios informáticos que prestamos sobre la aplicación, sino mucho más. Una de las ideas novedosas que hemos aportado desde ESTUDIO INFORMÁTICA en los últimos años ha sido una mayor integración entre los servicios y la aplicación. De momento este concepto nuestro es raro, supongo que con el tiempo será habitual. Consiste en que el programa se usa para realizar determinadas tareas que en algunos casos las realiza el propio ordenador, en otras ordenadores de otras organizaciones y en otras personas. Para nosotros un servicio a veces no se distingue de un periférico: La aplicación envía órdenes y se hacen tareas.
  • Marketing
    Por último, la marca y otras cuestiones de marketing forman parte de la aplicación. Tanto que algunas aplicaciones han pasado a liderar un mercado por este apartado pese a ser malas en el resto.