IT para Product Managers

Preview:

Citation preview

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

?Daniel Cerecedo

@dcerecedo http://byteflair.com

Recommended