Download - Flujo de desarrollo en drupal
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