Flujo de desarrollo en drupal

1,003 views
895 views

Published on

Esta presentación fue la que utilicé en mi ponencia en la drupalcamp spain de 2013 en cáceres.

En ella hablo sobre un flujo de desarrollo en Drupal y de cómo:
* Obtener requisitos del cliente,
* Generar confianza con el cliente,
* Alimentar la motivación del equipo de desarrollo
* Tener un entorno unificado de desarrollo
* Desarrollar de forma escalable y fiable en Drupal

Published in: Technology
1 Comment
7 Likes
Statistics
Notes
No Downloads
Views
Total views
1,003
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
18
Comments
1
Likes
7
Embeds 0
No embeds

No notes for slide

Flujo de desarrollo en drupal

  1. 1. Flujo de desarrollo en Drupal
  2. 2. HELLO MY NAME IS Nacho @isholgueras 1984 486 DX2 con 32MB de RAM NES, SNES, GB Basic, Logo, Pascal Ingeniero Técnico en Informática Front-end, Drupal y Javascript idealista.com
  3. 3. El flujo actual
  4. 4. Agentes Jefe de proyecto Analista Equipo de desarrollo Cliente / usuario Usuarios finales
  5. 5. Estimaciones 2 meses de concurso, oferta y aceptación 1 mes de definición de requisitos 2 meses de arquitectura 1 mes de diseño 3 meses de desarrollo 2 semanas de entrega 2 meses de “soporte” Total: 9 meses para tener algo Y 11 meses para tenerlo funcionando
  6. 6. Qué quiere el usuario
  7. 7. Seamos el cliente
  8. 8. Soy usuario Como paciente en un hospital Como cliente en un taller + Como usuario en una web loading...
  9. 9. Quiero + Operarme de la espalda Cambiar los neumáticos Comprar un vuelo loading...
  10. 10. ¿Seguro?
  11. 11. Realmente necesito + No tener dolor de espalda Poder usar mi coche Llegar a mi destino loading...
  12. 12. Voy a un consultar con un especialista para obtener una Solución
  13. 13. Soluciones, no problemas El niño del píxel
  14. 14. MUY BONITO TODO ESTO QUE DICES ¿Pero cómo?
  15. 15. 12 principios 12 Valor Reflexión Simplicidad Motivación Entrega temprana y frecuente Confianza Simplicidad Los requisitos cambian Unidad de medida: Producto funcionando Comunicación cara a cara Ritmo constante Equipos auto-organizados
  16. 16. http://agilemanifesto.org/iso/es/principles.html
  17. 17. Let's GO!
  18. 18. Agentes Cliente Stakeholders Product owner Proveedor Jefe de proyecto Responsable de desarrollo Equipo (UX, Diseño,...) Coacher Otros equipos
  19. 19. NECESIDADES Obtengamos las necesidades del cliente mediante requisitos, pero en su mismo idioma
  20. 20. 1. Tareas épicas Taxonomía Usuarios Noticias Eventos Newsletter ...
  21. 21. 2. Características Entregables tangibles Característica: Registro de usuario. Como visitante Yo quiero registrarme en el sistema Para acceder a sus funciones El registro funciona en tres etapas: 1. Solicitar el registro con un formulario en la página web. El solicitante recibe un correo. 2. Seguir un enlace de confirmación en el correo para activar la cuenta. 3. Llenar la información del perfil. En esta etapa el usuario ya tiene una cuenta pero tratamos de recolectar más información acerca de él.
  22. 22. 3. Escenarios Piezas de los entregables Escenario 1: Solicitar una cuenta Dado que no tengo una cuenta Cuando sigo el enlace de registro de la página de inicio Y lleno la forma con detalles válidos y la envío Entonces debo ver un mensaje de confirmación diciéndome que revise mi correo. Escenario 2: Confirmar cuenta … Escenario 3: Llenar el perfil de la cuenta …
  23. 23. TIP: es una parte de BDD Behavior Driven Development
  24. 24. ¿Y esto a tareas? 1 Priorizar características y escenarios 2 Escenarios 3 Estimar fibonacci, 2^n, e,... 4 Unidades: patatas, azucarillos... pero nunca tiempo Tareas
  25. 25. Resultado 1 Listado de tareas 2 Prioridades 3 Estimaciones 4 Agrupaciones de sprints
  26. 26. Entrega contínua MAR 2013 Sprint 1 Sprint 2 3 semanas drupal base entorno registro usuarios Sprint n 3 semanas noticias eventos 3 semanas API REST noticias API usuarios RWD
  27. 27. Cada sprint Características al 100% Dar valor de producto Cada 2 semanas - 1 mes Características testadas 1500 LIKES
  28. 28. Repositorio de documentación Accesible y modificable por todos Listados de tareas, hitos, sprints,... Función de buscar Herramientas existentes: OpenAtrium Confluence MediaWiki ...
  29. 29. Open Atrium Notebook para características, escenarios, diseños, prototipos,... Case Tracker para tareas Blog para acontecimientos Calendar para hitos y sprints
  30. 30. Del manifiesto ágil 1 2 3 4 5 6 7 8 Comunicación cara a cara Codo a codo entre negocio y desarrollo Simplicidad Confianza Requisitos cambian Entregas frecuentes Valor Unidad de medida: Producto funcionando
  31. 31. Entorno de desarrollo F
  32. 32. Desarrollo Producción Wamp o Xampp Apache 2.2.x MySQL 5.5.x PHP 5.3.x Git 1.7 ... Apache 2.4.x Percona SQL 5.5.x PHP 5.4.x Apache Solr 4.5 Memcache 1.4.15 ImageMagick 6.8.7-2 APC 3.1.13 Git 1.7 dompdf 0.5.2 ...
  33. 33. Virtualización Replicar entorno de PRO en una máquina virtual
  34. 34. Virtualización mejorada Distribuir configuración de máquinas virtuales Opciones en fichero Puertos IP e interfaces Carpeta compartida Opciones SSH ...
  35. 35. Virtualización mejorada con 'asteroides' Aprovisionador de paquetes Configuración completa en código fuente
  36. 36. ¿En serio? ¿En ficheros?
  37. 37. Aprovisionador
  38. 38. Ooosst... ¡Bua chaval!
  39. 39. El cojo-entorno de desarrollo
  40. 40. 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
  41. 41. Y si le añades tu IDE preferido... Autoformateado Autocompletado Debuggeo Integración con Git
  42. 42. Desarrollo en Drupal
  43. 43. Desarrollo iterativo con Features Context Display Suite Profiles (Drush Make)
  44. 44. Context para Estructura Navegación Bloques Regiones
  45. 45. DISPLAY SUITE Vista de datos Presentaciones Regiones internas Templates Reutilización
  46. 46. FEATURES Empaquetado Por funcionalidad Configuración a fichero Módulo
  47. 47. DRUSH MAKE El botón de GO Filosofía APT Línea de comandos Descriptor de módulos y versiones 1 fichero y tienes el proyecto
  48. 48. Ventajas Motivación Confianza del cliente Todo en código fuente Menos código custom Filosofía de reinstalar Reutilizable y extensible Fiabilidad y estabilidad Sincronización con PRO
  49. 49. Desventajas Disciplina Constancia Menos flexibilidad en código Rendimiento de Vagrant Curva Git VS svn Coste inicial Clientes difíciles u organismos
  50. 50. Mejoras a futuro Phing TDD
  51. 51. ¿Es fácil? NO
  52. 52. Pero merece la pena porque ... ... al menos para mí ...
  53. 53. Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados Undécimo principio del manifiesto ágil
  54. 54. Ignacio Sánchez Holgueras @isholgueras nacho@isholgueras.com user/733162

×