ACMCrossroads / Espanol / Xrds12-4 / 

TigerEvents: un sistema de calendario de eventos en línea por estudiantes para estudiantes

por Chris Jordan, Oliver Baltzer y Sean Smith

Traducido por Julio César Mosqueda Gómez

Introducción

En los últimos años, miembros del capítulo estudiantil de la ACM de Dalhousie "Dal-ACM" han estado trabajando en el desarrollo y mantenimiento de software libre usado por estudiantes. Consecuentemente, ellos han comenzado una sociedad estudiantil en la Universidad Dalhousie para proveer soluciones computacionales para mejorar la vida del estudiante. Desarrollar software para estudiantes es una buena manera para que los miembros de cualquier capítulo estudiantil para involucrarse en sus respectivos campus mientras adquieren práctica en el desarrollo de software y experiencia en la administración de proyectos. TigerEvents es un proyecto de software organizado por los miembros de Dal-ACM; este ayuda a los estudiantes a encontrar eventos que les pudieran interesar en el campus.

Los campus universitarios son un mundo de actividades. En ninguna otra parte de nuestra sociedad encontraremos gente de cada rincón del mundo estudiando campos de cada disciplina. La universidades son lugares donde la gente amplía sus horizontes, y es muy desafortunado que la mayoría de los estudiantes ocupen solo 4 o 5 años en este ambiente. Muchos campus tienen eventos a lo largo del año, organizados por diferentes facultades, departamentos y grupos estudiantiles. Típicamente, hay tanta actividad que es difícil comunicar que eventos están llevándose a cabo en los campus. Además los alumnos frecuentemente olvidan los eventos en los cuales están interesados.

Dal-ACM vio que este problema podía ser manejado por una solución de software diseñada cuidadosamente la cual brinde a los estudiantes nuevos medios para el anuncio y difusión de los eventos. En el verano de 2005, miembros del Dal-ACM desarrollaron TigerEvents [9], un sistema de calendario de eventos de código abierto. Esta aplicación Web permite a los estudiantes y miembros de facultades publicar eventos y realizar anuncios. Las publicaciones son puestas en un formato de periódico en línea y organizadas por fecha, categoría y grupo que la publico. TigerEvents da a los estudiantes, miembros de la comunidad de la Universidad Dalhousie y visitantes una vista consolidada de los eventos del campus.

Aunque existen métodos alternativos para publicitar eventos y hacer anuncios, muchos estudiantes encuentran inconvenientes en ellos que impiden que sean un medio efectivo para la difusión de la información a todo el campus. Estos métodos incluyen:

  • Email:

    Los e-mail masivos son una forma rápida de difundir información con poco esfuerzo. Este tipo de correos son tratados frecuentemente como spam por la mayoría de los estudiantes. Los intentos por ahorrar tiempo agregando muchos temas dentro de un e-mail son solo superficialmente más aceptables, y resultan contraproducentes, dado que es probable que los estudiantes desechen la lectura de un mensaje tal.

  • Carteles:

    Los carteles en avisadores tienen cierta medida de éxito, principalmente debido a elementos visuales que pueden llamar la atención de un lector. Sin embargo, generalmente sufren de una cobertura pobre si no son colocados en los lugares mas transitados. Un preocupación adicional es el tiempo requerido por un individuo para cubrir un área grande. Otra problemática es el promedio de vida de un cartel, dado que son propensos al maltrato de los transeúntes, a la falta de visibilidad al colocar otros carteles encima de ellos y a que los quiten en intervalos regulares.

  • Boca a boca:

    La difusión oral es bastante efectiva usualmente. La premisa es que un buen evento hará correr los rumores sobre él entre cierta gente, que a su vez lo difundirá entre mucha otra. El mayor inconveniente con la transmisión de forma oral es que frecuentemente toma mucho tiempo difundir la información dentro de un grupo grande. Si el evento es repetitivo, entonces este inconveniente disminuye; sin embargo muchos eventos ocurren solo una vez.

  • Sitios Web:

    Los sitios Web son de fácil acceso para cualquier persona con una computadora conectada a Internet. En nuestros días, el acceso a Internet entre los estudiantes es prácticamente un hecho. Además, las computadoras públicas permiten el acceso en muchas partes de un campus, haciendo la consulta de eventos mucho más fácil. Los elementos visuales son fácilmente provistos a los visitantes de un sitio Web. Los inconvenientes de este medio son aun la accesibilidad y las restricciones de tiempo. Si un estudiante no tiene conocimiento de algún sitio que anuncie eventos en particular, aun seguirá perdiéndoselos. Además, visitar todas las paginas Web de las sociedades estudiantiles (existen cerca de 300 sociedades estudiantiles en la Universidad Dalhousie) para buscar eventos es un proceso poco factible.

