Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

16
Desarrollo de portales web con tecnología Drupal y metodologías Ágiles Defensa del Proyecto de Fin de Máster Autor: Carlos Villajos Rodríguez Director: Pedro Pablo Alarcón Cavero

description

Defensa del proyecto de fin de máster

Transcript of Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

Page 1: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

Desarrollo de portales web con tecnología Drupal y metodologías

Ágiles

Defensa del Proyecto de Fin de Máster

Autor: Carlos Villajos RodríguezDirector: Pedro Pablo Alarcón Cavero

Moderador
Notas de la presentación
Buenas tardes, mi nombre es Carlos Villajos y voy a proceder a la defensa del proyecto de fin de Máster titulado ‘Desarrollo de portales web con tecnología Drupal y metodologías Ágiles.
Page 2: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

Índice

1. Introducción

2. Objetivos

3. Tecnología y metodología

4. Desarrollo del proyecto

5. Demo

6. Conclusiones

Moderador
Notas de la presentación
A continuación se enumera el índice de la presentación que consta de una breve introducción, los objetivos del proyecto, una descripción de la tecnología y de la metodología utilizada, las diferentes fases y características del desarrollo realizado, una demostración del producto obtenido y, por último, las conclusiones finales.
Page 3: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

1. Introducción

Moderador
Notas de la presentación
Dentro del Máster en Ingeniería Web se han visto multitud de tecnologías y de estándares. Seleccionar una o varias para el desarrollo del proyecto de fin de máster no ha sido sencillo, pero dado el interés profesional por la gestión de contenidos Web y las metodologías de desarrollo ágiles, se han elegido Drupal y Scrum para su ejecución. Además, se han combinado algunas funcionalidades Web 2.0, y al depender estrechamente de la plataforma Drupal, también se ha utilizado el lenguaje de programación PHP, la base de datos MySQL, el servidor Web Apache, el estándar HTML y hojas de estilo en cascada (o css).
Page 4: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

• 2. Objetivos

Principales:– Desarrollar un proyecto con metodologías Ágiles

– Profundizar en la tecnología de gestión de contenidos Drupal

Secundarios:– Desarrollar una aplicación on-line que dé soporte a una bolsa de trabajo

– Innovadora en cuanto al uso de funcionalidades Web 2.0

Moderador
Notas de la presentación
Como objetivos del proyecto tenemos: Desarrollar un proyecto con metodologías Ágiles: para evaluar sus prácticas, sus valores y sus principios. Profundizar en la tecnología Drupal: como Gestor de Contenidos ampliamente utilizado por organizaciones y empresas con presencia en Internet. Los objetivos secundarios son: Desarrollar una aplicación on-line que dé soporte a una bolsa de trabajo: Y que cubra las ofertas y las demandas de empleo que se puedan producir en un entorno concreto (como puede ser los estudios de post-grado de la escuela). Esta aplicación deberá ser innovadora en cuanto al uso de funcionalidades Web 2.0: Frente a otros productos ya existentes en Internet que se hayan utilizado previamente.
Page 5: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

• 3. Tecnología y metodologíaGestores de Contenido (CMS)

Moderador
Notas de la presentación
Los gestores de contenido (o CMS por sus siglas en inglés), nacen a mediados de los años 90 como una solución a la necesidad de construir y evolucionar los portales en Internet de una manera organizada y estructurada. Rápidamente emergen diferentes productos que van evolucionando las funcionalidades existentes y que se van adaptando en cuanto a la manera en que los usuarios interactúan con la Web, introduciendo en las bases de los productos funcionalidades más avanzadas, colaborativas y Web 2.0 (como puedan ser blogs, wikis, ratings, RSS, etc.) En la línea de tiempo podemos observar diversos CMS existentes en el mercado y el relativo escaso tiempo de vida de para esta tecnología.
Page 6: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

• 3. Tecnología y metodologíaDrupal

