miércoles, 25 de agosto de 2010

Elementos funcionales de los sistemas.

Hoy me planteaba que los sistemas que hoy día están en marcha, tanto en instituciones u organismos públicos como en empresas u organizaciones privadas, en general, han quedado obsoletas, debido a que no aprovechan los mecanismos de información que nos ha dado la web 2.0, sin llegar a pensar en el futuro próximo, que ya sería una entelequia. Lo más grave es que, incluso los sistemas que se pueden implantar en un futuro cercano, ya están construidos ó por lo menos definidos, tampoco se acercan a este punto, ni de cerca.

Debido al conocimiento de los mismos, por años de experiencia, que no por otra cosa, pensé que podría hacer un decálogo de las cosas que a mi entender deberían tener los sistemas en un futuro cercano para aprovechar todas las oportunidades que nos ha brindado el mundo 2.0. De esta forma no me quedaría en lo de la gente que critica, pero no da razones o alternativas, como sucede a menudo.

En primer lugar me planteo una serie de obviedades a día de hoy, que si que es verdad que cumplen la mayoría de los sistemas 'actuales':

- El sistema, debe ser un sistema web.
- El sistema debe poder comunicarse vía webservices con otros sistemas.
- Debería estar implementado, bajo una arquitectura SOA.
- Debería cumplir con los estándares de interfaces, asumidos en la web 2.0. Cumpliendo con los estándares de accesibilidad (AA), RIA, ...
- Generalización de conceptos como los de:
- Personas. Debe existir un registro único (entidad) de las personas en el sistema (ya sean personas físicas ó jurídicas). Independientemente de que a posteriori, se disponga de datos propios de cada especialización (proveedores, usuarios, clientes, ...).
- Propiedades históricas. Cada vez que se altere el valor de un item de cualquier entidad, este debería almacenarse, para a posteriori, poder consultar dicha alteración así como los metadatos asociados a la misma (usuario, fecha, hora, ...).

A partir de aquí me centraré por núcleos funcionales comunes a la mayoría de los sistemas:

- La forma de identificar a una persona, creo que han cambiado radicalmente con la aparición de las redes sociales. Esto implicaría que de una persona deberíamos almacenar los datos que nos proporcione su perfil en las distintas redes, salvo que no esté en ninguna de ellas (aspecto que hoy día debe ser un procentaje mínimo). Es decir, yo debería poder establecer la conexión de cada persona con sus múltiple perfiles en las distintas redes sociales a las que pertenezca. Creo que a nadie se le escapa, que para conocer a una persona puede ayudar mucho saber sus distintos perfiles e incluso saber sus aficiones, su imagen, e incluso lo que publica en su muro (si es que lo tiene abierto). Esto que a día de hoy se hace, buscando a dicha persona en Google, debería de ser agilizado al máximo.

- La forma de introducir una dirección, debería realizarse siempre mediante google maps u otro servicio similar, lo que facilitaría los procesos posteriores, tanto a nivel de conocimiento de dónde se ubica, evita errores de transcripción, facilita las posibilidades posteriores de información por zonas geográficas, posibilita la conexión con aplicaciones que manejen este tipo de información, como generación de rutas, comparación con precios medios de la vivienda, renta per cápita, clima de la zona, ... Es decir va a posibilitar una explotación, a nivel de BI, más que aceptable.

- Posibilidad de linkage de los ítem fundamentales a webs dónde se encuentren datos que los complementen ó incluso que los describan. Si por ejemplo, estamos hablando de artículos, webs (urls) dónde estén descritos sus características e incluso sean actualizadas bien por el fabricante concreto, la comunidad, ... A veces no los artículos pero sí sus compentes, esto son reflexiones que deben hacerse en función de las características de los mismos.

- Como reflexión generalizada deberíamos platearnos al crear una entidad, como está reflejada esta en la web 2.0 y en función de esa respuesta articular los mecanismos necesarios para enlazar dicha información que le podría resultar útil al usuario que la maneje.

- Cualquier sistema debería poder actualizarse (nuevos plugins ó incluso actualización de versión) mediante un acceso web, incluyendo éste los mecanismos de seguridad pertinentes. En este aspecto, a mí particularmente, me gusta mucho el planteamiento de Magento Connect Server. Lo que podría implicar a su vez un nuevo modelo de negocio, dándole valor a dichos plugins.

- A cualquier cosa susceptible de pago, debe añadirse la opción de pago online , vía las soluciones de pago online, Servired, Paypal, Ceca, ...).

- Si el sistema maneja documentos comerciales, estos deben poder comunicarse bajo los métodos Facturae y UBL, como mínimo.

- Por supuesto cualquier sistema debe permitir, acceder a la información incluida en el mismo, bajo webservices, con los mecanismos de seguridad pertinentes.
En otro grupo incluiría la posibilidad que, aunque costosa, creo será básica en un futuro próximo:

- Fechas. Debería establecerse un calendario a nivel de cualquier sistema, que pudiera informar en pasado, presente y futuro de las cosas que han pasado, ó pasaran.

A partir de aquí iré completando el modelo en futuras entradas y , por supuesto, se aceptan sugerencias/correcciones que ayuden a perfeccionar el modelo ...