O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Building Software That Lasts

262 visualizações

Publicada em

My talk from Agile India 2018.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Building Software That Lasts

  1. 1. Building Software That Lasts Agile India 2018 Kris Howard @web_goddess
  2. 2. LEGACY CODEBASE 😱
  3. 3. Legacy software 🔥 Rewrite it completely 🔥 OR ⛵ Incremental redevelopment ⛵
  4. 4. Why to Rewrite •The code is a mess. •The application is slow. •The code is ugly. •We’ll get it right this time! •We picked the wrong platform.
  5. 5. Characteristics • Ability to evolve over time • Separation of concerns
  6. 6. Characteristics • Ability to evolve over time • Separation of concerns • Use of standard languages
  7. 7. Characteristics • Ability to evolve over time • Separation of concerns • Use of standard languages • Minimising of dependencies
  8. 8. Characteristics • Ability to evolve over time • Separation of concerns • Use of standard languages • Minimising of dependencies • Simple, readable code
  9. 9. Characteristics • Ability to evolve over time • Separation of concerns • Use of standard languages • Minimising of dependencies • Simple, readable code • Fault-tolerance and fast recovery
  10. 10. Characteristics • Ability to evolve over time • Separation of concerns • Use of standard languages • Minimising of dependencies • Simple, readable code • Fault-tolerance and fast recovery
  11. 11. Best practices • Coding standards and code reviews
  12. 12. Best practices • Coding standards and code reviews • Static analysis tools
  13. 13. Best practices • Coding standards and code reviews • Static analysis tools • Defensive programming
  14. 14. Best practices • Coding standards and code reviews • Static analysis tools • Defensive programming • Property-based testing
  15. 15. Best practices • Coding standards and code reviews • Static analysis tools • Defensive programming • Property-based testing • The Campsite Rule
  16. 16. Best practices • Coding standards and code reviews • Static analysis tools • Defensive programming • Property-based testing • The Campsite Rule • Documentation
  17. 17. Back to my story…
  18. 18. To recap…
  19. 19. Legacy software 🔥 Rewrite it completely 🔥 OR ⛵ Incremental redevelopment ⛵
  20. 20. Characteristics • Ability to evolve over time • Separation of concerns • Use of standard languages • Minimising of dependencies • Simple, readable code • Fault-tolerance and fast recovery
  21. 21. Best practices • Coding standards and code reviews • Static analysis tools • Defensive programming • Property-based testing • The Campsite Rule • Documentation
  22. 22. Thank you! Agile India 2018 Kris Howard @web_goddess

×