SlideShare a Scribd company logo
1 of 15
DEFINICIÓN DE UN FLUJO DE
DESARROLLO PARA UN SISTEMA DE
GESTIÓN DE CONTENIDOS
Trabajo de Final de Carrera
Ingeniería Técnica en Informática de Gestión
Universidad de Alcalá
por Ignacio Sánchez Holgueras
Objetivo
• Reducir los fallos en la comunicación entre agentes
• Homogeneizar los diferentes entornos (desarrollo,
producción)
• Aumentar la productividad y calidad en el desarrollo
Orientado al desarrollo Drupal
Agentes
• Cliente
– Stakeholders
– Product Owner
• Proveedor
– Jefe de Proyecto
– Responsable de desarrollo
– Equipo de desarrollo
• Coacher
Entorno común, OpenAtrium
• Blog: Incluir novedades del
proyecto
• Book: Incluir la información
de negocio
• Case Tracker: Gestión de
tareas e incidencias
• Calendar: Hitos
Entorno común de comunicación y gestión de
información:
Entornos
• Entorno de producción:
– Linux 2.6, Debian 6,
– Apache 2.2 + MySQL
5.5,
– varnish, memcache, apc
,...
• Entorno de desarrollo:
– Windows 7,
– Wamp,
– Apache 2.4
– ,...
Vagrant + Chef
• Producción = Local
• Debian 6 (kernel 2.6)
• Apache 2.0.x
• Varnish 3.0.4,
• APC 3.1.11,
• xDebug
• ...
NetBeans + xDebug
• IDE funcional básico con autoformateado y
autocompletado
• Posibilidad de debuggear el código fuente
Git
• Gestor de código fuente distribuido.
– Utilizado en proyectos grandes (kernel, apache,...)
– Pensado en comunidades de Software Libre
• Historial de código fuente sin conexión
• Potencia de Ramas + Forks
• Revisión de pull requests
Tests (TDD)
• Realización de Tests con filosofía TDD (Test
Driven Development)
– Muy unidos a los requisitos
– Se programan primero, y se hacen fallar
– Se validan con código fuente "sucio"
– Se refactoriza el código fuente validando los tests
Integración contínua
• Unido a herramientas que automatizan el
proceso como
• se obtiene un sistema
que instala, comprueba, valida y testea la
aplicación automáticamente
Desarrollo en Drupal
Siguiendo los estándares de Drupal se ha
desarrollado un pequeño Drupal con:
• Un tipo de contenido "noticias"
• Un módulo personalizado "messages"
• Un tema integado
• Un perfil personalizado
Técnicas de desarrollo
Desarrollo incremental utilizando
• Features
• Context
• Display suite
• Profiles
Técnicas de desarrollo
• Sistema de templates
• Funcionamiento de módulos
• Sistema de hooks
hook_form_alter($form, &form_state);
hook_menu();
hook_theme();
template_preprocess();
Conclusiones
• Comunicación en un único sitio.
• El pensamiento de stakeholders lo tiene el equipo.
• El responsable de desarrollo tiene el control del código
• Permite la reinstalación e integración contínua.
• Muy poco código fuente duplicado
• Toda la configuración de BD está en código fuente
• El equipo de desarrollo trabaja bajo condiciones
similares
• El equipo desarrolla sus propios estándares.

More Related Content

Similar to Flujo de desarrollo Drupal para gestión contenidos

Lp II clase01 - Desarrollo de software con RUP
Lp II   clase01 - Desarrollo de software con RUPLp II   clase01 - Desarrollo de software con RUP
Lp II clase01 - Desarrollo de software con RUPAngelDX
 
Global Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGameGlobal Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGameAdrian Diaz Cervera
 
METODOLOGIA RUP.pptx
METODOLOGIA RUP.pptxMETODOLOGIA RUP.pptx
METODOLOGIA RUP.pptxjuan gonzalez
 
Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)Jenyfer Utitiaja
 
Tendencias para Desarrolladores Nov 2015
Tendencias para Desarrolladores Nov 2015Tendencias para Desarrolladores Nov 2015
Tendencias para Desarrolladores Nov 2015Software Guru
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsEsteban Saavedra
 
Herramientas para la medicion de desempeño PHPConMX 2012
Herramientas para la medicion de desempeño  PHPConMX 2012Herramientas para la medicion de desempeño  PHPConMX 2012
Herramientas para la medicion de desempeño PHPConMX 2012Carlos Nacianceno
 
Servicios Generales Fröhling Asesores
Servicios Generales Fröhling AsesoresServicios Generales Fröhling Asesores
Servicios Generales Fröhling AsesoresLilianafrohling
 
Drupalcamp 2014 reconstruir un medio digital idealista news
Drupalcamp 2014   reconstruir un medio digital idealista newsDrupalcamp 2014   reconstruir un medio digital idealista news
Drupalcamp 2014 reconstruir un medio digital idealista newsMartín .
 
Reconstruir un medio digital: idealista/news - Drupalcamp Spain 2014
Reconstruir un medio digital: idealista/news - Drupalcamp Spain 2014Reconstruir un medio digital: idealista/news - Drupalcamp Spain 2014
Reconstruir un medio digital: idealista/news - Drupalcamp Spain 2014Rodrigo Alfaro
 
DrupalCamp Spain 2014: Introducción al desarrollo de módulos en Drupal 7
DrupalCamp Spain 2014: Introducción al desarrollo de módulos en Drupal 7DrupalCamp Spain 2014: Introducción al desarrollo de módulos en Drupal 7
DrupalCamp Spain 2014: Introducción al desarrollo de módulos en Drupal 7Keopx
 
Metodología de SI
Metodología de SIMetodología de SI
Metodología de SIsullinsan
 

