SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
Luis Artola (@artolamola)
Eduardo Ferro (@eferro)
libro de recetas
El Arte del Patadón pa’lante
¿A qué nos referimos?
Posponer todas las decisiones hasta
el último momento responsable(™)
Mantener opciones abiertas lo máximo
posible
So much product development time is
spent undoing complexity that should
have been left out in the first place. -
@jasonfried
Luis Artola
(@artolamola)
¿Quienes somos?
Edu Ferro
(@eferro)
“Vagos” profesionales
KEEP
CALM
AND
POSTPONE
● Problemas/trabajo >> Capacidad
● Problema != Solución
@artolamola @eferro
Contexto
@artolamola @eferro
Problemas
Tiempo (semanas)
P1S1
P2S1
P3S1
Forma trabajo tradicional
● Solución simple -> Atacar+Problemas
● Evita desperdicio (Lean)
@artolamola @eferro
Contexto
@artolamola @eferro
Problemas
Tiempo (semanas)
P1S1 P1S2 P1S3
P2S1 P2S2
P3S1 P3S2 P3S3
Forma trabajo posponiendo
KEEP
CALM
AND
POSTPONE @artolamola @eferro
Ej: Customer Repository
Time to Market / Opportunity cost
Sistema TV / Teléfono / Internet
Persistencia gestión clientes
Núm clientes y crecimiento bajo
Concurrencia baja
@artolamola @eferro
Ej: Customer Repository
Time to Market / Opportunity cost
Solución de referencia:
BD Relacional + ORM + Framework
@artolamola @eferro
Ej: Customer Repository
Time to Market / Opportunity cost
@artolamola @eferro
Ej: Customer Repository
Time to Market / Opportunity cost
1 Serialización a fichero
@artolamola @eferro
2 Python text indexer
3 Python text indexer + Redis
4 MySQL Full text search + Redis
Ej: Customer Repository
Time to Market / Opportunity cost
Siguientes pasos:
@artolamola @eferro
- ¿PostgreSQL?
- ¿Mongo?
- a saber...
KEEP
CALM
AND
POSTPONE @artolamola @eferro
Ej: Sistema de Colas Cloud
Diseño evolutivo / Reabrir opciones
Sistema colas para aplicación
Cloud
Uso desde varios servicios
Desplegado en AWS
@artolamola @eferro
Ej: Sistema de Colas Cloud
Diseño evolutivo / Reabrir opciones
1 Uso API aws SQS en cada servicio
@artolamola @eferro
2 Encapsulación reusable (simple)
Ej: Sistema de Colas Cloud
Diseño evolutivo / Reabrir opciones
@artolamola @eferro
Ej: Sistema de Colas Cloud
Diseño evolutivo / Reabrir opciones
3 Encapsulación MultiQueue (envío
con prioridades)
@artolamola @eferro
Ej: Sistema de Colas Cloud
Diseño evolutivo / Reabrir opciones
@artolamola @eferro
Ej: Sistema de Colas Cloud
Diseño evolutivo / Reabrir opciones
@artolamola @eferro
Siguientes pasos:
- ¿RabbitMQ? ¿Redis?
- ¿Compresión datos? ¿Formatos?
- a saber...
KEEP
CALM
AND
POSTPONE @artolamola @eferro
Borrado Temporales S3
Eliminación complejidad / Reabrir opciones
@eferro
Generación videos require ficheros
temporales (video master,
metainfo). Etapa final borraba esos
ficheros de S3.
Borrado Temporales S3
Eliminación complejidad / Reabrir opciones
@eferro
Solución de referencia:
Servicio especializado borrado
Borrado Temporales S3
Eliminación complejidad / Reabrir opciones
@eferro
1 Servicio para borrado (high scale)
2 Eliminación servicio de borrado
3 Medición coste almacenamiento
Borrado Temporales S3
Eliminación complejidad / Reabrir opciones
@eferro
Siguientes pasos:
- ¿borrado periódico? ¿AWS S3 TTL?
- ¿ninguno?
- a saber...
KEEP
CALM
AND
POSTPONE @artolamola @eferro
Ej: Sistema de Usuarios TheMotion
Evitar complejidad / Exploración
Gestión de usuarios complicada
B2B. Publicidad. Partners,
Advertisers, Agencias, Brands… etc.
Startup en modo exploración.
@artolamola @eferro
Ej: Sistema de Usuarios TheMotion
Evitar complejidad / Exploración
@artolamola @eferro
Solución de referencia:
Sistema usuarios / roles /
organizaciones / login
Ej: Sistema de Usuarios TheMotion
Evitar complejidad / Exploración
@artolamola @eferro
1 Sin usuarios / API KEY (api)
2 Usuarios creados manual (api)
3 Usuarios suplantan otros (api)
4 Registro con activación manual
(Web UI)
Ej: Sistema de Usuarios TheMotion
Evitar complejidad / Exploración
@artolamola @eferro
Siguientes pasos:
- ¿activación y datos de pago?
- ¿uso servicio externo?
- a saber...
KEEP
CALM
AND
POSTPONE @artolamola @eferro
Ej: TheMotion infrastructure CLI
Diseño evolutivo / Desconocimiento AWS / Time to Market
Sin experiencia con AWS.
Herramienta para:
- Desplegar servicios
- Ver estado cluster / colas / DBs
- Ver configuraciones y log
@artolamola @eferro
Ej: TheMotion infrastructure CLI
Diseño evolutivo / Desconocimiento AWS / Time to Market
@artolamola @eferro
Solución de referencia:
Selección de herramienta para uso
directo (ansible, terraform, chef)
Ej: TheMotion infrastructure CLI
Diseño evolutivo / Desconocimiento AWS / Time to Market
@artolamola @eferro
1 App CLI, ssh, Bash + aws cli
2 Bash + aws cli + ansible
3 Bash + aws cli + cloudformation
4 Python + cloudformation + api
Ej: TheMotion infrastructure CLI
Diseño evolutivo / Desconocimiento AWS / Time to Market
@artolamola @eferro
Siguientes pasos:
- Nuevos comandos
- Nuevas tecnologías
- a saber...
KEEP
CALM
AND
POSTPONE @artolamola @eferro
Fails
@artolamola @eferro
Fails
@artolamola @eferro
DynamoDB en vez de PostgreSQL
Microservicios Prematuros
Multi thread Prematuro
KEEP
CALM
AND
POSTPONE @artolamola @eferro
Conclusiones
@artolamola @eferro
Soluciones sencillas
Requiere madurez
Requiere hablar de problemas
Minimiza hablar de soluciones
Mantiene opciones abiertas
Conclusiones
@artolamola @eferro
Clave para trabajar así:
● Arquitectura evolutiva
● Calidad técnica
● Parallel change / Branch by abstraction
/ feature toggling
Conclusiones
@artolamola @eferro
Agile:
● No es velocidad (valor rápido)
● Valor antes
● Adaptabilidad
● Gestión de riesgo
Q&A - Feedback
@artolamola @eferro
¿Te has sentido identificado?
¿Te hemos dado ideas?
Referencias
@artolamola @eferro
● CAS2016 El arte del patadon pa’lante
● CAS2016 Problemas vs Soluciones. Carlos Blé
● Real options
● Embracing Uncertainty
● The art of destroying software
● Lean Software Development
Muchas Gracias
@artolamola @eferro
Q&A - Feedback
@artolamola @eferro
Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
Slide Design: Xabi Larrakoetxea (@slok69)
@artolamola @eferro

