Maven - Más que una herramienta de construcción

June 27th, 2009

Este es el nombre del seminario que he impartido recientemente. Un seminario de introducción en el que he hecho especial hincapié en aquellos detalles que hacen que los que se enfrantan por primera vez desistan con los primeros intentos.

Las transparencias están publicadas en el sitio web oficial de Maven, en el apartado recursos externos.

Maven: más que una herramienta de construcción

El diseño de interacción en Drupal 7

June 24th, 2009

El trabajo que están haciendo en Drupal 7 es realmente bueno. De todas las mejoras que traerá tengo especial interés en la nueva capa de abstracción de base de datos y el diseño de interacción. Para saber más sobre el diseño de interacción en Drupal 7 recomiendo este blog que no tiene desperdicio.

Viendo la siguiente galería de imágenes nos podemos hacer a la idea de las sorpresas que nos encontraremos. Hoy precisamente he mantenido una interesante conversión con algunos de mis compañeros de trabajo sobre el valor de trabajar con prototipos (storyboards, wireframes) y modelos conceptuales, y lo que están aportando en nuestros proyectos. Aun nos queda mucho por aprender, pero creo que lo importante es tener convinción sobre lo que uno está haciendo. Incluso, aunque los resultados no sean todo lo satisfactorios que deseemos.

En el próximo proyecto en el que tengamos la oportunidad, voy en poner en práctica ciertos cambios que no implican un cambio en la metodología de desarrollo pero sí en la ejecución y enfoque de ciertas tareas. Algunas notas previas:

  1. En el roadmap del proyecto no aparecerán milestones con palabras como análisis, diseño, codificación o verificación
  2. El desarrollador de interfaces de usuario trabajará desde el primer momento con el analista, no esperaremos a que los objetivos y funcionalidades estén algo avanzadas.
  3. Ni hablar de domino o modelo de datos hasta que las historias de usuario estén maduras. Con eso me conformo. Conseguir la validación es -casi- una utopía y dar la sensación de que se están cerrando las puertas al cambio.
  4. Los ingredientes: una wiki, un buen móvil para sacarle fotos a los bocetos y la pizarra, rotuladores de colores y un buen taco de A4 y A3 (reciclables por favor).
  5. No sé por qué pero casi todos los diagramas sobre arquitecturas lógicas que he visto representan la persistencia de los datos en la parte inferior y ascienden hasta el lado del cliente pasando por la capa de acceso a datos, modelo, lógica de negocio y controlador. Pues bien, nosotros queremos empezar por arriba. Comenzando por codificar los interfaces de usuario a partir de los prototipos y descender. Habrá un momento en el que habrá gente trabajando en paralelo en las distintas capas. Eso será buena señal.
  6. Vamos a definir un glosario de términos que NO podemos usar delante de los usuarios que nos ayudarán (o no) a conocer lo que necesitan. También hay situaciones en las que los usuarios sólo tienen claros objetivos de muy alto nivel y necesitan que tú les guíes.

Si un arquitecto es capaz de transmitir una idea creativa mediante la proyección, nosotros tenemos que ser capaces de diseñar la interacción entre los usuarios y la información que necesitan gestionar. En más de una ocasión me he encontrado en reuniones para presentar los trabajos realizados (total o parcialmente) y tras presentarlos el cliente te dice claramente que eso no es lo que el tenía en mente o lo que él necesita. Qué le pasaría a un arquitecto si tras construir una vivienda el cliente le dice que eso no es lo que quiere.

Opina vuelve a cruzar el charco

June 23rd, 2009

En esta nueva ocasión Opina cruza el charco para aterrizar en México, concretamente en el Instituto de Ecología, A.C. (INECOL). Hoy he recibido un correo de alguien que trabaja allí felicitando el trabajo y agradeciendo que esté disponible. Es lo que tiene el software libre!

Instituto de Ecología, C.A.

Author: Manuel Jesús Recena Soto Categories: Mis proyectos Tags:

Enganchado a un proyecto

June 15th, 2009

El otro día escribía en mi twitterDar soporte a software no tiene nada que ver con desarrollar software nuevo. Menudo puente con Struts 1.2.x“. La verdad es que sólo hay ver el timeline o las gráficas de STractistics para ver que en los últimos días le estoy dedicando bastante tiempo a uno de mis principales proyectos. Durante los últimos años los esfuerzos se han centrado -principalmente- en ofrecer soporte. Hay clientes que lo han contratado y otros usuarios del proyecto han pedido ayuda y en la medida de las posibilidades se les ha dado.