Moderador
Notas de la presentación
De este modo nace Drupal en el año 1999 como un simple tablón de anuncios. Drupal evoluciona rápidamente hacia un Gestor de Contenidos Web con una comunidad on-line de desarrolladores y de contribuidores que, a día de hoy, dispone de más de 600.000 personas registradas. La filosofía Drupal se basa en un potente núcleo compuesto de varios módulos base que ofrecen las funcionalidades primitivas y necesarias para cualquier portal de Internet. Sobre él se pueden descargar e instalar otros módulos contribuidos por la comunidad o desarrollados internamente para ampliar las funcionalidades del producto y satisfacer los requerimientos impuestos por los clientes. El diseño gráfico del portal se controla mediante los temas, que permiten modificar cualquier elemento de una página y controlar los estilos visuales que se presentan en todo momento. La arquitectura sobre la que está montada Drupal consta de 5 capas que ofrecen una modularidad y una extensibilidad elevada. Los datos estructurados residen en la primera capa, en la segunda capa se implementa la funcionalidad y el tratamiento de los datos mediante módulos, la tercera capa compone los menús y la estructura de las páginas, la cuarta capa filtra los elementos a mostrar en función de los permisos de los que disponga el usuario, y por último, en la quinta capa se formatean y estilizan las páginas y elementos de visualización del portal. /** El concepto de extensión por enganches (hooks) que permite en un momento dado de la ejecución de Drupal que un módulo cualquiera adquiera el control de la ejecución para procesar sus funcionalidades, el concepto de control de la visualización mediante temas (themes) que formatea los datos generados por los módulos en HTML, y el intensivo uso de estructuras de tipo Array a veces con varios niveles de anidamiento, provoca que diversos entornos y foros critiquen a Drupal y lo etiqueten como a un CMS muy complejo de comprender y con una curva de aprendizaje muy pronunciada. No obstante, una vez asimilados los conceptos y aprendido a trabajar con las estructuras de tipo Array de múltiples dimensiones, la potencia y la extensibilidad de Drupal son enormes y permiten el desarrollo de cualquier funcionalidad deseada. **/
Page 7: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

• 3. Tecnología y metodologíaMetodologías de desarrollo de software ágiles

Moderador
Notas de la presentación
Las metodologías de desarrollo de software ágil nacen a mediados de los años 90 como alternativa al desarrollo tradicional de software. Se centran en el desarrollo iterativo e incremental de productos plenamente funcionales en cortos espacios de tiempo, adaptando continuamente el proceso, promoviendo la estrecha colaboración entre el equipo de trabajo y siendo receptivos con los cambios propuestos por los clientes y los usuarios finales. Las metodologías de desarrollo ágil de software son varias y se basan en principios, valores y herramientas en lugar de en una exhaustiva planificación inicial y una documentación detallada al inicio del proyecto.
Page 8: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

• 3. Tecnología y metodologíaScrum

Moderador
Notas de la presentación
Dentro de las metodologías de desarrollo de software ágil se encuentra Scrum. Aunque más que una metodología se le considera un marco de procesos, es utilizado como base para la gestión de proyectos ágiles. Scrum consiste en un proceso iterativo e incremental que divide la ejecución de un proyecto en varios sprints de unas 2 a 4 semanas de duración. A la finalización cada uno de ellos, se obtiene un producto plenamente funcional que satisface las necesidades acordadas al inicio del mismo y que serán las que más valor para negocio tengan. Las necesidades (o historias de usuario) son gestionadas por el ‘Product owner’ (o dueño del producto) mediante el ‘Product backlog’ (o pila de producto). Este repositorio puede ser modificado en cualquier momento para añadir, modificar o alterar el orden de los elementos que contiene. Al inicio de cada sprint se realiza una reunión de planificación donde se seleccionan las siguientes historias de usuario a implementar. Dichas historias se analizan por el equipo de trabajo con la ayuda del dueño del producto, se estiman sus costes de ejecución y se establecen los criterios de aceptación para cada una de ellas. Una vez cerrado el Backlog del Sprint, éste se mantendrá inamovible durante la duración del sprint. Cada día se celebra una reunión en la cual el equipo de trabajo expone el trabajo que realizó el día anterior, las tareas que se van a realizar en el mismo día y los posibles impedimentos detectados para que sean resueltos lo más pronto posible. También se actualizan las diferentes herramientas de gestión del proyecto, como puedan ser las pizarras de tareas (o kanban), los gráficos de progreso (o burndown), y el estado de las historias de usuario dentro de la pila del sprint. Al finalizar el sprint tiene lugar la reunión de revisión donde se enseña el entregable del producto y se demuestra que cumple con los criterios de aceptación especificados. También tiene lugar una reunión de revisión (o retrospectiva) donde se analizan las cosas que han ido bien en el sprint, las cosas que han ido mal y se toman decisiones que permitan una mejora continua del proceso.
Page 9: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

• 4. Desarrollo del proyecto

- 4 Sprints con una duración total de 8 semanas

- 29 Historias de usuario, de documentación y técnicas

- 75 Tareas de diseño, desarrollo, pruebas, instalación y documentación

- 1 Módulo de Drupal(Jobs)+ 3 submódulos(Jobs_list, Jobs_rates, Jobs_access)

- 1 Tema de Drupal de similar apariencia a la Web de la Escuela

