SlideShare a Scribd company logo
1 of 40
Agile Evolutionary Design & SOLID Principles
Introduction ,[object Object]
Agile Design Process
SOLID principles
And coding time :)
Questions anytime.
Typical Evolution of System Dream system designed to perfection and beauty.  Meaning of beauty and perfection are subjective. What do those mean for you?
Typical Evolution of System Adding features
Typical Evolution of System Changing features
Birth of Legacy System Somewhere in near future
Agile Design Process
Beautiful System Beautiful System
Adding a feature
Clean the mess We will see some of the techniques which will help us to keep the system clean in this presentation.
After a period of time Beautiful System.
What is Agile Design? ,[object Object]
Not doing an anticipatory design
But still setting a stage for design to evolve for  tomorrow ,[object Object]
XP Practices
But at code level what helps to create simple and evolutionary design?
Sample Application – Reporting App Concentrate on the principles and not on the app Read the flat file and generate the report Reporter App ,[object Object]
ReadFile
Extract Data
FormatReport Reporter App File
SOLID Principles
SOLID Principles ,[object Object]
Open Closed Principle
Liskov Substitution Principle
Interface Segregation Principle
Dependency Inversion Principle
Single Responsibility Principle
Single Responsibility Principle ,[object Object]
Or a class should not handle more than one responsibility
Design smell  –  Class changed when unrelated responsibilities  change. High afferent coupling? Or multiple classes changed  when a responsibility changes. High Efferent Coupling?
Shotgun surgery and divergent change
If it is not possible to separate the responsibilities at least  show the presence of multiple roles played by the object.
Applies not just for classes but also for modules, functions as  well
Better cohesion, encapsulation and less coupled design
Better design applying SRP Requirement Changes ,[object Object]
May be will add more report formats (Graphical etc..) Reporter App Report Data Extractor Report Formatter CSV Format JSON Format

More Related Content

Viewers also liked

Introducing agility to non-agile organisations - LKUK14
Introducing agility to non-agile organisations - LKUK14Introducing agility to non-agile organisations - LKUK14
Introducing agility to non-agile organisations - LKUK14Jose Casal-Gimenez FBCS CITP
 
Enterprise agile Process
Enterprise agile ProcessEnterprise agile Process
Enterprise agile Processravindra sharma
 
Project management is the discipline of planning
Project management is the discipline of planningProject management is the discipline of planning
Project management is the discipline of planningPhilip Menezes
 
Improving your Agile Process
Improving your Agile ProcessImproving your Agile Process
Improving your Agile ProcessDavid Copeland
 
JavaScript Survival Guide
JavaScript Survival GuideJavaScript Survival Guide
JavaScript Survival GuideGiordano Scalzo
 
Agile Simplified
Agile SimplifiedAgile Simplified
Agile SimplifiedWalaa Atef
 
Evolution of the Software Development Process at Digital Natives
Evolution of the Software Development Process at Digital NativesEvolution of the Software Development Process at Digital Natives
Evolution of the Software Development Process at Digital NativesZsolt Fabok
 
The Difficult Life of a Lean Team Leader
The Difficult Life of a Lean Team LeaderThe Difficult Life of a Lean Team Leader
The Difficult Life of a Lean Team LeaderZsolt Fabok
 
Agile in Stealth Mode
Agile in Stealth ModeAgile in Stealth Mode
Agile in Stealth ModeZsolt Fabok
 
Measure and Manage Flow in Practice
Measure and Manage Flow in PracticeMeasure and Manage Flow in Practice
Measure and Manage Flow in PracticeZsolt Fabok
 
Measure and Manage Flow v2
Measure and Manage Flow v2Measure and Manage Flow v2
Measure and Manage Flow v2Zsolt Fabok
 
Kanban in 5 minutes
Kanban in 5 minutesKanban in 5 minutes
Kanban in 5 minutesZsolt Fabok
 
Queueing theory in software development - ALEBathtub 2011-06-30
Queueing theory in software development - ALEBathtub 2011-06-30Queueing theory in software development - ALEBathtub 2011-06-30
Queueing theory in software development - ALEBathtub 2011-06-30Håkan Forss
 