Desde hace bastante tiempo tengo en mente construir una nueva versión, con nuevo diseño y aprovechando toda la experiencia adquirida atendiendo a los usuarios y viendo las nuevos caminos que se presentan. Mi poca (o mucha) dedicación se ha centrado en la versión 2.x y cada incidencia que sucedía en la versión 1.x me provocaba la sensación de estar retrasándome en la construcción de esta nueva rama. La situación es complicada. Con el poco tiempo libre del que dispongo, cualquier interrupción supone retomar de nuevo el proyecto. Y eso para alguien como yo que es incapaz de decir “no” a nuevos retos, es lo peor.

Sin embargo, he decidido cambiar el enfoque. Para tener la sensación de que el proyecto no está anclado en el tiempo se necesita feedback, y que mejor forma que atendiendo a las peticiones de mejora que tengo anotadas en mi cuaderno, mails, herramientas como uservoice o simplemente ideas que se van ocurriendo . Esto tiene sus consecuencias y una de ellas es no caer en la tentación de refactorizar todo el proyecto porque haya cosas que harías de otra forma. Para eso ya tengo la versión 2.x, y esto significa, que esta nueva rama continuará y algún día verá la luz.

Tengo que reconocer que estoy enganchado a este proyecto. Para mi es un vicio, especialmente si nos referimos en su sexta acepción de la RAE. Verdaderamente he llegado a esta conclusión cuando durante estos días he disfrutado a muerte cerrando tickets y ansiaba el momento de publicar una nueva release. A veces me surge el deseo dejarlo, darle las gracias por todo lo que me ha hecho leer, investigar y luchar, y dar paso a nuevos proyectos.

No quiero ni pensar lo que tiene que sentir un emprendedor todos los días mientras su sueño se desarrolla. Supongo que él también estará enganchado.

Opina: gestor de encuestas 1.2.1

June 12th, 2009

Se acaba de publicar la versión 1.2.1 de Opina: gestor de encuestas. Los principales cambios en esta nueva versión son:

  1. Cuando la aplicación no puede conectar con el servidor de correo (SMTP) se muestra un mensaje para informar al usuario. Se procesa mejor la correspondiente excepción.
  2. La paginación no funcionaba cuando las preguntas y grupos son reorganizados.
  3. Aunque un cuestionario tenga respuestas, se permite la operación ColocarEn (reorganización de preguntas). Antes sólo se permitía subir y bajar preguntas. Lo que sigue sin permitirse es modificar el contenido de preguntas y grupos.

Author: Manuel Jesús Recena Soto Categories: Mis proyectos Tags:

Un problema al que le faltan datos

June 9th, 2009

Hace unos días leía en el blog de kybele consulting una entrada muy interesante sobre métodos de estimación software. En la entrada se hace referencia a unas transparencias en las que hay información con la que estoy de acuerdo, sin embargo, y probablemente sea un problema particular mío, todo eso me suena a pura teoría más propia de una asignura de aquella carrera que tanto me aburrió.

Estoy convencido de que mucha gente pensará que estoy equivocado, y es probable, sin embargo, creo que en cualquier método de estimación de proyectos software (incluidos productos) en el que no tengamos en cuenta a los recursos (al equipo), la incertidumbre será abundante. Muchas veces me veo obligado a planificar proyectos incluyendos costes y la sensación que tengo es de levantar el dedo y ver para qué lado sopla el viento. ¿Cuántas veces no se ha preparando una oferta para un concurso público haciendo ingeniería inversa? El dinero que hay es X, pues a partir de ahí defino mi oferta (planificación, recursos, tecnología, etc).

