SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Building Software
That Lasts
Agile India 2018
Kris Howard @web_goddess
LEGACY
CODEBASE
😱
Legacy software
🔥 Rewrite it completely 🔥
OR

⛵ Incremental redevelopment ⛵
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.
Characteristics
• Ability to evolve over time

• Separation of concerns
Characteristics
• Ability to evolve over time

• Separation of concerns

• Use of standard languages
Characteristics
• Ability to evolve over time

• Separation of concerns

• Use of standard languages

• Minimising of dependencies
Characteristics
• Ability to evolve over time

• Separation of concerns

• Use of standard languages

• Minimising of dependencies

• Simple, readable code
Characteristics
• Ability to evolve over time

• Separation of concerns

• Use of standard languages

• Minimising of dependencies

• Simple, readable code 

• Fault-tolerance and fast recovery
Characteristics
• Ability to evolve over time

• Separation of concerns

• Use of standard languages

• Minimising of dependencies

• Simple, readable code 

• Fault-tolerance and fast recovery
Best practices
• Coding standards and code reviews
Best practices
• Coding standards and code reviews

• Static analysis tools
Best practices
• Coding standards and code reviews

• Static analysis tools

• Defensive programming
Best practices
• Coding standards and code reviews

• Static analysis tools

• Defensive programming

• Property-based testing
Best practices
• Coding standards and code reviews

• Static analysis tools

• Defensive programming

• Property-based testing

• The Campsite Rule
Best practices
• Coding standards and code reviews

• Static analysis tools

• Defensive programming

• Property-based testing

• The Campsite Rule

• Documentation
Back to my story…
To recap…
Legacy software
🔥 Rewrite it completely 🔥
OR

⛵ Incremental redevelopment ⛵
Characteristics
• Ability to evolve over time

• Separation of concerns

• Use of standard languages

• Minimising of dependencies

• Simple, readable code 

• Fault-tolerance and fast recovery
Best practices
• Coding standards and code reviews

• Static analysis tools

• Defensive programming

• Property-based testing

• The Campsite Rule

• Documentation
Thank you!
Agile India 2018
Kris Howard @web_goddess

Contenu connexe

Tendances

An Attacker's View of Serverless and GraphQL Apps - Abhay Bhargav - AppSec Ca...
An Attacker's View of Serverless and GraphQL Apps - Abhay Bhargav - AppSec Ca...An Attacker's View of Serverless and GraphQL Apps - Abhay Bhargav - AppSec Ca...
An Attacker's View of Serverless and GraphQL Apps - Abhay Bhargav - AppSec Ca...
Abhay Bhargav
 

Tendances (7)

Scala Bay Meetup - The state of Scala code style and quality
Scala Bay Meetup - The state of Scala code style and qualityScala Bay Meetup - The state of Scala code style and quality
Scala Bay Meetup - The state of Scala code style and quality
 
An Attacker's View of Serverless and GraphQL Apps - Abhay Bhargav - AppSec Ca...
An Attacker's View of Serverless and GraphQL Apps - Abhay Bhargav - AppSec Ca...An Attacker's View of Serverless and GraphQL Apps - Abhay Bhargav - AppSec Ca...
An Attacker's View of Serverless and GraphQL Apps - Abhay Bhargav - AppSec Ca...
 
Roadmap to Enterprise Quality
Roadmap to Enterprise QualityRoadmap to Enterprise Quality
Roadmap to Enterprise Quality
 
Cucumber basics
Cucumber basicsCucumber basics
Cucumber basics
 
Client Technical Analysis of Legacy Software and Future Replacement
Client Technical Analysis of Legacy Software and Future ReplacementClient Technical Analysis of Legacy Software and Future Replacement
Client Technical Analysis of Legacy Software and Future Replacement
 
Embrace the Implicit
Embrace the ImplicitEmbrace the Implicit
Embrace the Implicit
 
The Netflix API for a global service
The Netflix API for a global serviceThe Netflix API for a global service
The Netflix API for a global service
 