Más contenido relacionado

Similar a SCPNA2017 El arte del patadon pa'lante / libro de recetas

Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...
Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...
Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...
Andrés Iturralde
 
Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0
Marcos Ortiz Valmaseda
 
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptxclase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
JulianSimonetta
 
Python Tutorial Presentation
Python Tutorial PresentationPython Tutorial Presentation
Python Tutorial Presentation
guestccc92ad
 

Similar a SCPNA2017 El arte del patadon pa'lante / libro de recetas (20)

Clase2 (consola linux)
Clase2 (consola linux)Clase2 (consola linux)
Clase2 (consola linux)
 
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayerCodemotion 2013 - Quiero tiempo real y lo quiero para ayer
Codemotion 2013 - Quiero tiempo real y lo quiero para ayer
 
Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...
Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...
Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disp...
 
Trabajando en Código Abierto
Trabajando en Código AbiertoTrabajando en Código Abierto
Trabajando en Código Abierto
 
Kimberly (2) mapau trabajo
Kimberly (2) mapau trabajoKimberly (2) mapau trabajo
Kimberly (2) mapau trabajo
 
Top Bug
Top BugTop Bug
Top Bug
 
Pipelining
PipeliningPipelining
Pipelining
 
RESUME SOBRE LA TERMINAL DE UBUNTU
RESUME SOBRE LA TERMINAL DE UBUNTU RESUME SOBRE LA TERMINAL DE UBUNTU
RESUME SOBRE LA TERMINAL DE UBUNTU
 
Clase7 comandos de linux
Clase7 comandos de linuxClase7 comandos de linux
Clase7 comandos de linux
 
Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0
 
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptxclase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
 
Python Tutorial Presentation
Python Tutorial PresentationPython Tutorial Presentation
Python Tutorial Presentation
 
Actividad3 4 david a. condori tantani
Actividad3 4  david a. condori tantaniActividad3 4  david a. condori tantani
Actividad3 4 david a. condori tantani
 
Comandos de ubuntu
Comandos de ubuntuComandos de ubuntu
Comandos de ubuntu
 
REPLs
REPLsREPLs
REPLs
 
Analisis de Usabilidad GOMS: Goals, Objectives, Method, Selection of rules.
Analisis de Usabilidad GOMS: Goals, Objectives, Method, Selection of rules.Analisis de Usabilidad GOMS: Goals, Objectives, Method, Selection of rules.
Analisis de Usabilidad GOMS: Goals, Objectives, Method, Selection of rules.
 
Procesos linux
Procesos linuxProcesos linux
Procesos linux
 