Una de las líneas de trabajo en los ecosistemas software es la base histórica de proyectos. Realizar una estimación teniendo en cuenta tus recursos (conocimientos, habilidades, especialización, etc) y una base histórica, sigue siendo predecir, pero lo cierto es que cada vez acertamos más. A continuación un breve listado de situaciones que hacen que la estimación se parezca a la realidad con la misma probabilidad que un niño de 3 años escriba en un post-it los números del euromillón:

  1. Optar por un marco tecnológico en el que no se tenga experiencia. Hace un “Hola mundo” no es tener experiencia.
  2. Que en el equipo definido no haya un líder tecnológico. Un líder tecnológico no es un jefe de proyecto.
  3. No disponer de un entorno de desarrollo flexible, cómodo y fácil de usar. Podemos llamarlo Ecosistema Software.
  4. Ausencia de metodología. Si es un proyecto pequeño y un equipo pequeño, el correo electrónico puede ser su ecosistema, pero en el resto de casos, mal vamos.
  5. Reacios a los cambios. Si no admites y pones trabas a que lo requisitos cambiarán, entonces tienes el riesgo de que el mal rollo aparezca.
  6. El proyecto tiene un tamaño que no puedes controlar. Muy simple, pasas de ejecutar proyectos de 3-5 personas durante 3-8 meses a 6-15 personas durante 12-18 meses. Los proyectos que se prolongan en el tiempo tienen ciertos aspectos que no aparecen en proyectos pequeños.
  7. Tu diseño está condicionado por el cliente y no te siente a gusto desde el comienzo. Mal empezamos porque tu crees que deberían de confiar en ti como proveedor de software y dejarte libertad.

Como en todas las listas que hago, siempre se podrían añadir más puntos. Lo dejo para quienes leen este espacio.

Opina: gestor de encuestas 1.2.0

June 7th, 2009

Se acaba de publicar la versión 1.2.0 de Opina: gestor de encuestas. Los principales cambios en esta nueva versión son:

  1. Se ha implementando el patrón OpenSession in View con el fin de controlar las transacciones y así evitar los problemas presentados en algunas implantaciones con gran tráfico.
  2. Se ha cambiado ligeramente la representación visual de las preguntas de tipo matriz para resaltar las filas y mejorar su visibilidad.
  3. Se ha resuelto un pequeño problema en el formulario de autenticación.
  4. Ahora se permiten URLs con HTTS para redirigir a los usuarios.

El punto número 1 ha sacado a relucir un buen conjunto de malas prácticas que se han ido solventando progresivamente durante la evolución de la versión 1.2.0. Hay una versión de demostración disponible para evaluar la aplicación. Ah! y recordar que el sistema de donaciones aguanta mucha carga, no os preocupéis por ello.

Author: Manuel Jesús Recena Soto Categories: Mis proyectos Tags:

buildnumber-maven-plugin

June 7th, 2009

Configuré este plugin hace algunas semana en un proyecto y me encontré con un pequeño inconveniente que me hizo perder unas horas. Hoy me disponía a configurarlo en Opina y me he encontrado con otro inconveniente. Para que no se me olvide, y por si a alguien le sirve, dejo por aquí la configuración que estoy usando:

<plugin>
    <groupid>org.codehaus.mojo</groupid>
    <artifactid>buildnumber-maven-plugin</artifactid>
    <version>1.0-beta-3</version>
    <executions>
	<execution>
	    <phase>process-sources</phase>
	    <goals>
		<goal>create</goal>
	    </goals>
	</execution>
    </executions>
    <configuration>
	<docheck>true</docheck>
	<doupdate>false</doupdate>
    </configuration>
</plugin>

Para es funcione debemos tener correctamente configurado el repositorio SCM:

<scm>
    <connection>scm:svn:http://svn.ebabel.info/repos/opina/branches/1.x</connection>
    <developerconnection>scm:svn:http://svn.ebabel.info/repos/opina/branches/1.x</developerconnection>
    <url>http://trac.ebabel.info/projects/opina/browser</url>
</scm>

Que no se os olvide la entrada developerConnection, sino, no funcionará.

Conocimiento libre?

June 6th, 2009

No es que ponga en duda los benecifios que un conocimiento libre aporta a la sociedad, pero ayer surgió algo que me hizo replantearme -una vez más- ciertas cuestiones en mi carrera profesional.

Anoche, salí de casa para ayudar a descargar unas maletas y le pregunté a mi hermana antes de cerrar la puerta: “¿Tienes las llaves de casa?“, ella me respondió que sí, y automáticamente tiré de la puerta. Justo al cerrar me vino a la mente que me había dejado las llaves puestas por dentro. Os lo estáis imaginando, ¿no? La puerta no se podía abrir desde fuera porque la llave estaba puesta por dentro.