- Páginas informativas, de listados de contenido, de detalle de contenido y de introducción de comentarios

- 14 clases de prueba (10 Selenium WebRC + 4 Drupal Test Case)

- Memoria y defensa

Moderador
Notas de la presentación
El desarrollo del proyecto ha constado de: …
Page 10: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

• 4. Desarrollo del proyectoSprint 0 (Instalación y formación)

Moderador
Notas de la presentación
En el Sprint 0 (o de iniciación) se planificaron las primeras historias técnicas para preparar el entorno y para adquirir los conocimientos necesarios en el desarrollo de Drupal. El resultado final fue una instalación limpia de Drupal en dos entornos (desarrollo y producción) y la lectura de numerosa documentación para el desarrollo sobre el gestor de contenidos.
Page 11: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

• 4. Desarrollo del proyectoSprint 1 (Tipos de contenido y primeras funcionalidades)

Moderador
Notas de la presentación
En el Sprint 1 se implementaron los tipos de contenido ‘Oferta’ de empleo y ‘Perfil’ de alumno que darán soporte a las instancias de contenido del módulo implementado. También se definieron taxonomías para ‘Tecnologías’ y para ‘Roles’, que luego serán utilizadas como autocompletado de campos en los formularios. Por último, se ajustaron ciertos estilos y configuraciones de los campos de los tipos de contenido para mejorar la creación y el listado de los mismos.
Page 12: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

• 4. Desarrollo del proyectoSprint 2 (Listados, funcionalidades Web 2.0 y securizaciones)

Moderador
Notas de la presentación
En el Sprint 2 se implementaron los listados del tipo de contenido ‘Oferta’ y del tipo de contenido ‘Perfil’. También se implementaron los bloques de navegación lateral con las acciones permitidas para cada Rol dentro del módulo ‘Jobs’ que se verán más en detalle en la Demo. Por último, se implementaron las primeras funcionalidades Web 2.0 correspondientes a las valoraciones (o ratings) de las instancias de contenido.
Page 13: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

• 4. Desarrollo del proyectoSprint 3 (Funcionalidades Web 2.0, Imagen visual y páginas informativas)

Moderador
Notas de la presentación
En el Sprint 3 se implementaron algunas funcionalidades Web 2.0 adicionales como la ordenación de contenidos dentro de los listados en función de la valoración que hayan realizado otros usuarios. También se implementó la imagen visual del portal que engloba a la bolsa de trabajo y varias páginas informativas relativas al máster, a la escuela y a la bolsa de trabajo.
Page 14: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

• 5. Demo

Moderador
Notas de la presentación
(Todo ello lo podemos ver reflejado en la demo): - Página principal o resto de páginas. Similitud con Web EUI Login como empresa. Crear una oferta. Visitar un perfil. Login como alumno. Ver oferta valorar oferta.
Page 15: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles

• 6. Conclusiones

Metodología:- Scrum para el desarrollo de portales y de aplicaciones Web de manera

iterativa e incremental

- Implementación rápida de las funcionalidades más importantes al principio

- Priorización de historias, apertura a los cambios y propuestas de mejora

Tecnología:

- Drupal como gestor de contenidos versátil, muy extensible y gratuito

- Complejidad inicial en conceptos y desarrollos. Curva aprendizaje pronunciada

Moderador
Notas de la presentación
Por último, en el apartado de conclusiones, indicar la validez de Scrum para el desarrollo de portales y aplicaciones Web de manera iterativa e incremental. Utilizando dicha metodología se ha podido implementar de manera rápida las funcionalidades más importantes del proyecto en un espacio relativamente corto de tiempo. También destacar que la priorización de historias, la incorporación de cambios y la incorporación de propuestas de mejora sobre el producto, han permitido adaptar la aplicación a las necesidades y disponer de un repositorio de futuras funcionalidades y de mejoras a implementar en los siguientes sprints. En cuanto a la tecnología, indicar que Drupal ha demostrado ser un gestor de contenidos versátil y muy extensible. Además, dada su gratuidad, es una plataforma a tener en consideración a la hora de elegir un gestor de contenidos para el desarrollo de un portal. También se puede destacar que la curva de aprendizaje es pronunciada dada la complejidad de los conceptos y nociones que incorpora, no obstante, una vez familiarizados con ellos, el tiempo de desarrollo se puede asemejar a cualquier otro gestor de contenidos del mercado.
Page 16: Desarrollo de portales web con tecnología Drupal y metodologías Ágiles
Moderador
Notas de la presentación
Y Nada más. Muchas gracias por su atención y estoy disponible para cualquier cuestión relativa al proyecto que se desee realizar.