Archivo por meses: octubre 2014

Diseño de aplicaciones web

Actualmente, el uso de la tecnología web es predominante en el desarrollo de aplicaciones informáticas. En la Administración no somos ajenos a esa tendencia y la mayoría de aplicaciones que desarrollamos, ya sean sedes electrónicas o aplicaciones de uso exclusivamente interno, son aplicaciones web.

Una parte fundamental en el desarrollo de una aplicación web es el diseño de su interfaz de usuario, es decir, aquella parte de la aplicación que interactúa con el usuario directamente. No importa lo buena que sea la arquitectura de una aplicación o lo bien que esté programada si su interfaz de usuario no es usable y no responde a lo que el usuario demanda de ella.

Mientras que en el sector privado se cuida mucho el diseño de la interfaz de usuario de las aplicaciones web, en el sector público la tendencia no es tan clara. En el caso de las sedes electrónicas, se ha hecho un mayor esfuerzo en el desarrollo de interfaces agradables y, en aún pocos casos, adaptables al dispositivo desde el que se visualizan pero, ¿es esto usabilidad?

Hay mucha confusión con respecto a lo que significa usable. Mucha gente lo asocia a nuevas tecnologías como CSS3, HTML5 o jQuery ya que estas tecnologías son las que permiten implementar controles avanzados de visualización, como menús que se despliegan y repliegan, ventanas modales incrustadas en la ventana principal, etc.  Con el auge de los smartphones y de las tablets, actualmente decir usable también es decir responsive y adaptative, dos términos que tienen que ver con poder visualizar una interfaz de usuario desde diferentes dispositivos. Esta adaptación del contenido de una página al dispositivo desde el que se visualiza se consigue aplicando media-queries, tanto Javascript como CSS.

Sin embargo, más allá de aspectos puramente tecnológicos, la usabilidad de una aplicación es el grado de efectividad en la utilización que hace un usuario de una aplicación. La usabilidad está fuertemente condicionada por el diseño previo que se haga de la interfaz. Este diseño debe tener en cuenta no sólo la adaptación del contenido al dispositivo o la utilización de unas tecnologías u otras sino, por encima de todo, cómo representar la información de la forma que sea más intuitiva y productiva para el usuario. Esto, que parece trivial, no es una tarea nada sencilla. Tampoco es una tarea que pueda ser llevada a cabo por cualquier tipo de perfil, sino que requiere de gente especializada en el diseño de interfaces y en lo que ahora se denomina la “experiencia de usuario“.

Aunque parece que la tendencia está cambiando, es muy común ver equipos de desarrollo web en los que no existe ningún especialista en el diseño y la maquetación de los contenidos, sino que son los propios programadores los que implementan la interfaz. Aunque puede haber excepciones, los programadores no tienen el perfil adecuado para hacer este trabajo por lo que las interfaces que se desarrollan no son todo lo usables que deberían ser. ¿Por qué entonces se produce esta situación?

La respuesta en mi opinión tiene que ver con la errónea concepción que se tiene de la calidad del software en España, entendida siempre como un lujo. Seguro que habéis oído frases como “si haces tantas pruebas es que te sobra mucho tiempo” o “aquí no vendemos nada, ¿por qué deberíamos invertir en una buena interfaz?”. La respuesta es sencilla, por ahorrar dinero. En una empresa esto es muy importante. En la Administración es más importante aún. Un sistema de integración continua, una buena batería de pruebas unitarias, una planificación o un buen código ahorra tiempo y dinero en el mantenimiento de la aplicación e incluso evitando errores en el mantenimiento de ciertos datos, por ejemplo, tributarios. De la misma forma, una buena interfaz de usuario en una aplicación de uso interno hace que nuestros usuarios trabajen mejor, más rápido, más eficientemente y sin errores. En una sede electrónica, nos acerca al ciudadano más y mejor.