Este documento presenta la concepción del proyecto TigerEvents y la experiencia ganada tanto en administración de proyectos como en trabajo en equipo durante el desarrollo e implementación en la Universidad de Dalhousie. El objetivo de este documento es dar a otros capítulos estudiantiles de la ACM y grupos estudiantiles una guía en cómo iniciar un proyecto de software libre en sus campus para el beneficio de los estudiantes. Estos proyectos pueden ser aplicaciones nuevas o construir una a partir de alguna ya existente, tal como TigerEvents. Vamos a cubrir partes del proceso de desarrollo del proyecto que salieron bien, discutiremos partes que fueron desafiantes, y finalmente veremos a dónde queremos llegar con nuestras actividades futuras.

Inicios

Los capítulos estudiantiles de la ACM están organizados por estudiantes y son una parte integral de un campus universitario. Por ello se han enfrentado con los mismos problemas de otros grupos estudiantiles o estudiantes. Sin embargo, muchos de estos problemas pueden ser superados con el mismo sistema de software, por ejemplo ayudar en el manejo de la información o simplificar procesos repetitivos. De ahí que debido a sus evidentes y amplios conocimientos en informática, un capítulo estudiantil de la ACM puede ser el ambiente perfecto para desarrollar software "por estudiantes para estudiantes". Se fomenta la participación de los estudiantes en investigaciones sin miedo de censura si llegan a fallar en una actividad extracurricular. Así, tienen la libertad de ganar experiencia valiosa en el desarrollo de software y administración de proyectos sin ningún daño a su reputación o estancia académica si el proyecto falla.

Usualmente, no hay mucho dinero disponible para organizaciones o sociedades estudiantiles que pueda ser usado en desarrollo de software. De esta manera ningún proyecto tiene la posibilidad de operar con los recursos disponibles. Además, los grupos estudiantiles son generalmente muy dinámicos, y los miembros están en constante cambio. De ahí que no pueden proveer ninguna garantía sobre la disponibilidad y el mantenimiento continuo del software que ellos proveen. Para incrementar las posibilidades de que un proyecto sobreviva más allá de su implementación inicial y la graduación de sus desarrolladores originales, el uso del software libre y del código abierto es aconsejable. La naturaleza del software libre es que puede ser usado, modificado y redistribuido sin mayores restricciones y cargos. Esta apertura permite el acceso a su código fuente para cualquiera para realizar modificaciones y mejoras potenciales al software. Para un grupo estudiantil esto significa que ellos pueden construir su propio software sobre algún proyecto ya existente de código abierto y personalizarlo para las necesidades de su campus.

Algunas veces los problemas que pueden ser resueltos con la ayuda de software de computadoras es difícil de identificar. Los estudiantes de una universidad suelen ser muy diversos, y un grupo de infromáticos podría no ser capaz de identificar de forma inmediata problemas que son de gran interés para los estudiantes. Un buen lugar posible para obtener mucho apoyo e información general acerca de las necesidades de los estudiantes, es un centro de estudiantes u organización superior de gobierno estudiantil. A menudo estas organizaciones tienen procesos que podrían simplificarse a través de la automatización. Aun cuando los estudiantes podrían no ser afectados directamente por estos procesos, se verán beneficiados con el incremento de la eficiencia de estas organizaciones. Por ejemplo Dal-ACM comenzó a trabajar con el Centro de Estudiantes de Dalhousie en 2004 y desarrolló el sitio Web TigerBooks [8], de intercambio de libros usados, para ayudar a los estudiantes a encontrar y vender libros usados en el campus.

Trabajar con un centro de estudiantes tiene además el beneficio de ayudar a promover el software y llegar hasta otros estudiantes y sociedades. Esa es la experiencia de Dal-ACM, ya que el Centro de Estudiantes de Dalhousie (DSU) ha sido quien promueve el uso de nuestro software entre los estudiantes, permitiendo a Dal-ACM enfocarse en el desarrollo, mejora y mantenimiento del software.

