SlideShare una empresa de Scribd logo
El necesario mal del Legacy Code
Samuel Solís
For Drupal Iberia
The necessary evil of Legacy code
El necesario mal del Legacy code Samuel Solís
Samuel Solís
@estoyausente
El necesario mal del Legacy code Samuel Solís
● Where is the Legacy code from?
(or why it’s necessary)
● How to enjoy the mud
● Some specific Drupal problems
Index
El necesario mal del Legacy code Samuel Solís
How is a ten
years project
El necesario mal del Legacy code Samuel Solís
Long time ago…
El necesario mal del Legacy code Samuel Solís
One-man army
El necesario mal del Legacy code Samuel Solís
Junior team
El necesario mal del Legacy code Samuel Solís
Time & speed
El necesario mal del Legacy code Samuel Solís
Lot of changes and
project evolution
El necesario mal del Legacy code Samuel Solís
- Cheap materials and simple tools
- People not trained for this work
- Laborious construction
- Maintained by its own inhabitants
- The structure doesn't matter
Favelas
El necesario mal del Legacy code Samuel Solís
Technical debt concept
Technical debt is the additional cost due a conscious decision of a fast
execution versus an effective solution.
“ Samuel Solís - Philosopher (just in pubs)
(Aside)
El necesario mal del Legacy code Samuel Solís
Plan A
Plan B
Plan C
Money Time Changes
Summary
El necesario mal del Legacy code Samuel Solís
The Big ball of mud
El necesario mal del Legacy code Samuel Solís
El necesario mal del Legacy code Samuel Solís
Get out of the mud
or play with it
El necesario mal del Legacy code Samuel Solís
El necesario mal del Legacy code Samuel Solís
How to enjoy in the
mud
El necesario mal del Legacy code Samuel Solís
El necesario mal del Legacy code Samuel Solís
Identify the biggest
architecture/structure
problems
El necesario mal del Legacy code Samuel Solís
Standard is a must
El necesario mal del Legacy code Samuel Solís
Be a good Boy Scout
El necesario mal del Legacy code Samuel Solís
Get the quick wins
El necesario mal del Legacy code Samuel Solís
Isolate the issues
El necesario mal del Legacy code Samuel Solís
Avoid the shoddy work
(all of them are already
done)
Common
Ñapa?
El necesario mal del Legacy code Samuel Solís
MAS concept -
Maximum acceptable
shoddiness
--
MCA - Máxima chapuza asumible
El necesario mal del Legacy code Samuel Solís
Quality automation
El necesario mal del Legacy code Samuel Solís
Main Drupal legacy problems
- Too old version (D6, D7)
- Only “old” version (D8, D9)
- Lot of code in bad places (theme, .module, a
single module)
- Bad theming (or bad frontend in general)
Thank you!
Host Partner
Sponsors
@estoyausente
Samuel Solís
El necesario mal del Legacy code Samuel Solís
Learn more…
- A big mall of mud (2003) Brian Foote & Joseph W. Yoder
- Anti-Pattern Detection (2014) Fabio Palomba & Rocco Oliveto
- Working Effectively with Legacy Code (2004) Michael C. Feathers

Más contenido relacionado

Más de Samuel Solís Fuentes

Drupal8 simplepage v2
Drupal8 simplepage v2Drupal8 simplepage v2
Drupal8 simplepage v2
Samuel Solís Fuentes
 
Drupal 8 simple page: Mi primer proyecto en Drupal 8.
Drupal 8 simple page: Mi primer proyecto en Drupal 8.Drupal 8 simple page: Mi primer proyecto en Drupal 8.
Drupal 8 simple page: Mi primer proyecto en Drupal 8.
Samuel Solís Fuentes
 
Como arreglar este desastre
Como arreglar este desastreComo arreglar este desastre
Como arreglar este desastre
Samuel Solís Fuentes
 
Drupal y rails. Nuestra experiencia
Drupal y rails. Nuestra experienciaDrupal y rails. Nuestra experiencia
Drupal y rails. Nuestra experiencia
Samuel Solís Fuentes
 
Mejorar tu código hablando con el cliente
Mejorar tu código hablando con el clienteMejorar tu código hablando con el cliente
Mejorar tu código hablando con el cliente
Samuel Solís Fuentes
 
Taller de introducción al desarrollo de módulos
Taller de introducción al desarrollo de módulosTaller de introducción al desarrollo de módulos
Taller de introducción al desarrollo de módulos
Samuel Solís Fuentes
 
Más limpio que un jaspe.
Más limpio que un jaspe.Más limpio que un jaspe.
Más limpio que un jaspe.
Samuel Solís Fuentes
 
Drupal as a framework
Drupal as a frameworkDrupal as a framework
Drupal as a framework
Samuel Solís Fuentes
 
Arquitectura de información en drupal
Arquitectura de información en drupalArquitectura de información en drupal
Arquitectura de información en drupal
Samuel Solís Fuentes
 