Una buena configuración del desarrollo corporativo de una organización es la existencia de un departamento común de diseño. Este departamento deberá estar a la última en aspectos de usabilidad y deberá implantar las mismas líneas de diseño en todas las aplicaciones corporativas, de forma que el usuario de las aplicaciones tenga una misma experiencia de usuario en todas ellas. Una forma sencilla de hacer esto es utilizar plantillas de diseño. Estas plantillas son diseñadas por expertos y son fácilmente adaptables a las aplicaciones. Además, hacen uso de las últimas tecnologías en materia de interfaces de usuario (jQuery, CSS3, HTML5, Enquire.js) y se actualizan cada poco tiempo. En una entrada posterior os comentaré como hemos implantado nosotros una plantilla basada en Bootstrap.

 

Digitaliza

Como comenté en una entrada anterior, una parte fundamental del proyecto de digitalización ha consistido en el desarrollo del sistema de información DIGITALIZA, encargado de la obtención de copias electrónicas de documentos en soporte papel.

El primer paso que se llevó a cabo en el desarrollo de la aplicación de digitalización fue la realización de un análisis de los productos existentes en el mercado para el escaneo y gestión de documentos. Después de realizar proyectos piloto con algunos productos y compartir nuestra experiencia con organismos de la Administración que contaban con estos productos, optamos por llevar a cabo un desarrollo propio. Las razones fundamentales de esta decisión fueron las siguientes:

  • Los productos analizados eran muy caros de licenciar. La mayoría de ellos se licencian por servidor y por número de páginas escaneadas al año que, en nuestro caso, son casi 40 millones.
  • Muchos de los productos eran cliente-servidor, arquitectura que complicaría el despliegue y actualización de la aplicación en una organización tan grande y tan distribuida geográficamente como la nuestra.
  • Muchos de los productos exigían “casarse” con un proveedor de escáneres, lo cual complica y encarece futuras adquisiciones de suministros.
  • La implantación de muchos de estos productos exigía un desembolso adicional (además del coste del licenciamiento) por la adaptación del software a nuestros tipos documentales y a nuestro sistema de registro y tramitación electrónica.

Como contrapartida a estas desventajas, los productos comerciales de digitalización suelen venir acompañados de un módulo, más o menos potente, para la categorización automática de documentos y la extracción de información. El desarrollo de estas funcionalidades es complejo y requiere de mucho conocimiento en la materia, por lo que, en caso de necesitarlas, merece la pena adquirir el producto. Sin embargo, en nuestro caso, debido a la diversidad de documentos que recibimos y a su escasa formalización, las pruebas realizadas no fueron del todo positivas.

Después de considerar todos estos aspectos, se optó por un desarrollo propio y a medida que nos permitiese tener un mayor control del proyecto y del software a implantar.

El producto a desarrollar debía cumplir los siguientes requisitos fundamentales:

  • Integración con la herramienta de registro y tramitación electrónica existente.
  • Adecuación al Esquema Nacional de Interoperabilidad.
  • Integración con el Catálogo Documental mediante la generación de documentos electrónicos firmados electrónicamente por el organismo.
  • Cumplimiento de nuestras normas de digitalización.
  • Adecuación al procedimiento de digitalización diseñado previamente.
  • Integración con los escáneres existentes previamente en la organización de muy diversas marcas y formatos (A4, A3 y A0).

Además de estos requisitos funcionales la herramienta debía tener un alto grado de usabilidad con el objetivo de agilizar, en lo posible, el pesado proceso de digitalización. Al apostar la organización por una tramitación electrónica, es de vital importancia que el proceso de digitalización se realice lo antes posible para, así, no penalizar los tiempos de la posterior tramitación.

Un aspecto importante a destacar de DIGITALIZA es que, al contrario que la mayoría de aplicaciones de digitalización, es una aplicación web y no cliente-servidor. Además, la conexión con el escáner se produce a través de un driver estándar TWAIN y no a través de un driver propietario, lo que permite conectar con multitud de escáneres de diferentes marcas y nos proporciona independencia total en la contratación de suministros.