Curso GNU/Linux
Curso GNU/LinuxCurso GNU/Linux
Curso GNU/Linux
 
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
 
Tres historias
Tres historiasTres historias
Tres historias
 

Más de Eduardo Ferro Aldama

Más de Eduardo Ferro Aldama (17)

Product discovery engineering point of view
Product discovery   engineering point of viewProduct discovery   engineering point of view
Product discovery engineering point of view
 
Scalability, basics, application to systems, teams and processes
Scalability, basics, application to systems, teams and processesScalability, basics, application to systems, teams and processes
Scalability, basics, application to systems, teams and processes
 
Agile, en que te hemos convertido v2
Agile, en que te hemos convertido v2Agile, en que te hemos convertido v2
Agile, en que te hemos convertido v2
 
Entrega continua tomandonos la agilidad en serio
Entrega continua   tomandonos la agilidad en serioEntrega continua   tomandonos la agilidad en serio
Entrega continua tomandonos la agilidad en serio
 
Madrid devops forward devops is not what you think
Madrid devops forward devops is not what you thinkMadrid devops forward devops is not what you think
Madrid devops forward devops is not what you think
 
Bilbostack19 devops is not what you think
Bilbostack19 devops is not what you thinkBilbostack19 devops is not what you think
Bilbostack19 devops is not what you think
 
Continuous delivery practices and real experiences
Continuous delivery   practices and real experiencesContinuous delivery   practices and real experiences
Continuous delivery practices and real experiences
 
Cas18 sobreviviendo en producción / Gestión de Incidencias y aprendizajes
Cas18 sobreviviendo en producción / Gestión de Incidencias y aprendizajesCas18 sobreviviendo en producción / Gestión de Incidencias y aprendizajes
Cas18 sobreviviendo en producción / Gestión de Incidencias y aprendizajes
 
CODE ContinuousDelivery. germinando una cultura agile moderna
CODE  ContinuousDelivery. germinando una cultura agile modernaCODE  ContinuousDelivery. germinando una cultura agile moderna
CODE ContinuousDelivery. germinando una cultura agile moderna
 
CAS2017 Agilidad. Hacia la entrega continua ¿Qué te lo impide?
CAS2017 Agilidad. Hacia la entrega continua ¿Qué te lo impide?CAS2017 Agilidad. Hacia la entrega continua ¿Qué te lo impide?
CAS2017 Agilidad. Hacia la entrega continua ¿Qué te lo impide?
 
Golang design4concurrency
Golang design4concurrencyGolang design4concurrency
Golang design4concurrency
 
Python Herencia vs Composición (Luke soy tu padre)
Python Herencia vs Composición (Luke soy tu padre)Python Herencia vs Composición (Luke soy tu padre)
Python Herencia vs Composición (Luke soy tu padre)
 
Tdd bdd-practico-dominio-rico
Tdd bdd-practico-dominio-ricoTdd bdd-practico-dominio-rico
Tdd bdd-practico-dominio-rico
 
Python SOLID
Python SOLIDPython SOLID
Python SOLID
 
Mejor framework-pythonoo-solid
Mejor framework-pythonoo-solidMejor framework-pythonoo-solid
Mejor framework-pythonoo-solid
 
Python Madrid empaquetamiento deb aplicaciones Python
Python Madrid empaquetamiento deb aplicaciones PythonPython Madrid empaquetamiento deb aplicaciones Python
Python Madrid empaquetamiento deb aplicaciones Python
 
Madrid devops empaquetamientodeb_i
Madrid devops empaquetamientodeb_iMadrid devops empaquetamientodeb_i
Madrid devops empaquetamientodeb_i
 

Último

analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
Ricardo705519
 

Último (20)

semana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.pptsemana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.ppt
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
Presentacion de la ganaderia en la región
Presentacion de la ganaderia en la regiónPresentacion de la ganaderia en la región
Presentacion de la ganaderia en la región
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión interna
 
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTOPRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
PRESENTACION DE LAS PLAGAS Y ENFERMEDADES DEL PALTO
 
Introduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.pptIntroduction to Satellite Communication_esp_FINAL.ppt
Introduction to Satellite Communication_esp_FINAL.ppt
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
 
Trazos paileros para realizar trazos, cortes y calculos.pptx
Trazos paileros para realizar trazos, cortes y calculos.pptxTrazos paileros para realizar trazos, cortes y calculos.pptx
Trazos paileros para realizar trazos, cortes y calculos.pptx
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 
Libro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdfLibro de ingeniería sobre Tecnología Eléctrica.pdf
Libro de ingeniería sobre Tecnología Eléctrica.pdf
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 
Presentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potablePresentación de Redes de alcantarillado y agua potable
Presentación de Redes de alcantarillado y agua potable
 
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.pptTippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
Tippens fisica 7eDIAPOSITIVAS TIPENS Tippens_fisica_7e_diapositivas_33.ppt
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
2024 GUIA PRACTICAS MICROBIOLOGIA- UNA 2017 (1).pdf
 

SCPNA2017 El arte del patadon pa'lante / libro de recetas