Haciendo la vida más fácil

Para que el desarrollo de código abierto y el equipo de trabajo tengan éxito, es necesario que una infraestructura apropiada sea puesta en el lugar. Esto incluye administración de proyectos, seguimiento de problemas, administración de la configuración del software, así como buenos canales de comunicación entre los mismos desarrolladores y los usuarios. Existen muchos sitios [3, 4, 5] en la Web que brindan servicios completos para desarrollos de código abierto, incluyendo administración de proyectos, administración de la configuración del software, seguimientos de problemas, listas de correo y hospedaje de sitios Web. Aunque esto no es requerido, se sugiere que se use uno de estos administradores de servicios para disminuir significativamente la sobrecarga administrativa y requerimientos de recursos computacionales de un proyecto.

En Dal-ACM decidimos administrar la mayoría de los servicios de infraestructura nosotros mismos, dado que contamos con suficientes recursos computacionales y administrativos disponibles. Como es un administrador de configuración de software y repositorio de código, nosotros distribuimos Subversion como un sistema de control de revisiones centralizadas. Este contiene todos los códigos fuente de nuestros desarrollos y permite un fácil seguimiento a los cambios. Además, este provee administración de diferentes versiones del código fuente en paralelo, tal como desarrollo concurrente sobre el mismo código base de manera simple.

Dependiendo del tamaño del proyecto y el numero de personas involucradas, un sistema de administración de proyectos podría no ser necesario, pero si es utilizado apropiadamente se vuelve un recurso valioso. Los sistemas de administración de proyectos proveen varios mecanismos para organizar tareas a lo largo del proyecto y documentar el progreso que se ha realizado. Los componentes típicos de un sistemas de administración de proyectos son el seguimiento de problemas y administración de liberaciones. Dal - ACM usa Trac [1] para este propósito. Trac es un sistema de administración de proyectos de código abierto que tiene una buena integración con Subversión. Este provee un sistema basado en tickets para la administración de tareas y problemas. Además, este integra un sistema de documentación de estilo Wiki, un buscador del repositorio de Subversion y un concepto de fechas clave para la administración de liberaciones.

Un controlador de problemas o sistema de tickets de trabajo es también una parte esencial de cualquier proyecto. En nuestro caso, como los desarrolladores no siempre tienen la posibilidad de encontrarse cara a cara, es doblemente esencial implementar un sistema de seguimiento de problemas para que cada uno de los demás miembros sepa en que es en lo que esta trabajando cada uno. Esto los previene de la duplicación de trabajo y por consecuencia ahorro de tiempo. Además este ayuda con la solución de errores de software, ya que cuando un problema es detectado en el proyecto, este se puede poner de inmediato dentro del controlador de problemas en lugar de confiar en que el descubridor lo planteará en el siguiente encuentro.

Tener estas herramientas requiere del uso de un servidor. Afortunadamente para muchos proyectos, una maquina de escritorio estándar es mas que suficiente. Hasta la fecha Dal - ACM usa una computadora de escritorio Pentium 4 como el servidor de desarrollos y una computadora de escritorio Pentium 2 como unidad de producción. Dado que trabajamos con recursos limitados , también usamos Linux y FreeBSD en e servidor de desarrollo y producción respectivamente. Este equipo puede ser bastante económico de conseguir. Una consideración importante es que el servidor debe tomar ventaja de los vínculos de lata capacitad y baja latencia provistos por la red universitaria. Aunque algunas universidades han implementado restricciones sobre el ancho de banda u otras formas de control de trafico, muchas tienen todavía políticas muy liberales, especialmente para maquinas que son importantes para la investigación o tienen un rol legitimo de soporte. El ISP casero de un desarrollador podría tener muchas mas políticas restrictivas para tasas de entrada y salida y uso de ancho de banda.

Ahora comienza la diversión...