Desde el punto de vista tecnológico, la aplicación de digitalización presenta la siguiente estructura:

Arquitectura de Digitaliza

Como se puede apreciar en la imagen, el servidor está desarrollado con tecnología Microsoft, en concreto MVC .NET, sobre una base de datos Oracle. Para el desarrollo de la aplicación .NET se ha implementado una arquitectura en n capas siguiendo las recomendaciones de Microsoft e incluyendo, en la capa de presentación, ciertas adaptaciones a MVC.

Respecto a la parte cliente, esta se ejecuta en cualquier navegador web, siendo Internet Explorer la opción corporativa. Se ha intentado trasladar, en lo posible, el procesamiento de los documentos al cliente, liberando al servidor de esa carga. Igualmente, se ha hecho especial hincapié en maximizar la usabilidad de la interfaz y reducir en lo posible el tiempo de la digitalización.

La interfaz de usuario está implementada con HTML5 y CSS3 sobre Bootstrap, lo que permite adaptar el contenido a la pantalla desde la que se visualiza el documento (la organización cuenta con pantallas de 17 y 19 pulgadas con formato 4:3 y 16:9). La implementación de funcionalidades en la interfaz se ha llevado a cabo usando JavaScript y JQuery, así como AJAX y JSON para la transmisión asíncrona de información entre el cliente y el servidor.

La conexión con el escáner se realiza desde la parte cliente, mediante un ActiveX (o un Plugin en navegadores distintos a Internet Explorer) que implementa la conexión TWAIN con cualquier escáner instalado en la máquina. Este componente es el encargado de obtener las imágenes electrónicas del escáner y componer el contenido del documento electrónico. El componente permite la edición de las imágenes obtenidas y su categorización automática mediante OCR y códigos de barras, lo cual agiliza el proceso de digitalización.

Al realizarse el procesamiento de los documentos en el navegador, se reduce la carga del servidor y no se compromete la seguridad de dichos documentos, al no tener que almacenarlos en local como sí ocurre con muchos productos de digitalización basados en un cliente pesado. Esto sin embargo tiene su contrapartida en las transferencias de ficheros que hay que realizar de forma continua entre el servidor y el cliente sobre http. Para reducir los problemas de memoria que esto ocasiona, se ha implementado un envío fragmentado de los documentos de forma asíncrona.

En el desarrollo de la aplicación se ha hecho especial énfasis en el sistema de pruebas, realizándose pruebas unitarias de distintas capas de la arquitectura e implementándose pruebas automáticas de navegación con la herramienta Selenium.

Por último, merece la pena destacar que, como en el resto de aplicaciones del área,  la gestión del proyecto se lleva a cabo con SCRUM utilizando Team Foundation Server como herramienta para el seguimiento de las tareas y el control de la configuración.

La digitalización de documentos

Otro de los grandes proyectos que hemos llevado a cabo en la organización en estos años ha sido la digitalización de la documentación en soporte papel.

La digitalización del papel ha sido el último paso dentro del proyecto de documento electrónico y se ha llevado a cabo una vez que el resto de documentos de la organización eran producidos en formato electrónico y no en papel. Ha permitido a la organización disponer de toda la documentación de los expedientes en formato electrónico, lo cual es indispensable para el posterior intercambio de documentos y expedientes electrónicos tal y como establece el Esquema Nacional de Interoperabilidad (ENI).

El objetivo fundamental del proyecto es la generación de copias electrónicas de toda la documentación recibida por la organización en soporte papel. Ésto, a su vez, permite conseguir los siguientes objetivos estratégicos:

  • Tramitación electrónica de los procedimientos.
  • Intercambio de documentos y expedientes electrónicos entre las propias dependencias de la organización y con otros organismos.
  • Destrucción del papel una vez digitalizado.

Todos estos objetivos se encuadran dentro de la denominada “oficina sin papeles“.