Drupal para desarrolladores
Drupal para desarrolladoresDrupal para desarrolladores
Drupal para desarrolladores
Samuel Solís Fuentes
 

Más de Samuel Solís Fuentes (10)

Drupal8 simplepage v2
Drupal8 simplepage v2Drupal8 simplepage v2
Drupal8 simplepage v2
 
Drupal 8 simple page: Mi primer proyecto en Drupal 8.
Drupal 8 simple page: Mi primer proyecto en Drupal 8.Drupal 8 simple page: Mi primer proyecto en Drupal 8.
Drupal 8 simple page: Mi primer proyecto en Drupal 8.
 
Como arreglar este desastre
Como arreglar este desastreComo arreglar este desastre
Como arreglar este desastre
 
Drupal y rails. Nuestra experiencia
Drupal y rails. Nuestra experienciaDrupal y rails. Nuestra experiencia
Drupal y rails. Nuestra experiencia
 
Mejorar tu código hablando con el cliente
Mejorar tu código hablando con el clienteMejorar tu código hablando con el cliente
Mejorar tu código hablando con el cliente
 
Taller de introducción al desarrollo de módulos
Taller de introducción al desarrollo de módulosTaller de introducción al desarrollo de módulos
Taller de introducción al desarrollo de módulos
 
Más limpio que un jaspe.
Más limpio que un jaspe.Más limpio que un jaspe.
Más limpio que un jaspe.
 
Drupal as a framework
Drupal as a frameworkDrupal as a framework
Drupal as a framework
 
Arquitectura de información en drupal
Arquitectura de información en drupalArquitectura de información en drupal
Arquitectura de información en drupal
 
Drupal para desarrolladores
Drupal para desarrolladoresDrupal para desarrolladores
Drupal para desarrolladores
 

Último

Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 

Último (6)

Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 

El necesario mal del Legacy Code (Drupal Iberia 2024)

  • 1.
  • 2. El necesario mal del Legacy Code Samuel Solís For Drupal Iberia The necessary evil of Legacy code
  • 3. El necesario mal del Legacy code Samuel Solís Samuel Solís @estoyausente
  • 4. El necesario mal del Legacy code Samuel Solís ● Where is the Legacy code from? (or why it’s necessary) ● How to enjoy the mud ● Some specific Drupal problems Index
  • 5. El necesario mal del Legacy code Samuel Solís How is a ten years project
  • 6. El necesario mal del Legacy code Samuel Solís Long time ago…
  • 7. El necesario mal del Legacy code Samuel Solís One-man army
  • 8. El necesario mal del Legacy code Samuel Solís Junior team
  • 9. El necesario mal del Legacy code Samuel Solís Time & speed
  • 10. El necesario mal del Legacy code Samuel Solís Lot of changes and project evolution
  • 11. El necesario mal del Legacy code Samuel Solís - Cheap materials and simple tools - People not trained for this work - Laborious construction - Maintained by its own inhabitants - The structure doesn't matter Favelas
  • 12. El necesario mal del Legacy code Samuel Solís Technical debt concept Technical debt is the additional cost due a conscious decision of a fast execution versus an effective solution. “ Samuel Solís - Philosopher (just in pubs) (Aside)
  • 13. El necesario mal del Legacy code Samuel Solís Plan A Plan B Plan C Money Time Changes Summary
  • 14. El necesario mal del Legacy code Samuel Solís The Big ball of mud
  • 15. El necesario mal del Legacy code Samuel Solís
  • 16. El necesario mal del Legacy code Samuel Solís Get out of the mud or play with it
  • 17. El necesario mal del Legacy code Samuel Solís
  • 18. El necesario mal del Legacy code Samuel Solís How to enjoy in the mud
  • 19. El necesario mal del Legacy code Samuel Solís
  • 20. El necesario mal del Legacy code Samuel Solís Identify the biggest architecture/structure problems
  • 21. El necesario mal del Legacy code Samuel Solís Standard is a must
  • 22. El necesario mal del Legacy code Samuel Solís Be a good Boy Scout
  • 23. El necesario mal del Legacy code Samuel Solís Get the quick wins
  • 24. El necesario mal del Legacy code Samuel Solís Isolate the issues
  • 25. El necesario mal del Legacy code Samuel Solís Avoid the shoddy work (all of them are already done) Common Ñapa?
  • 26. El necesario mal del Legacy code Samuel Solís MAS concept - Maximum acceptable shoddiness -- MCA - Máxima chapuza asumible
  • 27. El necesario mal del Legacy code Samuel Solís Quality automation
  • 28. El necesario mal del Legacy code Samuel Solís Main Drupal legacy problems - Too old version (D6, D7) - Only “old” version (D8, D9) - Lot of code in bad places (theme, .module, a single module) - Bad theming (or bad frontend in general)
  • 30. El necesario mal del Legacy code Samuel Solís Learn more… - A big mall of mud (2003) Brian Foote & Joseph W. Yoder - Anti-Pattern Detection (2014) Fabio Palomba & Rocco Oliveto - Working Effectively with Legacy Code (2004) Michael C. Feathers