Una cosa de la que no debe tener miedo es de tirar trabajos previos. El primer prototipo de TigerEvents fue inicialmente escrito en PHP, pero terminó desechándose. Aunque nosotros preferimos llamarlo el proceso de creación de la primer versión "prototipado rápido" la razón para abandonarlo es que PHP no hace una separación efectiva de la lógica de la capa media de la capa de presentación. Como PHP esta incrustado en HTML, este naturalmente mezcla ambas y esta mezcla lleva a código desordenado. Sin embargo, la experiencia del diseño de la primer versión fue bastante útil. Es muy difícil todos los requerimientos del proyecto sin desarrollar al menos un prototipo de orden de trabajo.

tigerevents1.tiff

Figura 1: Los pasos de alto nivel involucrados en la ejecución de un proyecto de software exitoso.

Para ayudar con el desarrollo, debe reunirse frecuentemente con representantes de su Unión de Estudiantes. Es importante que trates de tener la mayor participación de alumnos como sea posible ya que en ultima instancia ellos serán tus usuarios principales. Eso que se dice, no todo lo que ellos pregunten puede ser sensato. Tu tienes que encontrar un balance entre lo que ellos quieren y que cosas son una solución viable. No aceptar las peticiones de un usuario pone tu proyecto en peligro de no ser aceptado. Por otro lado, demasiada retroalimentación podría llevarte a correr en círculos. Generalmente, Dal - ACM trata de reunirse con representantes de los estudiantes cada par de semanas para revisar nuevas implementaciones y determinar que nuevas características deben ser agregadas. Encuentros cortos frecuentes son mucho mejor que largos y poco frecuentes. Esto hace a tu equipo mas responsable de las necesidades de los estudiantes.

Desarrollo de aplicaciones rápidas con Ruby on Rails

Nuestro segundo intento de desarrollar TigerEvents empleó el marco de trabajo de Ruby on Rails (RoR) [7]. Aun cuando la programación Web ha sido posible en Ruby desde su liberación inicial, este únicamente esta basado en rudimentarias CGI (Common Gateway Interface), el cual define una simple interfaz de comunicación entre un servidor Web y una aplicación Web. Rails es un nuevo marco de trabajo, liberado en Julio del 2004 por Ruby y ofrece un avance significativo para el desarrollo rápido de aplicaciones Web de una forma mantenible. Esto se logra aplicando una variedad de diseños de software y técnicas de programación, tal como Model View Controller (MVC) [2] para el diseño de modelos y metaprogramación.

Usando la meta programación, el RoR es capaz de mapear dinámicamente las propiedades de la base de datos, como son los nombres de tablas y columnas, como símbolos dentro de la aplicación Este mecanismo permite una reducción de código significativa para el acceso y manipulación de datos. De hecho RoR hace posible la inserción modificación y acceso a los registros en una base de datos sin escribir una sola sentencia SQL. Esta característica de RoR lo hace atractivo para el desarrollo Web avanzado ya que el generar menos código se traduce en el desarrollo de aplicaciones en menor tiempo. Por ejemplo, la liberación beta para TigerEvents fue creada en solo un mes por tres alumnos trabajando tiempo parcial.

Además, RoR sigue una estricta metodología MVC que separa la presentación de datos de la lógica de aplicación y de la lógica de acceso a datos. Considerando que la meta programación reduce la suma de código escrito para la lógica de acceso de datos, la biblioteca estándar de Ruby y varias extensiones provistas por RoR reduce la cantidad de código para la lógica de aplicación. La lógica de vista o presentación de los datos es generalmente implementada con el uso de algunas plantillas que incluyen código Ruby para el control mínimo de flujo y acceso a objetos internos del programa. Todos los componentes del modelo MVC interactúan de forma similar a través de RoR de manera que su implementación es independiente de cualquier otra y no hay necesidad de código adicional "para unir ".

Todas estas propiedades de RoR minimizan la cantidad de código que ha sido escrito para la realización de una aplicación Web funcional avanzada con una base de datos. Escondiendo la lógica SQL, separando la implementación de componentes y brindando una biblioteca estándar poderosa, RoR ayuda en la construcción de código más mantenible. El diseño de la propia base de datos es fundamental para explotar todas las características de RoR. Un mal diseño de la base de datos podría resultar en un código inmantenible o cambios a la base de datos que podrían ser muy costosos en términos de las modificaciones de código que tienen que ser realizadas para su corrección. Vale la pena un esfuerzo adicional para diseñar una base de datos que cubra las necesidades de tu sistema.