Similaire à Building Software That Lasts

Blackboard DevCon 2012 - Ensuring Code Quality
Blackboard DevCon 2012 - Ensuring Code QualityBlackboard DevCon 2012 - Ensuring Code Quality
Blackboard DevCon 2012 - Ensuring Code Quality
Noriaki Tatsumi
 
Quality metrics and angular js applications
Quality metrics and angular js applicationsQuality metrics and angular js applications
Quality metrics and angular js applications
nadeembtech
 
WTF TDD?
WTF TDD?WTF TDD?
WTF TDD?
jeremyw
 
Mr. Burhan Khalid - secure dev.
Mr. Burhan Khalid - secure dev.Mr. Burhan Khalid - secure dev.
Mr. Burhan Khalid - secure dev.
nooralmousa
 

Similaire à Building Software That Lasts (20)

Building Software That Lasts - Voxxed Days Singapore
Building Software That Lasts - Voxxed Days SingaporeBuilding Software That Lasts - Voxxed Days Singapore
Building Software That Lasts - Voxxed Days Singapore
 
Cucumber in Practice(en)
Cucumber in Practice(en)Cucumber in Practice(en)
Cucumber in Practice(en)
 
Microservices; A Quick Introduction
Microservices; A Quick IntroductionMicroservices; A Quick Introduction
Microservices; A Quick Introduction
 
Testing banking apps
Testing banking appsTesting banking apps
Testing banking apps
 
Agile software development for startups
Agile software development for startupsAgile software development for startups
Agile software development for startups
 
Useful automation
Useful automationUseful automation
Useful automation
 
Continuous Globalization Workflow Webinar Slides
Continuous Globalization Workflow Webinar SlidesContinuous Globalization Workflow Webinar Slides
Continuous Globalization Workflow Webinar Slides
 
Blackboard DevCon 2012 - Ensuring Code Quality
Blackboard DevCon 2012 - Ensuring Code QualityBlackboard DevCon 2012 - Ensuring Code Quality
Blackboard DevCon 2012 - Ensuring Code Quality
 
Quality metrics and angular js applications
Quality metrics and angular js applicationsQuality metrics and angular js applications
Quality metrics and angular js applications
 
Static Code Analysis
Static Code AnalysisStatic Code Analysis
Static Code Analysis
 
Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?Go - A Key Language in Enterprise Application Development?
Go - A Key Language in Enterprise Application Development?
 
How To Use Selenium Successfully
How To Use Selenium SuccessfullyHow To Use Selenium Successfully
How To Use Selenium Successfully
 
WTF TDD?
WTF TDD?WTF TDD?
WTF TDD?
 
Cucumber With Selenium
Cucumber With SeleniumCucumber With Selenium
Cucumber With Selenium
 
Software Quality without Testing
Software Quality without TestingSoftware Quality without Testing
Software Quality without Testing
 
Mr. Burhan Khalid - secure dev.
Mr. Burhan Khalid - secure dev.Mr. Burhan Khalid - secure dev.
Mr. Burhan Khalid - secure dev.
 
Secured Development
Secured DevelopmentSecured Development
Secured Development
 
Greenfield Java 2013
Greenfield Java 2013Greenfield Java 2013
Greenfield Java 2013
 
Selling WordPress to Enterprises by Rahul Bansal @ WordCamp Ann Arbor
Selling WordPress to Enterprises by Rahul Bansal @ WordCamp Ann ArborSelling WordPress to Enterprises by Rahul Bansal @ WordCamp Ann Arbor
Selling WordPress to Enterprises by Rahul Bansal @ WordCamp Ann Arbor
 
eXtreme Programming
eXtreme ProgrammingeXtreme Programming
eXtreme Programming
 

Plus de Kristine Howard

Plus de Kristine Howard (20)

Machine Learning for Software Developers (...and Knitters)
Machine Learning for Software Developers (...and Knitters)Machine Learning for Software Developers (...and Knitters)
Machine Learning for Software Developers (...and Knitters)
 
