Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Scbnc17 simplicidad para_desarrolladores

54 vues

Publié le

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.

Publié dans : Logiciels
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Scbnc17 simplicidad para_desarrolladores

  1. 1. Simplicidad para desarrolladores
  2. 2. chema comenzó un nuevo producto Era sencillo, claro y requeria pocas funcionalidades... y por tanto poco código.
  3. 3. 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…
  4. 4. Foco en lo visible
  5. 5. 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...
  6. 6. Dolor, DOLOR, CAOS, ANSIEDAD, Frustración.
  7. 7. Hold the door, HOld th door, Hold t door, Hol t door, Hol door, hodor!!!
  8. 8. Lucha por la simplicidad O la complejidad ganará y vivirás el infierno
  9. 9. Buenas!Eduardo Ferro Aldama Zen Developer / Chamán @eferro
  10. 10. SACACORCHOS
  11. 11. Centrarnos en el futuro ¿Qué hace complicado el código? Conocimiento progresivo
  12. 12. No somos adivinos Abraza el cambio Abraza la incertidumbre
  13. 13. ¿Qué hace complicado el código? Intentar hacerlo RE-USABLE
  14. 14. “Keep reusability for libraries, not for services” @ufried
  15. 15. Porno Tecnológico ¿Qué hace complicado el código? CvDrivenDevelopment
  16. 16. Somos profesionales ¿No?
  17. 17. 0. ¿Cómo HACERLO simple?
  18. 18. ¿Cómo hacerlo simple? Poca complejidad Soluciones simples Eliminando complejidad de forma continua
  19. 19. Aproximaciones sucesivas
  20. 20. Suficientemente bueno × TIENE TESTS × Se entiende × Es pequeño × Producción (a por feedback)
  21. 21. ¿Cuando lo vuelvo a cambiar?
  22. 22. 1. Código simple
  23. 23. 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
  24. 24. 4 rules of simple design 1. Passes the tests 2. Reveals intention 3. No duplication 4. Fewest elements Martin Fowler
  25. 25. TDD cycle Red Green Refactor
  26. 26. “Software is messy because it reflects our evolving understanding of the problem as we wrote it” SArah MEi
  27. 27. 2. arquitectura simple
  28. 28. Arquitectura Adaptable
  29. 29. Arquitectura Evolutiva Crecimiento orgánico
  30. 30. Muchas herramientas y soluciones
  31. 31. Refactor continuo
  32. 32. LA constante es el cambio
  33. 33. Supervivencia no garantizada
  34. 34. Identificar puntos de fallo de un sistema Chaos engineeringVS Ejemplo
  35. 35. Mantener estado/Conf servidores Servidores InmutablesVS Ejemplo
  36. 36. Calcular cambios de estado Almacenar eventosVS Ejemplo
  37. 37. Supervisión: resolver fallos parciales Supervisión: Reiniciar a estado conocido VS Ejemplo
  38. 38. Calcular trabajo pendiente y rendimiento Moving average rendimiento actualVS Ejemplo
  39. 39. 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.”
  40. 40. “Keep it simple, make it valuable, build it piece by piece” RON Jeffries
  41. 41. ● 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
  42. 42. GRacias!!!@eferro & www.eferro.net

×