TigerEvents

TigerEvents es un sistema de calendario de eventos en línea orientado a la comunidad diseñado por miembros de Dal - ACM para cubrir las necesidades de comunicación en el campus de la Universidad de Dalhousie. Este provee a los estudiantes un sitio Web interactivo donde ellos pueden ver eventos próximos y anunciar su propios eventos. Existen tres funciones esenciales para los usuarios de TigerEvents: Consulta de anuncios y eventos próximos, publicar anuncios y eventos próximos para sus respectivos grupos, y administrar sus grupos.

tigerevents2.tiff

Figura 2: Página principal del TigerEvents que muestra a los usuarios los eventos próximos

Para la vista de eventos, TigerEvents es diferente de otros programas de calendarios tradicionales. En lugar de desplegar una tabla de días para un mes en específico muestra cajas de texto, a los cuales nos referimos como selectores, mostrando eventos con propiedades particulares. Por ejemplo, en la liberación inicial de nuestro producto en Dalhousie, teníamos cuatro selectores, uno para los eventos de la Unión de Estudiantes, uno para los eventos de la Sociedad de Alumno, uno para los eventos deportivos y uno para los eventos de la Facultad. Los administradores del sitio, quienes son también representantes de la Unión de Estudiantes, tiene la capacidad de seleccionar diferentes eventos que se encuentran en el selector del titulo. Creemos que esta forma para desplegar eventos es mejor que la forma tradicional de usar tablas por días, además que ayuda a evitar el problema de amontonamiento de fechas cuando existen múltiples eventos publicados en un mismo día y puedan ser mostrados en desorden. Además , sentimos que puede ser mas benéfico para los usuarios ver los eventos por propiedades en particular, no solo por la fecha.

Conclusión