Knitted Disruption - Build Stuff LIthuania 2019
Knitted Disruption - Build Stuff LIthuania 2019Knitted Disruption - Build Stuff LIthuania 2019
Knitted Disruption - Build Stuff LIthuania 2019
 
Knitted Disruption - Build Stuff Ukraine 2019
Knitted Disruption - Build Stuff Ukraine 2019Knitted Disruption - Build Stuff Ukraine 2019
Knitted Disruption - Build Stuff Ukraine 2019
 
All About Ravelry (Weavers and Spinners edition!)
All About Ravelry (Weavers and Spinners edition!)All About Ravelry (Weavers and Spinners edition!)
All About Ravelry (Weavers and Spinners edition!)
 
Traversing the Org Chart
Traversing the Org ChartTraversing the Org Chart
Traversing the Org Chart
 
The Campsite Rule - Leaving the Tech Industry Better Than We Found It
The Campsite Rule - Leaving the Tech Industry Better Than We Found ItThe Campsite Rule - Leaving the Tech Industry Better Than We Found It
The Campsite Rule - Leaving the Tech Industry Better Than We Found It
 
My Website is Old Enough to Vote - My Website Can Vote - Building Sites That ...
My Website is Old Enough to Vote - My Website Can Vote - Building Sites That ...My Website is Old Enough to Vote - My Website Can Vote - Building Sites That ...
My Website is Old Enough to Vote - My Website Can Vote - Building Sites That ...
 
Knit One Compute One - For Knitters!
Knit One Compute One - For Knitters!Knit One Compute One - For Knitters!
Knit One Compute One - For Knitters!
 
My Website Can Vote - Building Sites That Last
My Website Can Vote - Building Sites That LastMy Website Can Vote - Building Sites That Last
My Website Can Vote - Building Sites That Last
 
Knit One, Compute One - Software Art Thou?
Knit One, Compute One - Software Art Thou?Knit One, Compute One - Software Art Thou?
Knit One, Compute One - Software Art Thou?
 
Knit One, Compute One - YOW! Night Perth
Knit One, Compute One - YOW! Night PerthKnit One, Compute One - YOW! Night Perth
Knit One, Compute One - YOW! Night Perth
 
Knit One, Compute One - YOW! 2016
Knit One, Compute One - YOW! 2016Knit One, Compute One - YOW! 2016
Knit One, Compute One - YOW! 2016
 
My Website Can Vote - The Challenges of Maintaining a 20-year-old Website
My Website Can Vote - The Challenges of Maintaining a 20-year-old WebsiteMy Website Can Vote - The Challenges of Maintaining a 20-year-old Website
My Website Can Vote - The Challenges of Maintaining a 20-year-old Website
 
Granny Was a Hacker - TEDx Melbourne
Granny Was a Hacker - TEDx MelbourneGranny Was a Hacker - TEDx Melbourne
Granny Was a Hacker - TEDx Melbourne
 
Taking the Management Leap
Taking the Management LeapTaking the Management Leap
Taking the Management Leap
 
Intro to Ravelry
Intro to RavelryIntro to Ravelry
Intro to Ravelry
 
Granny Was a Hacker (CampJS Version)
Granny Was a Hacker (CampJS Version)Granny Was a Hacker (CampJS Version)
Granny Was a Hacker (CampJS Version)
 
The Tyranny of the Business Card
The Tyranny of the Business CardThe Tyranny of the Business Card
The Tyranny of the Business Card
 
Canva Comma Club Cushion
Canva Comma Club CushionCanva Comma Club Cushion
Canva Comma Club Cushion
 
Wireframing Workshop - TiE Women Create-a-Thon
Wireframing Workshop - TiE Women Create-a-ThonWireframing Workshop - TiE Women Create-a-Thon
Wireframing Workshop - TiE Women Create-a-Thon
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

Building Software That Lasts