Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Building Software That Lasts

190 views

Published on

My talk from Agile India 2018.

Published in: Technology
  • Be the first to comment

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

×