[LKUK13] I Broke the WIP Limit Twice, and I'm Still on the Team
[LKUK13] I Broke the WIP Limit Twice, and I'm Still on the Team[LKUK13] I Broke the WIP Limit Twice, and I'm Still on the Team
[LKUK13] I Broke the WIP Limit Twice, and I'm Still on the TeamZsolt Fabok
 
Smartbyte Moneysaver Proof
Smartbyte  Moneysaver ProofSmartbyte  Moneysaver Proof
Smartbyte Moneysaver ProofJackEdelson
 
Agile for non-IT projects
Agile for non-IT projectsAgile for non-IT projects
Agile for non-IT projectsPavel Dabrytski
 
Enterprise^2 going agile - Siemens Manufacturing Software Case Study - Yael B...
Enterprise^2 going agile - Siemens Manufacturing Software Case Study - Yael B...Enterprise^2 going agile - Siemens Manufacturing Software Case Study - Yael B...
Enterprise^2 going agile - Siemens Manufacturing Software Case Study - Yael B...AgileSparks
 

Viewers also liked (20)

Introducing agility to non-agile organisations - LKUK14
Introducing agility to non-agile organisations - LKUK14Introducing agility to non-agile organisations - LKUK14
Introducing agility to non-agile organisations - LKUK14
 
Enterprise agile Process
Enterprise agile ProcessEnterprise agile Process
Enterprise agile Process
 
Project management is the discipline of planning
Project management is the discipline of planningProject management is the discipline of planning
Project management is the discipline of planning
 
Improving your Agile Process
Improving your Agile ProcessImproving your Agile Process
Improving your Agile Process
 
JavaScript Survival Guide
JavaScript Survival GuideJavaScript Survival Guide
JavaScript Survival Guide
 
Agile Simplified
Agile SimplifiedAgile Simplified
Agile Simplified
 
Evolution of the Software Development Process at Digital Natives
Evolution of the Software Development Process at Digital NativesEvolution of the Software Development Process at Digital Natives
Evolution of the Software Development Process at Digital Natives
 
The Difficult Life of a Lean Team Leader
The Difficult Life of a Lean Team LeaderThe Difficult Life of a Lean Team Leader
The Difficult Life of a Lean Team Leader
 
Agile in Stealth Mode
Agile in Stealth ModeAgile in Stealth Mode
Agile in Stealth Mode
 
Measure and Manage Flow in Practice
Measure and Manage Flow in PracticeMeasure and Manage Flow in Practice
Measure and Manage Flow in Practice
 
Measure and Manage Flow v2
Measure and Manage Flow v2Measure and Manage Flow v2
Measure and Manage Flow v2
 
Kanban in 5 minutes
Kanban in 5 minutesKanban in 5 minutes
Kanban in 5 minutes
 
Tribes
TribesTribes
Tribes
 
Queueing theory in software development - ALEBathtub 2011-06-30
Queueing theory in software development - ALEBathtub 2011-06-30Queueing theory in software development - ALEBathtub 2011-06-30
Queueing theory in software development - ALEBathtub 2011-06-30
 
Kanban
KanbanKanban
Kanban
 
[LKUK13] I Broke the WIP Limit Twice, and I'm Still on the Team
[LKUK13] I Broke the WIP Limit Twice, and I'm Still on the Team[LKUK13] I Broke the WIP Limit Twice, and I'm Still on the Team
[LKUK13] I Broke the WIP Limit Twice, and I'm Still on the Team
 
Smartbyte Moneysaver Proof
Smartbyte  Moneysaver ProofSmartbyte  Moneysaver Proof
Smartbyte Moneysaver Proof
 
Effect of Batch Size on Work Flow
Effect of Batch Size on Work FlowEffect of Batch Size on Work Flow
Effect of Batch Size on Work Flow
 
Agile for non-IT projects
Agile for non-IT projectsAgile for non-IT projects
Agile for non-IT projects
 
Enterprise^2 going agile - Siemens Manufacturing Software Case Study - Yael B...
Enterprise^2 going agile - Siemens Manufacturing Software Case Study - Yael B...Enterprise^2 going agile - Siemens Manufacturing Software Case Study - Yael B...
Enterprise^2 going agile - Siemens Manufacturing Software Case Study - Yael B...
 

Similar to Evolutionary Design Solid

Architecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachArchitecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachBen Stopford
 
Ncrafts.io - Refactor your software architecture
Ncrafts.io - Refactor your software architectureNcrafts.io - Refactor your software architecture
Ncrafts.io - Refactor your software architectureJulien Lavigne du Cadet
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Mozaic Works
 
CBSE VS SOA Presentation
CBSE VS SOA PresentationCBSE VS SOA Presentation
CBSE VS SOA PresentationMaulik Parikh
 
CBSE VS SOA SJSU Presentation
CBSE VS SOA SJSU PresentationCBSE VS SOA SJSU Presentation
CBSE VS SOA SJSU Presentationmgp1560
 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software qualityUtkarsh Agarwal
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arpGary Pedretti
 
Class 12th IP project on buisness management
Class 12th IP project on buisness managementClass 12th IP project on buisness management
Class 12th IP project on buisness managementsankhlasheetal3
 
Clean architecture with asp.net core
Clean architecture with asp.net coreClean architecture with asp.net core
Clean architecture with asp.net coreSam Nasr, MCSA, MVP
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicDavid Solivan
 
Legacy ECM Migration
Legacy ECM MigrationLegacy ECM Migration
Legacy ECM MigrationLantzy14
 
Cetas - Application Development Services
Cetas - Application Development ServicesCetas - Application Development Services
Cetas - Application Development ServicesKabilan D
 
"Up-Down Development & DSL-first approach", Владимир Мельник, DataArt
 "Up-Down Development & DSL-first approach", Владимир Мельник, DataArt "Up-Down Development & DSL-first approach", Владимир Мельник, DataArt
"Up-Down Development & DSL-first approach", Владимир Мельник, DataArtDataArt
 

Similar to Evolutionary Design Solid (20)

Evolutionary Design Solid
Evolutionary Design SolidEvolutionary Design Solid
Evolutionary Design Solid
 
Architecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachArchitecting for Change: An Agile Approach
Architecting for Change: An Agile Approach
 
Ncrafts.io - Refactor your software architecture
Ncrafts.io - Refactor your software architectureNcrafts.io - Refactor your software architecture
Ncrafts.io - Refactor your software architecture
 
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
Simon Brown: Software Architecture as Code at I T.A.K.E. Unconference 2015
 
CBSE VS SOA Presentation
CBSE VS SOA PresentationCBSE VS SOA Presentation
CBSE VS SOA Presentation
 
CBSE VS SOA SJSU Presentation
CBSE VS SOA SJSU PresentationCBSE VS SOA SJSU Presentation
CBSE VS SOA SJSU Presentation
 
Thoughtful Software Design
Thoughtful Software DesignThoughtful Software Design
Thoughtful Software Design
 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software quality
 
CV - Manuel_Lara
CV - Manuel_LaraCV - Manuel_Lara
CV - Manuel_Lara
 
DDD
DDDDDD
DDD
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
 
Designingapplswithnet
DesigningapplswithnetDesigningapplswithnet
Designingapplswithnet
 
L02 Architecture
L02 ArchitectureL02 Architecture
L02 Architecture
 
Class 12th IP project on buisness management
Class 12th IP project on buisness managementClass 12th IP project on buisness management
Class 12th IP project on buisness management
 
Clean architecture with asp.net core
Clean architecture with asp.net coreClean architecture with asp.net core
Clean architecture with asp.net core
 
The Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs PublicThe Magic Of Application Lifecycle Management In Vs Public
The Magic Of Application Lifecycle Management In Vs Public
 
soa1.ppt
soa1.pptsoa1.ppt
soa1.ppt
 
Legacy ECM Migration
Legacy ECM MigrationLegacy ECM Migration
Legacy ECM Migration
 
Cetas - Application Development Services
Cetas - Application Development ServicesCetas - Application Development Services
Cetas - Application Development Services
 
"Up-Down Development & DSL-first approach", Владимир Мельник, DataArt
 "Up-Down Development & DSL-first approach", Владимир Мельник, DataArt "Up-Down Development & DSL-first approach", Владимир Мельник, DataArt
"Up-Down Development & DSL-first approach", Владимир Мельник, DataArt
 

Recently uploaded

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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...Drew Madelung
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Recently uploaded (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Evolutionary Design Solid