En menos de dos meses, tres estudiantes en el capítulo estudiantil de la ACM en la Universidad Dalhousie (Dal - ACM) fueron capaces de desarrollar la versión Beta DE TigerEvents. Después de dos semanas de pruebas Beta, TigerEvents fue distribuido como otro servicio de la Unión de Estudiantes en la Universidad de Dalhousie (http://my.dsu.ca). Parte de las razones para el desarrollo rápido de TigerEvents puede ser atribuido al marco de trabajo de Ruby sobre Rails (RoR). RoR es un marco de trabajo que provee muchas herramientas para desarrollos Web avanzados y permite un prototipado rápido y una escritura de código fácil. El uso del almacén de código Subversion y el sistema de administración de proyectos Trac fueron también fundamentales para permitir a los miembros del proyecto trabajar eficientemente en conjunto.

En la organización de proyectos tales como TigerEvents por un campus de una universidad, es muy importante estar en contacto regular con la Unión y Asociación de Estudiantes. No solo porque ellos serán una fuente valiosa de retroalimentación, sino porque también ayudan a asegurar que el proyecto va a ser aceptado por los estudiantes. Tener una buena relación con la Unión de Estudiantes es una parte crucial del éxito del proyecto.

TigerEvents es mucho más que un proyecto activo de Dal - ACM. Actualmente estamos buscando incorporar sincronización usando iCalendar. Este es un intento para que los usuarios puedan subir o descargar datos iCalendar. El cual es usado en software de calendarios tradicionales como Microsoft Outlook o Mozilla Calendar. Estamos planeando desarrollar nuevos diseños para TigerEvents, actualmente se tiene diseño simple estilo periódico.

Una característica adicional que puede ser incorporada dentro de TigerEvents para la fecha en que va a ser publicado este articulo es personalizar los selectores. En nuestra versión inicial de TigerEvents 0.5 hay juegos de selectores, cajas que despliegan eventos y anuncios con propiedades dadas. Para la Unión de Estudiantes, Sociedad de Alumnos, Deportes y Facultad. En nuestra próxima liberación intentaremos brindar a los usuarios la capacidad de personalizar que selectores quieren.

Uno de los errores que cometimos mientras desarrollábamos TigerEvents fue no desarrollar ninguna prueba estandarizada. Desafortunadamente pasamos por alto la importancia de tener pruebas sólidas. No tener una colección de pruebas significa que al probar nuevas características o cambios tomara mucho mas tiempo debido a que esto se realiza manualmente. Estamos planeando crear pruebas estandarizadas para TigerEvents en un futuro cercano.

En una nota adicional, nosotros recolectamos todos los datos del calendario que han sido publicados en TigerEvents. Tener estos datos nos permite un manejo mas realista y un estudio de usabilidad riguroso para ver realmente que es lo mas efectivo para el desplegado de datos a través de la organización. El resultado de este estudio permitirá que sean desarrollados mejores diseños.

Nosotros hemos mostrado que es posible para un grupo estudiantil como lo es un capitulo de la ACM desarrollar soluciones computacionales para problemas en su universidad o campus. TigerEvents es uno de los sistemas desarrollados por Dal - ACM. Sentimos que es importante que estos proyectos sean de código abierto también. Ser código abierto permite a un proyecto ser compartido por otros capítulos estudiantiles en otras universidades, y promover el concepto de crear software "por estudiantes para estudiantes"; esperamos que esta idea alcance a otras universidades y colegios y quizá algún día en el futuro haya intercambio de código y proyectos conjuntos entre diferentes capítulos estudiantiles Invitamos a todos los estudiantes a descargar TigerEvents de SourceForge [9], así como a hacer contribuciones al desarrollo.

Reconocimientos

Queremos agradecer a James Richard, miembro del capitulo estudiantil de l ACM de Dalhousie (Dal - ACM) por su contribución a la documentación de usuario y pruebas. también queremos agradecer a Philip Duguay Vicepresidente Interno de la Unión de Estudiantes de Dalhousie por su apoyo para TigerEvents y otros proyectos de Dal - ACM.

Chris Jordan es apoyado por el Consejo de Investigación en Ciencias Naturales e Ingeniería de Canadá (NSERC).

Referencias

1
Edgewall Software: Trac. URL: http://www.edgewall.com/trac/
2
Reenskaug, T. THING-MODEL-VIEW-EDITOR: an Example from a Planning System Xerox PARC Technical Note, May 1979.
3
Rubyforge. URL: http://www.rubyforge.org/
4
Savannah. URL: http://savannah.gnu.org/
5
SourceForge. URL: http://sourceforge.net/
6
Subversion. URL: http://subversion.tigris.org/
7
Thomas, D. and Hansson, D.H. Agile Web Development with Rails. The Pragmatic Programmers LLC, 2005.
8
TigerBooks. URL: http://www.dal-acm.ca/Projects/TigerBooks
9
TigerEvents. URL: http://www.tigeronrails.com/tigerevents

Biography

Chris Jordan (cjordan@cs.dal.ca) es candidato a doctor en la Facultad de Ciencias Computacionales en la Universidad de Dalhousie. Sus áreas de interés en investigación son en Recuperación de Información, Procesamiento de Lenguaje Natural y Minería Web. El es un miembro activo de su capitulo estudiantil local de la ACM, Dal-ACM el disfruta trabajar sobre proyectos de código abierto. Website: http://www.chrisjordan.ca

Oliver Baltzer (obaltzer@cs.dal.ca), es candidato a doctor en la Facultad de Ciencias Computacionales en la Universidad de Dalhousie. Es un geek apasionado que disfruta escribir software de código abierto y está envuelto en cosas que importan.

Sean Smith (ssmith@cs.dal.ca) es un estudiante de la universidad de Dalhousie. El es un fuerte creyente en la actividad de la comunidad, es un miembro activo de la Sociedad de Ciencias Computacionales y del Capitulo Estudiantil de la ACM de Dalhousie.

Traductor

Julio César Mosqueda Gómez (jumosqueda@itesi.edu.mx). Docente de la división de Licenciatura en Informática del Instituto Tecnológico Superior de Irapuato (ITESI), Coordinador de la Academia Regional SUN Microsystems - ITESI, Líder de proyectos de desarrollo de software de la División de Tecnologías de Información y Computo del ITESI. Master en Sistemas de Información y miembro activo de la ACM desde 2001 y Asesor del capitulo Estudiantil de la ACM desde 2003. Actualmente estudio la Maestría en Ciencias de la Educación y en mis ratos libres me gusta resolver problemas de lógica y tocar en la Rondalla Irapuatense (grupo musical) en la ciudad de Irapuato, Guanajuato, México.

Copyright 2004, The Association for Computing Machinery, Inc.