https://docs.google.com/presentation/d/1K8xLl6WH-Tpgbn_B41pFtWJhWUqQ9EMEG1LZtvWPoJ4/edit?usp=sharing
La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial. Principios del Manifiesto Ágil
La simplicidad es la base de la programación extrema. Se simplifica el diseño para agilizar el desarrollo y facilitar el mantenimiento. Un diseño complejo del código junto a sucesivas modificaciones por parte de diferentes desarrolladores hacen que la complejidad aumente exponencialmente. XP / Programación Extrema Wikipedia
Para lo importante que es este principio del Manifiesto Ágil y el valor de Simplicidad en XP, creo que lo tenemos muy poco en cuenta y o incluso tenemos la tendencia contraria, generando soluciones complejas no proporcionales al problema a resolver.
Simple no es lo mismo que fácil, ni lo mismo que conocido y requiere de bastante experiencia en reconocer soluciones simples y aplicar distintas soluciones a distintos problemas.
Todo sistema tiene una complejidad inherente al propio problema y complejidad accidental que introducimos los desarrolladores por no entender el problema, por comodidad o porque simplemente no sabemos hacer bien nuestro trabajo.
No nos engañemos, que un sistema esté preparado para evolucionar no significa que tenga millones de puntos de extensión, sino que sea fácil de extender y mantener, para lo que es necesario que se pueda comprender y que tenga la mínima complejidad necesaria (la complejidad inherente al problema).
Digamos adiós a las Megaconstrucciones y las soluciones técnicas que escribimos para satisfacer nuestro propio ego como desarrolladores.
Somos ágiles: “Keep it Simple, make it valuable, build it Piece by Piece” Ron Jeffreis, The Nature of Software Development.
3. chema comenzó un
nuevo producto
Era sencillo, claro y requeria pocas
funcionalidades... y por tanto poco código.
4. 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…
6. 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...
24. 4 rules of simple design
1. Runs all the tests
2. Has no duplicated logic
3. States every intention important to the
programmer
4. Has the fewest possible classes and methods
Kent Beck
25. 4 rules of simple design
1. Passes the tests
2. Reveals intention
3. No duplication
4. Fewest elements
Martin Fowler
42. 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.”
43. “Keep it simple, make
it valuable, build it
piece by piece”
RON Jeffries
44.
45. ● Simple made easy
● 8 lines of code
● Postponer (CAS16)
● PosTponer: libro de recetas (SCPNA17)
● Art of destroying software
● Embracing Uncertainty
● Nature of software development
● Understading the 4 rules of simple design