Automáticamente salí a la puerta del residencial donde vivo para buscar el teléfono de un cerrajero. Había varios, elegí el que tenía la pegatina que más me llamó la atención. En menos de 20 minutos, el cerrajero estaba en la puerta de mi casa. Intenté estar atento para ver lo que hacía pero fue imposible. Lo único que escuché fue el ruido de una segueta. En menos de 5 minutos la puerta estaba abierta sin necesidad de estropear ninguna llave ni la cerradura. Me cobró por el servicio 70 euros que pagué con mucho gusto porque me veía en la calle un viernes a las 22:15.

El cerrajero hizo por donde para que yo no conociera lo que había hecho. Estoy convencido que lo que hizo fue algo muy simple, sin embargo, si todo el mundo conociese la forma de hacerlo, él y otros cerrajeros perderían la oportunidad de ganar esos 70 euros por menos de 30 minutos de trabajo (incluyendo desplazamiento).

¿Qué pasaría si en nuestro sector aplicásemos ese planteamiento? No me estoy refiriendo a que Opina deje de ser libre y de fuente abierta, sino a ese conocimiento que uno adquiere con la experiencia del día a día y que es el que nos da valor en mercado laboral.

Donaciones en Opina

May 29th, 2009

Si has usado en algún momento este software, o lo estás usando, seguro que te has ahorrado dinero u horas de desarrollo, para el caso es lo mismo.

Para los tacaños….
Para los que no aprecian el esfuerzo de los demás…
Para los que no comparten su conocimiento y resultados con los demás…
Para todos los demás, PayPal:

Distribuciones en Drupal

May 25th, 2009

En los últimos años he trabajado con distintas soluciones de gestión de contenidos basadas en fuente abierta. Concretamente en los dos últimos años he participado en 4 proyectos, uno de ellos desarrollado sobre Plone, otros dos sobre Drupal y otro bastante grande con OpenCMS. Dentro del Departamento de Software que dirijo nos propusimos fijar un periodo en el que evaluar distintas soluciones. Básicamente para hablar con conocimiento de causa y basándonos en nuestra propia experiencia. Nuestra apuesta por Drupal es clara desde hace tiempo y en ese camino nos encontramos. No hace demasiado tiempo publicábamos nuestro primer módulo de integración entre Drupal y Alfresco. Ahora nos encontramos en un proceso de definición de lo que podría ser una distribución para uno de nuestros principales clientes. El viernes pasado hicimos una presentación del proyecto y parece que fue bien recibida.

Una distribución es un concepto en Drupal no demasiado explotado pero que tiene -desde mi punto de vista- unas posibilidades enormes. Durante la presentación del otro día lo definimos como:

Una distribución de Drupal es una instalación personalizada a nivel de módulos (incluyendo temas) y configuración.

Dicha personalización se basa en perfiles. Las opciones que brindan estos perfiles son muy amplías. Podemos desde inicializar un sitio web con un conjunto de taxonomías base o bien crear ciertos contenidos por defecto. Si nos encontramos en un entorno corporativo los beneficios de diseñar e implementar nuestra propia distribución son muchos. Sólo tenéis que pensar la cantidad de sitios web que tiene una administración pública autonómica, una multinacional y el conjunto de universidades españolas, y que gran parte de ellos, tienen que dar solución una y otra vez a los mismos requisitos (autenticación, gestión de identidades, flujos de trabajo, búsquedas, integraciones, etc.). Digamos que el concepto de distribución en estos tres ejemplos puede ayudarnos a conseguir:

  • Fiabilidad: se garantiza su robustez, seguridad, rendimiento
  • Mantenibilidad: centralizada en un equipo
  • Reutilización: la necesidades comunes se satisfacen inicialmente
  • Rentabilidad: las necesidades comunes sólo se harían una vez
  • Solución horizontal
  • Afianzar módulos básicos
  • Facilidad en las actualizaciones
  • Centralización de los repositorios

Desde luego antes de comenzar lo primero que habría que estudiar cuáles son esos módulos básicos, esos requisitos comunes que constantemente se repiten, necesidades de integración, etc. Pero no sólo debemos pensar en los módulos funcionales, también debemos pensar en los temas. En proporcionar un conjunto de temas base sobre los que construir tu diseño visual tanto para navegadores convencionales como para PDAs o dispositivos móviles.

