56
Flujo de desarrollo en Drupal

Flujo de desarrollo en Drupal - isholgueras.com · Aprovisionador de paquetes Configuración completa en código fuente ¿En serio? ¿En ficheros? Aprovisionador. Ooosst... ¡Bua

Embed Size (px)

Citation preview

Flujo de desarrolloen 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

El flujo actual

Agentes

Jefe de proyectoAnalistaEquipo de desarrolloCliente / usuarioUsuarios finales

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

Qué quiere el usuario

Seamos elcliente

+Como paciente en un hospital

Como cliente en un taller

Como usuario en una web

loading...

Soy usuario

+loading...

Operarme de la espalda

Cambiar los neumáticos

Comprar un vuelo

Quiero

¿Seguro?

+loading...

No tener dolor de espalda

Poder usar mi coche

Llegar a mi destino

Realmente necesito

Voy a un consultarcon un especialistapara obtener una

Solución

Soluciones,no problemas

El niño del píxel

¿Pero cómo?

MUY BONITO TODO ESTO QUE DICES

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

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

Let'sGO!

Agentes

StakeholdersProduct owner

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

Cliente

Proveedor

CoacherOtros equipos

NECESIDADES

Obtengamos las necesidades delcliente mediante requisitos,

pero en su mismo idioma

UsuariosNoticiasEventosNewsletter...

1. Tareas épicasTaxonomía

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.

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 …

Behavior Driven Development

TIP: es una parte de BDD

¿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

Resultado

Prioridades

Listado de tareas

Estimaciones

Agrupaciones de sprints

1

2

3

4

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

Cada sprint

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

LIKES1500

Repositorio de documentación

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

Herramientas existentes:OpenAtriumConfluenceMediaWiki...

Open Atrium

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

Case Tracker para tareas

Blog para acontecimientos

Calendar para hitos y sprints

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

Entorno de desarrollo

F

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...

Virtualización

Replicar entorno de PROen una máquina virtual

Virtualización mejorada

Distribuir configuraciónde máquinas virtuales

Opciones en fichero

PuertosIP e interfacesCarpeta compartidaOpciones SSH...

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

¿En serio?¿En ficheros?

Aprovisionador

Ooosst...¡Bua chaval!

El cojo-entorno de desarrollo

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

Autoformateado AutocompletadoDebuggeoIntegración con Git

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

Desarrollo en Drupal

FeaturesContextDisplay SuiteProfiles(Drush Make)

Desarrollo iterativo con

Context para

EstructuraNavegaciónBloquesRegiones

Vista de datosPresentacionesRegiones internasTemplatesReutilización

DISPLAY SUITE

FEATURES

EmpaquetadoPor funcionalidadConfiguración aficheroMódulo

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

DRUSH MAKE

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

Disciplina

Desventajas

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

Mejoras a futuro

TDD

Phing

¿Es fácil?

NO

Pero merece la penaporque ...

... al menos para mí ...

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

Undécimo principio del manifiesto ágil

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