Flujo de desarrollo en drupal

56
Flujo de desarrollo en Drupal

description

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

Transcript of Flujo de desarrollo en drupal

Page 1: Flujo de desarrollo en drupal

Flujo de desarrolloen Drupal

Page 2: Flujo de desarrollo en drupal

HELLOMY NAME IS

Nacho@isholgueras1984486 DX2 con 32MB de RAMNES, SNES, GBBasic, Logo, PascalIngeniero Técnico en InformáticaFront-end, Drupal y Javascriptidealista.com

Page 3: Flujo de desarrollo en drupal

El flujo actual

Page 4: Flujo de desarrollo en drupal

Agentes

Jefe de proyectoAnalistaEquipo de desarrolloCliente / usuarioUsuarios finales

Page 5: Flujo de desarrollo en drupal

Estimaciones

2 meses de concurso, oferta y aceptación1 mes de definición de requisitos2 meses de arquitectura1 mes de diseño3 meses de desarrollo2 semanas de entrega2 meses de “soporte”Total: 9 meses para tener algoY 11 meses para tenerlo funcionando

Page 6: Flujo de desarrollo en drupal
Page 7: Flujo de desarrollo en drupal

Qué quiere el usuario

Page 8: Flujo de desarrollo en drupal

Seamos elcliente

Page 9: Flujo de desarrollo en drupal

+Como paciente en un hospital

Como cliente en un taller

Como usuario en una web

loading...

Soy usuario

Page 10: Flujo de desarrollo en drupal

+loading...

Operarme de la espalda

Cambiar los neumáticos

Comprar un vuelo

Quiero

Page 11: Flujo de desarrollo en drupal

¿Seguro?

Page 12: Flujo de desarrollo en drupal

+loading...

No tener dolor de espalda

Poder usar mi coche

Llegar a mi destino

Realmente necesito

Page 13: Flujo de desarrollo en drupal

Voy a un consultarcon un especialistapara obtener una

Solución

Page 14: Flujo de desarrollo en drupal

Soluciones,no problemas

El niño del píxel

Page 15: Flujo de desarrollo en drupal

¿Pero cómo?

MUY BONITO TODO ESTO QUE DICES

Page 16: Flujo de desarrollo en drupal

12

12 principios

Motivación

Valor

Simplicidad

ReflexiónSimplicidad

Entrega temprana y frecuente

Los requisitos cambian

Comunicación cara a cara

Unidad de medida:Producto funcionando

Ritmo constante

Confianza

Equipos auto-organizados

Page 17: Flujo de desarrollo en drupal

http://agilemanifesto.org/iso/es/principles.html

Page 18: Flujo de desarrollo en drupal

Let'sGO!

Page 19: Flujo de desarrollo en drupal

Agentes

StakeholdersProduct owner

Jefe de proyectoResponsable de desarrolloEquipo (UX, Diseño,...)

Cliente

Proveedor

CoacherOtros equipos

Page 20: Flujo de desarrollo en drupal

NECESIDADES

Obtengamos las necesidades delcliente mediante requisitos,

pero en su mismo idioma

Page 21: Flujo de desarrollo en drupal

UsuariosNoticiasEventosNewsletter...

1. Tareas épicasTaxonomía

Page 22: Flujo de desarrollo en drupal

2. CaracterísticasEntregables 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 solicitanterecibe 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 unacuenta pero tratamos de recolectar más información acerca de él.

Page 23: Flujo de desarrollo en drupal

3. EscenariosPiezas 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 micorreo.

Escenario 2: Confirmar cuenta…

Escenario 3: Llenar el perfil de la cuenta …

Page 24: Flujo de desarrollo en drupal

Behavior Driven Development

TIP: es una parte de BDD

Page 25: Flujo de desarrollo en drupal

¿Y esto a tareas?

Escenarios

Priorizar características y escenarios

Estimar fibonacci, 2^n, e,...

Unidades: patatas, azucarillos... peronunca tiempo

Tareas

1

2

3

4

Page 26: Flujo de desarrollo en drupal

Resultado

Prioridades

Listado de tareas

Estimaciones

Agrupaciones de sprints

1

2

3

4

Page 27: Flujo de desarrollo en drupal

Sprint 1 Sprint 2 Sprint n

3 semanas

drupal base

entorno

registro usuarios

eventos

noticias API REST noticias

API usuarios

RWD

3 semanas 3 semanas

MAR 2013

Entrega contínua

Page 28: Flujo de desarrollo en drupal

Cada sprint