Al final de todo hay un objetivo mucho más ambicioso, proporcionar una solución de gestión de contenidos adaptada a las necesidades de un entorno y que permita a los responsables de sitio centrarse en lo verdaderamente importante, en sus usuarios y la información.

Lo realmente bueno de Drupal en este sentido es que puedes -si haces las cosas bien- garantizar la compatibilidad con futuras versiones si partes de su núcleo, lo que se conoce como Drupal Core.

QABox, el diablo está en los detalles

May 19th, 2009

La verdad es que ha costado, pero por fin, puedo anunciar el nacimiento de QABox. Aun tenemos que resolver ciertos aspectos técnicos pero eran tantas las ganas que no hemos podido esperar más. Espero y deseo que en breve, tengáis nuevas noticias con respecto a esta iniciativa.

Guía de Accesibilidad y Seguridad en Trámites online

May 16th, 2009

Ayer leía la Guía de Accesibilidad y Seguridad en Trámites online que ha publicado INTECO. Para aquellos que saben de qué va esto de la accesibilidad web, estándares web y administración electrónica aporta poco, sin embargo, es una guía muy útil a la que hacer referencia cuando tratamos con ciertos clientes que aun no saben que esto de la administración electrónica tiene como principal objetivo facilitar las cosas al cuidadano.

A ver si ahora que lo dice INTECO se enteran de que la plataforma de validación y firma electrónica @firma que ahora impulsa el Ministerio de Administraciones Públicas incumple con la norma UNE:139803:2004. Para aquellos que nos queráis leer el documento (19 páginas), he rescatado un fragmento que no tiene desperdicio, especialmente cuando dice “choca” cuando quiere decir “incumple“:

El problema surge dado que para la lectura de estos certificados por parte de un portal Web se debe utilizar tecnología de ejecución dinámica, de mayor potencia que el lenguaje HTML estándar. Tal tecnología consiste en scripts, applets, objetos ActiveX u otros elementos que puedan ser ejecutados en el ordenador personal del usuario en el momento de la operación (para leer el certificado).

La ejecución de estos elementos choca con los requisitos de accesibilidad de la Norma UNE 139803:2004 que hace referencia a que las páginas deben poder utilizarse aunque los scripts y objetos de programación estén desconectados o no sean soportados.

Aquellos usuarios que tengan desactivada la ejecución de este tipo de tecnologías (o no dispongan de ellas) en sus ordenadores personales no podrán acceder a la aplicación. Esto supone, aplicando los criterios de accesibilidad expuestos, un incumplimiento de los mismos. Por lo que evita que la aplicación, y por extensión el portal, sean accesibles.  Respecto a este hecho se entiende que existe una barrera tecnológica que no es posible superar, dado que no hay forma de leer las claves de un usuario prescindiendo de este tipo de tecnologías.

No obstante, se recomienda, en cualquier caso, que frente a la posibilidad de realizar la citada operación online se permitan otras alternativas como por ejemplo posibilitar la realización presencial de la operación, incluir un formulario PDF accesible firmado digitalmente, posibilitar la tramitación telefónica, por correo postal, etc.

El uso de certificados digitales por parte del cuidadano, no el técnico ni el ciudadano con experiencia con los ordenadores, sino aquel ciudadano que por ejemplo se dedica al campo, vive en un medio rural y que quiere consultar el estado de una subvención que ha solicitado yendo a su capital de provincia para entregar un montón de documentos, no ha tenido el éxito. La forma en la que los trámites eléctrónicos requieren autenticarse para verificar que el ciudado es quien dice ser, debe cambiar. El diseño de iteracción ciudadano - administración electrónica tiene problemas técnicos y legales.

Opina aprende catalán

May 15th, 2009

Desde luego, de haberlo sabido, hubiera escrito una única entrada pero desconocía que la Universidad Autónoma de Barcelona también está usando Opina. En esta ocasión han optado por la versión 1.0.8 y cambiado completamente el diseño del asistente de cuestionarios.

Author: Manuel Jesús Recena Soto Categories: Mis proyectos Tags: ,

Opina cruza el charco

May 15th, 2009

Hoy me he enterado que la Universidad Tecnológica de Bolívar (Colombia) está usando Opina. Estas cosas animan. Lógicamente he añadido la referencia a la wiki del proyecto.

Author: Manuel Jesús Recena Soto Categories: Mis proyectos Tags: