Gestión ITProduct Managers
para
http://byteflair.com
Daniel Cerecedo@dcerecedo
Agenda
@dcerecedoByteflair
Crear un servicioEconomías del softwareModelos de gestiónGestionar requerimientosCasos de usoCalidad
ComponentesEstimaciónPriorizaciónRoadmapsContratosSeguimiento
Crear un servicio
@dcerecedoByteflair
@dcerecedoByteflair
Crear un servicio
Visión
@dcerecedoByteflair
Crear un servicio
Producto
Visión
@dcerecedoByteflair
Crear un servicio
Producto
Visión
Ejecución
@dcerecedoByteflair
Crear un servicio
Producto
¿Visión clara?
Ejecución
@dcerecedoByteflair
Crear un servicio
Producto
¿Visión clara?
Ejecución
@dcerecedoByteflair
Crear un servicio
Producto
Visión clara
Ejecución
Visión POCO clara
Concepción y análisis
Crear un servicioConcepción
@dcerecedoByteflair
Qué
Crear un servicioConcepción
@dcerecedoByteflair
Entender y comunicar qué se desea crear
Dejar los detalles para otro momento
Crear un servicioConcepción
@dcerecedoByteflair
Parálisis por análisis
Crear un servicioPlan ejecución
@dcerecedoByteflair
CómoCuándo
@dcerecedoByteflair
Crear un servicio
Planifica qué pasos hay que dar para conseguir cada objetivo
Plan ejecución
Economía del software
@dcerecedoByteflair
Economía del software
@dcerecedoByteflair
Alcance
€¡Sólo puedes elegir dos!
Economía del software
@dcerecedoByteflair
Alcance
€Caro
Economía del software
@dcerecedoByteflair
Alcance
€Caro
Inferior
Economía del software
@dcerecedoByteflair
Alcance
€Caro
Inferior
Tarde
Economía del software
@dcerecedoByteflair
+ € = Skills· Tools
ComplexityProcess
Inmaturity
Procesos y calidad
@dcerecedoByteflair
Procesos
Hacer
Economía del software
@dcerecedoByteflair
Procesos
HacerCalidad
Economía del software
@dcerecedoByteflair
Procesos
HacerCalidadEstandarizar
Economía del software
@dcerecedoByteflair
Procesos
HacerCalidadEstandarizar
Predecible
Economía del software
@dcerecedoByteflair
Procesos
HacerCalidadEstandarizar
Predecible
Automatizar
Economía del software
@dcerecedoByteflair
Procesos
HacerCalidadEstandarizar
Predecible
AutomatizarRápido
Economía del software
@dcerecedoByteflair
Procesos
HacerCalidadEstandarizar
Predecible
AutomatizarRápido
Menor Coste
Economía del software
Economía del softwareProcesos y calidad
@dcerecedoByteflair
Hacer lo correctoHacerlo correctamente
Evitar el desperdicio
@dcerecedoByteflair
Enséñamela pasta!
@dcerecedoByteflair
Activar el conocimiento
Calidad
Menor Coste15% - 30%
Cada vez que doblas la ejecución de un proceso
Economía del software
@dcerecedoByteflair
Gestionar el conocimientoAutomatizar
Economía del software
Proceso
@dcerecedoByteflair
Activar el conocimiento
CapturarNotas – EverNote
Wikis – ConfluenceDocumentos – Google Docs
Proceso
@dcerecedoByteflair
Activar el conocimiento
AutomatizarCada dominio de conocimiento sus herramientas
Pruebas – Frameworks de pruebas, DockerDespliegues – Jenkins, Hudson
Aprovisionamiento – Puppet, Chef, Vagrant
@dcerecedoByteflair
Modelo de gestión
Modelo de gestión
@dcerecedoByteflair
Diseño
Construcción
Pruebas
Despliegue
Análisis
Cascada
@dcerecedoByteflair
Modelo de gestiónLo ideal
@dcerecedoByteflair
Modelo de gestión
IncertidumbreLa realidad
@dcerecedoByteflair
Modelo de gestión
IncertidumbreLa realidad
@dcerecedoByteflair
Modelo de gestión
IncertidumbreLa realidad
{Fallos de comunicaciónExpectativas poco clarasCambio de prioridadesViabilidad técnicaPresupuesto...
Modelo de gestión
@dcerecedoByteflair
Cascada
La incertidumbre es inherenteEl cambio es inevitable
Modelo de gestión
@dcerecedoByteflair
Pon foco en lo que puedes controlar
Modelo de gestión
@dcerecedoByteflair
Ágil
Modelo de gestión
@dcerecedoByteflair
Ágil
Modelo de gestión
@dcerecedoByteflair
Q
€ Q
€Fijo
Cascada ÁgilEst.
Cascada vs Ágil
@dcerecedoByteflair
Modelo de gstiónLa realidad
@dcerecedoByteflair
Modelo de gestiónLa realidad
@dcerecedoByteflair
Modelo de gestiónLa realidad
@dcerecedoByteflair
Modelo de gestiónLa realidad
@dcerecedoByteflair
Gestionar Requerimiento
@dcerecedoByteflair
¿Por qué?Gestionar Requerimiento
EstimaciónPlanificación
DiseñoPruebas
Documentación
Categorías
@dcerecedoByteflair
NecesidadesFuncionalidades
La unidad de intercambio con el cliente
Gestionar Requerimiento
Categorías
@dcerecedoByteflair
FuncionalesNo funcionales
Gestionar Requerimiento
Requerimientos{
Requerimientos Funcionales
@dcerecedoByteflair
Casos de uso
Gestionar Requerimiento
Requerimientos No Funcionales
@dcerecedoByteflair
UsabilidadFiabilidad
RendimientoMantenibilidad
Seguridad
Gestionar Requerimiento
@dcerecedoByteflair
ContextualizarGestionar Requerimiento
Visión¿Entendemos bien el contexto?
Alinear al equipo de trabajo
@dcerecedoByteflair
ContextualizarGestionar Requerimiento
GlosarioEstablecer un vocabulario común
Caso de uso
@dcerecedoByteflair
Sistema
Caso de uso
@dcerecedoByteflair
Hacer login
Usuario
Representación visual estática
Caso de uso
@dcerecedoByteflair
Representación visual dinámica
SistemaUsuario
Visitar https://myservice.com
Introducir usuario y clave
Caso de uso
@dcerecedoByteflair
Representación textual
LoginContemplar los casos de error de usuario o
contraseña erróneos
Caso de uso
@dcerecedoByteflair
Representación textual
1. El usuario visita la página de inicio2. El sistema devuelve la página de inicio3. El usuario introduce sus credenciales en el formulario de login y pulsa enviar4. El sistema recibe la solicitud de login. ….
Caso de uso
@dcerecedoByteflair
Representación textual
1. El usuario visita la página de inicio2. El sistema devuelve la página de inicio3. El usuario introduce sus credenciales en el formulario de login y pulsa enviar4. El sistema recibe la solicitud de login. 4.1. El sistema comprueba que el usuario existe 4.1.a. El usuario no existe 4.1.a.1. El sistema devuelve un mensaje de error informando que las credenciales introducidas no son válidas 4.1.b. El usuario si existe 4.1.b.1. El sistema comprueba que la clave de acceso presentada se corresponde con la almacenada 4.1.b.1.a. La clave de acceso no se corresponde 4.1.b.1.a.1. El sistema devuelve un mensaje de error informando que las credenciales introducidas no son válidas. 4.1.b.1.b. La clave de acceso se corresponde 4.1.b.1.b.1. El sistema autentica al usuario y devuelve la página de bienvenida
Caso de uso
@dcerecedoByteflair
Representación textual
ConsistenciaUn bloque principal por interacción
Los números para accionesLas letras para opciones
Caso de uso
@dcerecedoByteflair
Wireframing
Caso de uso
@dcerecedoByteflair
Herramientas
Balsamiq MockupsVisual Paradigm
Calidad
@dcerecedoByteflair
Calidad¿Qué es?
@dcerecedoByteflair
Hacer lo correctoHacerlo correctamente
Evitar el desperdicio
CalidadRequerimientos
@dcerecedoByteflair
REQ17: El sistema no aceptará claves de acceso de más de 15 caracteres
CalidadRequerimientos
@dcerecedoByteflair
REQ17: El sistema no aceptará claves de acceso de más de 15 caracteres
CalidadRequerimientos
@dcerecedoByteflair
REQ17: El sistema no aceptará claves de acceso de más de 15 caracteres
¿Rechazará con error?
¿Truncará?
¿El usuario solo podrá introducir hasta 15 caracteres?
CalidadRequerimientos
@dcerecedoByteflair
No AmbiguosUna única interpretación
CalidadRequerimientos
@dcerecedoByteflair
REQ31: El sistema soportará múltiples usuarios de forma concurrente
REQ32: Se introducirá la dirección de destino
REQ33: El usuario podrá buscar destinos por nombre, dirección, etc...
CalidadRequerimientos
@dcerecedoByteflair
REQ31: El sistema soportará múltiples usuarios de forma concurrente
REQ32: Se introducirá la dirección de destino
REQ33: El usuario podrá buscar destinos por nombre, dirección, etc...
¿Cuantos?
¿Quién?
¿Cuales son los criterios aceptados?
CalidadRequerimientos
@dcerecedoByteflair
VerificablesDebe ser posible probar que el requerimiento
ha sido implementado correctamente
CalidadRequerimientos
@dcerecedoByteflair
REQ18: Cuando el usuario realiza una búsqueda, los términos de búsqueda pueden ser una dirección o contra un punto de interés. El sistema será capaz de discernir de que se trata y devolver resultados relevantes.
CalidadRequerimientos
@dcerecedoByteflair
REQ18: Cuando el usuario realiza una búsqueda, los términos de búsqueda pueden ser una dirección o contra un punto de interés. El sistema será capaz de discernir de que se trata y devolver resultados relevantes.
REQ18: El usuario puede buscar direcciones o puntos de interés sin necesidad de identificar si se trata de uno u otro.
REQ19: El sistema devolverá los resultados más relevantes en base a l sistema de scoring definido por la rega BR3.
REQ20: : El sistema será capaz de discernir entre direcciones y puntos de interés.
CalidadRequerimientos
@dcerecedoByteflair
ClarosConcisos, simples y precisos
CalidadRequerimientos
@dcerecedoByteflair
REQ46: Cuando el usuario de fulfillment emita una factura para un cliente, en la factura se desglosarán los costes y se aplicará el IVA del 18%
CalidadRequerimientos
@dcerecedoByteflair
REQ46: Cuando el usuario de fulfillment emita una factura para un cliente, en la factura se desglosarán los costes y se aplicará el IVA del 18%
Está mal, es el 21%...
¿Y si internacionalizamos?
Cada país aplica IVA's distintos
CalidadRequerimientos
@dcerecedoByteflair
CorrectosSi se hace referencia a hechos, estos hechos deben ser ciertos
CalidadRequerimientos
@dcerecedoByteflair
ComprensiblesDeben ser gramaticalmente correctos y
escritos de forma consistente
CalidadRequerimientos
@dcerecedoByteflair
REQ60: El usuario podrá realizar preguntas de viva voz y en lenguaje natural que el sistema será capaz de interpretar para ejecutar los comandos necesarios y responder al usuario
Solo tenemos 3 meses!
CalidadRequerimientos
@dcerecedoByteflair
ViablesLos requerimientos deben ser realizables
dentro de las restricciones impuestasde tiempo y recursos.
CalidadRequerimientos
@dcerecedoByteflair
REQ61: Al registrarse, el usuario deberá introducir como dirección de facturación una vía, un número de portal, un código postal y una localidad.
REQ62: Ésta podrá sobreescribirse con la dirección postal introducida anteriormente
CalidadRequerimientos
@dcerecedoByteflair
IndependientesPara entender un requerimiento no debe ser
necesario entender otros
CalidadRequerimientos
@dcerecedoByteflair
REQ65: El usuario podrá hacer login con sus credenciales (nombre de usuario y clave) o podrá autenticarse en nuestro sistema a través de Google
CalidadRequerimientos
@dcerecedoByteflair
REQ65: El usuario podrá hacer login con sus credenciales (nombre de usuario y clave).
REQ66: El usuario podrá hacer login autenticándose a través de Google.
CalidadRequerimientos
@dcerecedoByteflair
IndivisiblesSólo debe contener un elemento trazable
CalidadRequerimientos
@dcerecedoByteflair
NecesariosEliminar aquellos que no afectan al sistema o que no
han sido solicitados
CalidadRequerimientos
@dcerecedoByteflair
AbstractosIndependientes de la implementación
El qué, no el cómo
CalidadRequerimientos
@dcerecedoByteflair
ConsistentesNo debe haber conflictos entre requerimientos
CalidadRequerimientos
@dcerecedoByteflair
No RedundantesDeben ser expresados una única vez y no deben
solaparse
CalidadRequerimientos
@dcerecedoByteflair
REQ72: Un taxi puede estar libre, ocupado o fuera de servicio.
REQ73: Los taxis libres deberán mostrarse en la pantalla de control en color verde
REQ74: Los taxis ocupados deberán mostrarse en la pantalla de control en color rojo
Y los que están fuera de servicio
CalidadRequerimientos
@dcerecedoByteflair
CompletosDebe existir un requerimiento para condición posible
en el sistema
@dcerecedoByteflair
Componentes de referencia
@dcerecedoByteflair
Build
CoreServices
Componentes de referencia
@dcerecedoByteflair
Build
Frontoffice
CoreServices
Componentes de referencia
@dcerecedoByteflair
Build
Frontoffice
CoreServices
API
Componentes de referencia
@dcerecedoByteflair
Build
Backoffice
Frontoffice
CoreServices
API
Componentes de referencia
@dcerecedoByteflair
Build
Backoffice
Frontoffice
CoreServices
API
Componentes de referencia
Parameterize
HooksSecurity
Auditor Scheduler
@dcerecedoByteflair
Build
Backoffice
Frontoffice
CoreServices
API
Componentes de referencia
Parameterize
HooksSecurity
Auditor Scheduler
Integrate
MarketingComms.
ContentManager
InvocingPayments
@dcerecedoByteflair
Build
Backoffice
Frontoffice
CoreServices
API
Componentes de referencia
Parameterize
HooksSecurity
Auditor Scheduler
Integrate
MarketingComms.
ContentManager
InvocingPaymentsAPIs
@dcerecedoByteflair
Build
Backoffice
Frontoffice
CoreServices
API
Componentes de referencia
Parameterize
HooksSecurity
Auditor Scheduler
Integrate
MarketingComms.
ContentManager
InvocingPayments
Message Bus
Estimación
@dcerecedoByteflair
Estimación
@dcerecedoByteflair
PesarNo usar valores uniformemente espaciados
Buscar consenso: justificar peso más alto y más bajo y volver votar
Estimación
@dcerecedoByteflair
Ordenar por complejidad
Estimación
@dcerecedoByteflair
Revisar¿Estamos de acuerdo con los pesos relativos?
Estimación
@dcerecedoByteflair
Asignar esfuerzo a cada pesoExperiencia
Partir de casos concretos y extrapolar
Estimación
@dcerecedoByteflair
Revisar proporciones¿Estamos contentos con la relación de pesos y
esfuerzos?
Estimación
@dcerecedoByteflair
RepetirHasta que todo nos cuadre
Estimación
@dcerecedoByteflair
Horas de esfuerzo
Estimación
@dcerecedoByteflair
DescomponerNunca más de 15 días
Divide y vencerás
Priorizar
@dcerecedoByteflair
Priorizar
@dcerecedoByteflair
Criterios
Riesgo
Priorizar
@dcerecedoByteflair
Criterios
RiesgoResolver los riesgos cuanto antes
Priorizar
@dcerecedoByteflair
Criterios
ROIIdentificar los elementos que aportan más valor con
la menor inversión
Priorizar
@dcerecedoByteflair
Criterios
Orden lógico
Estimación
@dcerecedoByteflair
OrdenHoras de esfuerzoPlan de desarrollo
Roadmaps
@dcerecedoByteflair
Roadmaps
@dcerecedoByteflair
Herramienta de comunicaciónNivel estratégico
Roadmaps
@dcerecedoByteflair
Roadmaps
@dcerecedoByteflair
Roadmaps
@dcerecedoByteflair
Roadmaps
@dcerecedoByteflair
Roadmaps
@dcerecedoByteflair
Contrato
@dcerecedoByteflair
Contrato
@dcerecedoByteflair
Time & Materials
Alquilo talentoEs una estimación de esfuerzo
Facturación mensual según consumoEl cliente es propietario del riesgo
No hay garantía
Contrato
@dcerecedoByteflair
Precio Fijo
Compro un productoEl proveedor es propietario del riesgo
Tres meses de garantía frente a defectosFacturación por hitos
Contrato
@dcerecedoByteflair
Precio Fijo
Compro un productoRequiere adelantar pagos
Requiere cerrar alcanceAcordar un plan de ejecución
Definir hitos y pagosAcordar un modelo de colaboración
Contrato
@dcerecedoByteflair
Los contratos a precio fijo friccionan con el agilismo
Seguimiento
@dcerecedoByteflair
Seguimiento
@dcerecedoByteflair
Preguntas clave
¿Llegaremos a tiempo?¿Hace falta reducir el alcance?
¿Cuando acabaremos?¿Podemos permitirnos añadir más funciones?
Seguimiento
@dcerecedoByteflair
BurndownEs
fuer
zo
Tiempo
Seguimiento
@dcerecedoByteflair
BurndownEs
fuer
zo
Tiempo
Esfuerzo total
pendiente de ejecutar
Velocidad de ejecución necesariapara llegar a tiempo
Seguimiento
@dcerecedoByteflair
BurndownEs
fuer
zo
Tiempo
Esfuerzo ejecutado
Velocidad de real ejecución
Seguimiento
@dcerecedoByteflair
BurndownEs
fuer
zo
Tiempo
Nos estamos retrasando
Seguimiento
@dcerecedoByteflair
BurndownEs
fuer
zo
Tiempo
La cosa empeora
Seguimiento
@dcerecedoByteflair
BurndownEs
fuer
zo
Tiempo
Casi volvemos al plan
Seguimiento
@dcerecedoByteflair
Burndown
Revisar relación pesos y esfuerzo
Seguimiento
@dcerecedoByteflair
BurndownEs
fuer
zo
Tiempo
Reduciremos el alcance
para llegar a tiempo
Seguimiento
@dcerecedoByteflair
BurndownEs
fuer
zo
Tiempo
Lo habitual es el aumento del alcance
@dcerecedoByteflair
Si no llevas un registro de lo que haces nunca conocerás la
causa de tus fallos
@dcerecedoByteflair
Si no puedes medirlono puedes mejorarlo
@dcerecedoByteflair
Hacer lo correctoHacerlo correctamente
Evitar el desperdicio
Top Related