scbnc17 simplicidad para_desarrolladores

Post on 29-Jan-2018

38 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Simplicidad para desarrolladores

chema comenzó un nuevo producto

Era sencillo, claro y requeria pocas funcionalidades... y por tanto poco código.

El producto crecía A buen ritmo

Nuevas funcionalidades, algunas muy valoradas y otras no tanto. Al mismo tiempo la complejidad del sistema crecía de forma sospechosamente NO lineal…

Foco en lo visible

chema comenzó a sentir el agobio

Más complejidad, más dificultad, mucha carga mental… nuevas funcionalidades, incorporar más gente, modificar cosas, era un DOLOR...

Dolor, DOLOR, CAOS, ANSIEDAD, Frustración.

Hold the door,HOld th door,Hold t door,Hol t door,Hol door,

hodor!!!

Lucha por la simplicidad O la

complejidad ganará y vivirás el

infierno

Buenas!Eduardo Ferro AldamaZen Developer / Chamán@eferro

SACACORCHOS

Centrarnos en el futuro

¿Qué hace complicado el código?

Conocimiento progresivo

No somos adivinos

Abraza el cambio

Abraza la incertidumbre

¿Qué hace complicado el código?

Intentar hacerlo RE-USABLE

“Keep reusability for libraries, not for

services”@ufried

Porno Tecnológico

¿Qué hace complicado el código?

CvDrivenDevelopment

Somos profesionales ¿No?

0.¿Cómo HACERLO simple?

¿Cómo hacerlo simple?

Poca complejidad

Soluciones simples

Eliminando complejidad de forma continua

Aproximaciones sucesivas

Suficientemente bueno× TIENE TESTS× Se entiende× Es pequeño

× Producción (a por feedback)

¿Cuando lo vuelvo a cambiar?

1.Código simple

4 rules of simple design1. Runs all the tests

2. Has no duplicated logic3. States every intention important to the

programmer4. Has the fewest possible classes and methods

Kent Beck

4 rules of simple design

1. Passes the tests2. Reveals intention3. No duplication4. Fewest elements

Martin Fowler

TDD cycle

Red Green Refactor

“Software is messy because it reflects our evolving understanding

of the problem as we wrote it”

SArah MEi

2.arquitectura simple

Arquitectura Adaptable

Arquitectura EvolutivaCrecimiento orgánico

Muchas herramientas y soluciones

Refactor continuo

LA constante es el cambio

Supervivencia no garantizada

Identificar puntos de fallo de un

sistema

Chaos engineeringVS

Ejemplo

Mantener estado/Conf

servidores

Servidores InmutablesVS

Ejemplo

Calcular cambios de estado

Almacenar eventos VS

Ejemplo

Supervisión: resolver fallos

parciales

Supervisión: Reiniciar a estado

conocidoVS

Ejemplo

Calcular trabajo pendiente y

rendimiento

Moving average rendimiento actualVS

Ejemplo

Edsger W. Dijkstra

“Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.”

“Keep it simple, make it valuable, build it

piece by piece”

RON Jeffries

GRacias!!!@eferro & www.eferro.net

top related