Características al 100%Dar valor de productoCada 2 semanas - 1 mesCaracterísticas testadas

LIKES1500

Page 29: Flujo de desarrollo en drupal

Repositorio de documentación

Accesible y modificable por todosListados de tareas, hitos, sprints,...Función de buscar

Herramientas existentes:OpenAtriumConfluenceMediaWiki...

Page 30: Flujo de desarrollo en drupal

Open Atrium

Notebook para características, escenarios, diseños,prototipos,...

Case Tracker para tareas

Blog para acontecimientos

Calendar para hitos y sprints

Page 31: Flujo de desarrollo en drupal

Del manifiesto ágil1 Comunicación cara a cara2 Codo a codo entre negocio y desarrollo3 Simplicidad4 Confianza5 Requisitos cambian6 Entregas frecuentes7 Valor8 Unidad de medida: Producto funcionando

Page 32: Flujo de desarrollo en drupal

Entorno de desarrollo

F

Page 33: Flujo de desarrollo en drupal

ProducciónDesarrollo

Apache 2.4.xPercona SQL 5.5.xPHP 5.4.xApache Solr 4.5Memcache 1.4.15ImageMagick 6.8.7-2APC 3.1.13Git 1.7dompdf 0.5.2...

Wamp o XamppApache 2.2.xMySQL 5.5.xPHP 5.3.xGit 1.7...

Page 34: Flujo de desarrollo en drupal

Virtualización

Replicar entorno de PROen una máquina virtual

Page 35: Flujo de desarrollo en drupal

Virtualización mejorada

Distribuir configuraciónde máquinas virtuales

Opciones en fichero

PuertosIP e interfacesCarpeta compartidaOpciones SSH...

Page 36: Flujo de desarrollo en drupal

Virtualización mejorada con 'asteroides'Aprovisionador de paquetesConfiguración completa en código fuente

Page 37: Flujo de desarrollo en drupal

¿En serio?¿En ficheros?

Page 38: Flujo de desarrollo en drupal

Aprovisionador

Page 39: Flujo de desarrollo en drupal

Ooosst...¡Bua chaval!

Page 40: Flujo de desarrollo en drupal

El cojo-entorno de desarrollo

Page 41: Flujo de desarrollo en drupal

Gestor de código fuente distribuido.Utilizado en proyectos grandes (kernel,apache,...)Pensado en comunidades de Software LibreHistorial de código fuente sin conexiónPotencia de Ramas + ForksRevisión de pull requests

Page 42: Flujo de desarrollo en drupal

Autoformateado AutocompletadoDebuggeoIntegración con Git

Y si le añades tu IDE preferido...

Page 43: Flujo de desarrollo en drupal
Page 44: Flujo de desarrollo en drupal

Desarrollo en Drupal

Page 45: Flujo de desarrollo en drupal

FeaturesContextDisplay SuiteProfiles(Drush Make)

Desarrollo iterativo con

Page 46: Flujo de desarrollo en drupal

Context para

EstructuraNavegaciónBloquesRegiones

Page 47: Flujo de desarrollo en drupal

Vista de datosPresentacionesRegiones internasTemplatesReutilización

DISPLAY SUITE

Page 48: Flujo de desarrollo en drupal

FEATURES

EmpaquetadoPor funcionalidadConfiguración aficheroMódulo

Page 49: Flujo de desarrollo en drupal

El botón de GOFilosofía APTLínea de comandosDescriptor de módulos yversiones1 fichero y tienes el proyecto

DRUSH MAKE

Page 50: Flujo de desarrollo en drupal

Todo en código fuente

Menos código custom

Motivación

Confianza del cliente

Filosofía de reinstalar

Reutilizable y extensibleFiabilidad y estabilidad

Sincronización con PRO

Ventajas

Page 51: Flujo de desarrollo en drupal

Disciplina

Desventajas

ConstanciaMenos flexibilidad en códigoRendimiento de VagrantCurva Git VS svnCoste inicialClientes difíciles u organismos

Page 52: Flujo de desarrollo en drupal

Mejoras a futuro

TDD

Phing

Page 53: Flujo de desarrollo en drupal

¿Es fácil?

NO

Page 54: Flujo de desarrollo en drupal

Pero merece la penaporque ...

... al menos para mí ...

Page 55: Flujo de desarrollo en drupal

Las mejores arquitecturas,requisitos y diseños emergen de equipos auto-organizados

Undécimo principio del manifiesto ágil

Page 56: Flujo de desarrollo en drupal

Ignacio Sánchez Holgueras@[email protected]/733162