Similar to Flujo de desarrollo Drupal para gestión contenidos (20)

Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
Lp II clase01 - Desarrollo de software con RUP
Lp II   clase01 - Desarrollo de software con RUPLp II   clase01 - Desarrollo de software con RUP
Lp II clase01 - Desarrollo de software con RUP
 
Global Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGameGlobal Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGame
 
METODOLOGIA RUP.pptx
METODOLOGIA RUP.pptxMETODOLOGIA RUP.pptx
METODOLOGIA RUP.pptx
 
Data Ops
Data OpsData Ops
Data Ops
 
Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)
 
Tendencias para Desarrolladores Nov 2015
Tendencias para Desarrolladores Nov 2015Tendencias para Desarrolladores Nov 2015
Tendencias para Desarrolladores Nov 2015
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
Herramientas para la medicion de desempeño PHPConMX 2012
Herramientas para la medicion de desempeño  PHPConMX 2012Herramientas para la medicion de desempeño  PHPConMX 2012
Herramientas para la medicion de desempeño PHPConMX 2012
 
UNIDAD_I.ppt
UNIDAD_I.pptUNIDAD_I.ppt
UNIDAD_I.ppt
 
Clase 11
Clase 11Clase 11
Clase 11
 
Servicios Generales Fröhling Asesores
Servicios Generales Fröhling AsesoresServicios Generales Fröhling Asesores
Servicios Generales Fröhling Asesores
 
MLOps.pptx
MLOps.pptxMLOps.pptx
MLOps.pptx
 
Drupalcamp 2014 reconstruir un medio digital idealista news
Drupalcamp 2014   reconstruir un medio digital idealista newsDrupalcamp 2014   reconstruir un medio digital idealista news
Drupalcamp 2014 reconstruir un medio digital idealista news
 
Reconstruir un medio digital: idealista/news - Drupalcamp Spain 2014
Reconstruir un medio digital: idealista/news - Drupalcamp Spain 2014Reconstruir un medio digital: idealista/news - Drupalcamp Spain 2014
Reconstruir un medio digital: idealista/news - Drupalcamp Spain 2014
 
DrupalCamp Spain 2014: Introducción al desarrollo de módulos en Drupal 7
DrupalCamp Spain 2014: Introducción al desarrollo de módulos en Drupal 7DrupalCamp Spain 2014: Introducción al desarrollo de módulos en Drupal 7
DrupalCamp Spain 2014: Introducción al desarrollo de módulos en Drupal 7
 
Metodología
MetodologíaMetodología
Metodología
 
Metodología de SI
Metodología de SIMetodología de SI
Metodología de SI
 

Flujo de desarrollo Drupal para gestión contenidos

  • 1. DEFINICIÓN DE UN FLUJO DE DESARROLLO PARA UN SISTEMA DE GESTIÓN DE CONTENIDOS Trabajo de Final de Carrera Ingeniería Técnica en Informática de Gestión Universidad de Alcalá por Ignacio Sánchez Holgueras
  • 2. Objetivo • Reducir los fallos en la comunicación entre agentes • Homogeneizar los diferentes entornos (desarrollo, producción) • Aumentar la productividad y calidad en el desarrollo
  • 4. Agentes • Cliente – Stakeholders – Product Owner • Proveedor – Jefe de Proyecto – Responsable de desarrollo – Equipo de desarrollo • Coacher
  • 5. Entorno común, OpenAtrium • Blog: Incluir novedades del proyecto • Book: Incluir la información de negocio • Case Tracker: Gestión de tareas e incidencias • Calendar: Hitos Entorno común de comunicación y gestión de información:
  • 6. Entornos • Entorno de producción: – Linux 2.6, Debian 6, – Apache 2.2 + MySQL 5.5, – varnish, memcache, apc ,... • Entorno de desarrollo: – Windows 7, – Wamp, – Apache 2.4 – ,...
  • 7. Vagrant + Chef • Producción = Local • Debian 6 (kernel 2.6) • Apache 2.0.x • Varnish 3.0.4, • APC 3.1.11, • xDebug • ...
  • 8. NetBeans + xDebug • IDE funcional básico con autoformateado y autocompletado • Posibilidad de debuggear el código fuente
  • 9. Git • Gestor de código fuente distribuido. – Utilizado en proyectos grandes (kernel, apache,...) – Pensado en comunidades de Software Libre • Historial de código fuente sin conexión • Potencia de Ramas + Forks • Revisión de pull requests
  • 10. Tests (TDD) • Realización de Tests con filosofía TDD (Test Driven Development) – Muy unidos a los requisitos – Se programan primero, y se hacen fallar – Se validan con código fuente "sucio" – Se refactoriza el código fuente validando los tests
  • 11. Integración contínua • Unido a herramientas que automatizan el proceso como • se obtiene un sistema que instala, comprueba, valida y testea la aplicación automáticamente
  • 12. Desarrollo en Drupal Siguiendo los estándares de Drupal se ha desarrollado un pequeño Drupal con: • Un tipo de contenido "noticias" • Un módulo personalizado "messages" • Un tema integado • Un perfil personalizado
  • 13. Técnicas de desarrollo Desarrollo incremental utilizando • Features • Context • Display suite • Profiles
  • 14. Técnicas de desarrollo • Sistema de templates • Funcionamiento de módulos • Sistema de hooks hook_form_alter($form, &form_state); hook_menu(); hook_theme(); template_preprocess();
  • 15. Conclusiones • Comunicación en un único sitio. • El pensamiento de stakeholders lo tiene el equipo. • El responsable de desarrollo tiene el control del código • Permite la reinstalación e integración contínua. • Muy poco código fuente duplicado • Toda la configuración de BD está en código fuente • El equipo de desarrollo trabaja bajo condiciones similares • El equipo desarrolla sus propios estándares.