En nuestro caso, la digitalización de la documentación suponía un reto muy diferente al acometido por otros organismos de la Administración Pública. En primer lugar, la digitalización debía ser la base para la tramitación electrónica de los procedimientos, por lo que debe llevarse a cabo antes de la tramitación y no después. En segundo lugar, el volumen de información en papel  que recibe la organización es muy alto, pudiendo alcanzar los 40 millones de páginas al año. En tercer lugar, la documentación recibida es de muy diversa índole y formato, pudiendo ser, desde documentos manuscritos en A4, a planos o fotos en A0. Por último, la digitalización del papel debía realizarse de forma distribuida en las dependencias de la organización, cada una de las cuales se encuentra ubicada en una provincia distinta.

Una vez consideradas todas estas peculiaridades, el primer paso del proyecto fue el establecimiento de unas normas técnicas de digitalización y de un procedimiento organizativo.

Las normas de digitalización especifican aspectos técnicos de la digitalización, como los formatos admitidos, la resolución mínima, la profundidad de bit o color, el uso de OCR, los tipos de documentos a digitalizar, etc. Estas normas son de obligado cumplimiento por la propia organización, así como por los organismos que colaboran con nosotros mediante la remisión de documentos. Un aspecto interesante de estas normas, y que es bastante complejo de determinar, es el grado de separación y clasificación de la documentación a digitalizar. Una separación más exhaustiva mejora la tramitación pero dificulta y ralentiza el proceso de digitalización. Es importante llegar a un equilibrio en este sentido.

El procedimiento de digitalización recoge los cambios organizativos necesarios para llevar a cabo la digitalización del papel en cada dependencia de la organización. Uno de los puntos claves en la implantación del proyecto ha sido conseguir encajar la digitalización dentro de la operativa diaria de cada centro de trabajo. Para esto, se han creado grupos específicos de digitalización compuestos por personal especializado en el registro y clasificación de la documentación, en la digitalización y en el posterior archivo del papel.

Otro aspecto muy a tener en cuenta en este sentido es vencer la resistencia al cambio de los usuarios en lo que se refiere a la tramitación electrónica. Para vencer la resistencia es fundamental dotar a los usuarios de potentes herramientas informáticas para tramitar y digitalizar de forma que encuentren, en los medios digitales, más ventajas que inconvenientes.

Una vez fijadas las normas y el procedimiento, el siguiente paso fue el desarrollo de Digitaliza, la aplicación para la obtención de copias electrónicas de los documentos en soporte papel. Esta aplicación, de desarrollo propio, debía integrarse con las herramientas de registro y tramitación ya existentes en la organización. Es una aplicación web capaz de conectarse con casi cualquier escáner, lo cuál nos dota de mucha independencia en futuras compras de dispositivos de digitalización.

En cuanto a los dispositivos de digitalización, además de reutilizar los escáneres existentes en la organización (con el gran ahorro que esto conlleva), se ha dotado a cada centro de digitalización de escáneres A4, A3 y A0.

El último paso del proyecto fue su despliegue en los distintos centros de trabajo de la organización que, como he comentado antes, se encuentran distribuidos a lo largo de la geografía española. En primer lugar se hizo una implantación piloto en varias dependencias para asegurar el correcto funcionamiento de la aplicación y del procedimiento organizativo de digitalización diseñado. Posteriormente, y con la experiencia de la implantación piloto, se elaboró un calendario de despliegue para el resto de dependencias.

Actualmente, la organización digitaliza toda la documentación que recibe en soporte papel, lo que nos permite tramitar electrónicamente, intercambiar expedientes entre nuestros centros de trabajo por medios electrónicos y mejorar la gestión del archivo. Hemos aumentado significativamente, a través del uso de herramientas electrónicas, la eficiencia y la calidad de los servicios que prestamos y hemos avanzado un paso más hacia el intercambio de expedientes electrónicos con otros organismos de la administración.