SlideShare a Scribd company logo
Agile Design PatternBy: Poppy Martono
Design Smells*smeeeeelly cats*
RigidityDifficult to change
FragilitySingle change = break in many places
Immobilityhard to move
Viscosity of softwareEasier to hack than preserving the design
Viscosity of environmentslow and inefficient development environment
Needless ComplexitySoftware contains element that ain’tuseful atm(*maybe* in the future)
Needless Repetitioncopy paste* code without refactoring*lime cat is back…I really love the lame lime cat…
OpacityDifficult  to understand*code review?*
Enough talking about those lame cats...
How to remove those design smells?
Use SOLID principle
S  : SRPO : OCPL  : LISKOVI   : ISPD : DI
Single Responsibility Principle
most simple principle buthardest to define
What is the single responsibility of each class?
Single responsibility = single reason for change
A class should have one and only one reason to change
Example:This class does too much. Help!
Easy way to follow SRP:Constantly ask yourself whether every method and operation of a class is directlyrelatedto the name of that class
Open Close Principle
Open for extensionClose for modification
How to achieve OCP?TDD = force the system to be testableWe will have to build abstraction to make the system testable
LISKOV Substitution Principle
Clues for LSP ViolationLook for a derivative class:which removefunctionality from base class and does less than its base.not substitutable from base class
Interface Segregation Principle
Dealing with “fat” interfacewhich can be broken up to group of methods and serves different client
On ISP:Client should not be forced to depend on methods they do not use
Dependency Inversion
How to design in agile team?
Design = happens every time, on every line of code
Small steps, small refactoring
Discuss as a team
It’s harder to be kind than to be clever
Remember the “soft” in software, we can always change it later
Congratulations You just read* the book of Agile Design Pattern in C#Author: Robert C. Martin & Micah Martin*about 10 pages out of 1000 pages
Ad

Recommended

Best practices for agile design
Best practices for agile design
Igor Moochnick
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
Igor Moochnick
 
Bringing ideas to life – the dimensions of prototyping
Bringing ideas to life – the dimensions of prototyping
Service Design Berlin
 
Mobile Prototyping
Mobile Prototyping
Donna Lichaw
 
Lean Prototyping - A Practical Guide
Lean Prototyping - A Practical Guide
Framebench
 
The ultimate guide to prototyping
The ultimate guide to prototyping
Marcelo Graciolli
 
How to prototype like a pro
How to prototype like a pro
Amir Khella
 
Prototyping for Interaction Design
Prototyping for Interaction Design
Philip van Allen
 
Designers are from Venus - Presentationas Given to CD2
Designers are from Venus - Presentationas Given to CD2
Chad Udell
 
Prototyping Workshop
Prototyping Workshop
Tamara Pinos
 
Prototyping
Prototyping
Chad Udell
 
Uxpin web ui design patterns 2014
Uxpin web ui design patterns 2014
MoodLabs
 
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Technical Agility institute
 
The Emperor's New Lean UX: Why I'm not using lean UX, and perhaps why you sho...
The Emperor's New Lean UX: Why I'm not using lean UX, and perhaps why you sho...
Everett McKay
 
Amuse UX 2015: Y.Vetrov — Platform Thinking
Amuse UX 2015: Y.Vetrov — Platform Thinking
Yury Vetrov
 
Interaction designers vs algorithms
Interaction designers vs algorithms
cxpartners
 
UX Design With Distributed Teams
UX Design With Distributed Teams
Johannes Baeck
 
Layout and Wireframing
Layout and Wireframing
Omar Duarte
 
Effective prototyping (for Vermont Code Camp)
Effective prototyping (for Vermont Code Camp)
Everett McKay
 
Effective prototyping
Effective prototyping
Everett McKay
 
Designing and prototyping
Designing and prototyping
Andres Baravalle
 
User stories applied ch4
User stories applied ch4
Jen-Chieh Ko
 
Citrix Labs Rapid Prototyping Workshop
Citrix Labs Rapid Prototyping Workshop
Reuven Cohen
 
AD - Developer communication and Technology
AD - Developer communication and Technology
Enplore AB
 
UX Prototyping (UXiD) - Slide by Anton Chandra and Bahni Mahariasha
UX Prototyping (UXiD) - Slide by Anton Chandra and Bahni Mahariasha
Anton Chandra
 
Courageous Design
Courageous Design
Everett McKay
 
UX Tools for Agile Teams – Design Mission
UX Tools for Agile Teams – Design Mission
Marc-Oliver Gern
 
UX Prototyping (UXiD) - Handout by Anton Chandra and Bahni Mahariasha
UX Prototyping (UXiD) - Handout by Anton Chandra and Bahni Mahariasha
Anton Chandra
 
The OO Design Principles
The OO Design Principles
Steve Zhang
 
Design principle vs design patterns
Design principle vs design patterns
Prabhakar Sharma
 

More Related Content

What's hot (20)

Designers are from Venus - Presentationas Given to CD2
Designers are from Venus - Presentationas Given to CD2
Chad Udell
 
Prototyping Workshop
Prototyping Workshop
Tamara Pinos
 
Prototyping
Prototyping
Chad Udell
 
Uxpin web ui design patterns 2014
Uxpin web ui design patterns 2014
MoodLabs
 
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Technical Agility institute
 
The Emperor's New Lean UX: Why I'm not using lean UX, and perhaps why you sho...
The Emperor's New Lean UX: Why I'm not using lean UX, and perhaps why you sho...
Everett McKay
 
Amuse UX 2015: Y.Vetrov — Platform Thinking
Amuse UX 2015: Y.Vetrov — Platform Thinking
Yury Vetrov
 
Interaction designers vs algorithms
Interaction designers vs algorithms
cxpartners
 
UX Design With Distributed Teams
UX Design With Distributed Teams
Johannes Baeck
 
Layout and Wireframing
Layout and Wireframing
Omar Duarte
 
Effective prototyping (for Vermont Code Camp)
Effective prototyping (for Vermont Code Camp)
Everett McKay
 
Effective prototyping
Effective prototyping
Everett McKay
 
Designing and prototyping
Designing and prototyping
Andres Baravalle
 
User stories applied ch4
User stories applied ch4
Jen-Chieh Ko
 
Citrix Labs Rapid Prototyping Workshop
Citrix Labs Rapid Prototyping Workshop
Reuven Cohen
 
AD - Developer communication and Technology
AD - Developer communication and Technology
Enplore AB
 
UX Prototyping (UXiD) - Slide by Anton Chandra and Bahni Mahariasha
UX Prototyping (UXiD) - Slide by Anton Chandra and Bahni Mahariasha
Anton Chandra
 
Courageous Design
Courageous Design
Everett McKay
 
UX Tools for Agile Teams – Design Mission
UX Tools for Agile Teams – Design Mission
Marc-Oliver Gern
 
UX Prototyping (UXiD) - Handout by Anton Chandra and Bahni Mahariasha
UX Prototyping (UXiD) - Handout by Anton Chandra and Bahni Mahariasha
Anton Chandra
 
Designers are from Venus - Presentationas Given to CD2
Designers are from Venus - Presentationas Given to CD2
Chad Udell
 
Prototyping Workshop
Prototyping Workshop
Tamara Pinos
 
Uxpin web ui design patterns 2014
Uxpin web ui design patterns 2014
MoodLabs
 
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Demystifying pair programming, swarming and mob programming - Shrikant Vashis...
Technical Agility institute
 
The Emperor's New Lean UX: Why I'm not using lean UX, and perhaps why you sho...
The Emperor's New Lean UX: Why I'm not using lean UX, and perhaps why you sho...
Everett McKay
 
Amuse UX 2015: Y.Vetrov — Platform Thinking
Amuse UX 2015: Y.Vetrov — Platform Thinking
Yury Vetrov
 
Interaction designers vs algorithms
Interaction designers vs algorithms
cxpartners
 
UX Design With Distributed Teams
UX Design With Distributed Teams
Johannes Baeck
 
Layout and Wireframing
Layout and Wireframing
Omar Duarte
 
Effective prototyping (for Vermont Code Camp)
Effective prototyping (for Vermont Code Camp)
Everett McKay
 
Effective prototyping
Effective prototyping
Everett McKay
 
User stories applied ch4
User stories applied ch4
Jen-Chieh Ko
 
Citrix Labs Rapid Prototyping Workshop
Citrix Labs Rapid Prototyping Workshop
Reuven Cohen
 
AD - Developer communication and Technology
AD - Developer communication and Technology
Enplore AB
 
UX Prototyping (UXiD) - Slide by Anton Chandra and Bahni Mahariasha
UX Prototyping (UXiD) - Slide by Anton Chandra and Bahni Mahariasha
Anton Chandra
 
UX Tools for Agile Teams – Design Mission
UX Tools for Agile Teams – Design Mission
Marc-Oliver Gern
 
UX Prototyping (UXiD) - Handout by Anton Chandra and Bahni Mahariasha
UX Prototyping (UXiD) - Handout by Anton Chandra and Bahni Mahariasha
Anton Chandra
 

Similar to Agile design pattern (20)

The OO Design Principles
The OO Design Principles
Steve Zhang
 
Design principle vs design patterns
Design principle vs design patterns
Prabhakar Sharma
 
Software design principles
Software design principles
Md.Mojibul Hoque
 
Solid
Solid
savithaks2211
 
Geecon09: SOLID Design Principles
Geecon09: SOLID Design Principles
Bruno Bossola
 
Refactoring page objects The Screenplay Pattern
Refactoring page objects The Screenplay Pattern
RiverGlide
 
DesignPrinciples-and-DesignPatterns
DesignPrinciples-and-DesignPatterns
Basavaraj Patil
 
Simple is the best
Simple is the best
Barış Çelik
 
Is your code solid
Is your code solid
Nathan Gloyn
 
Improving Software Quality Using Object Oriented Design Principles
Improving Software Quality Using Object Oriented Design Principles
Dr. Syed Hassan Amin
 
How to Master Development's Solid Principles | Tutort Academy
How to Master Development's Solid Principles | Tutort Academy
Tutort Academy
 
Solid principes
Solid principes
Steven Ndaye
 
Clean code-v2.2
Clean code-v2.2
Bình Trọng Án
 
GoF Design patterns I: Introduction + Structural Patterns
GoF Design patterns I: Introduction + Structural Patterns
Sameh Deabes
 
SOLID principles-Present
SOLID principles-Present
Quang Nguyen
 
Is your code SOLID enough?
Is your code SOLID enough?
SARCCOM
 
Solid design principles
Solid design principles
Mahmoud Asadi
 
Soild principles
Soild principles
Avidnyat Chiddarwar
 
Solid principles
Solid principles
Kumaresh Chandra Baruri
 
Software Design Principles
Software Design Principles
Ocean Dong
 
The OO Design Principles
The OO Design Principles
Steve Zhang
 
Design principle vs design patterns
Design principle vs design patterns
Prabhakar Sharma
 
Software design principles
Software design principles
Md.Mojibul Hoque
 
Geecon09: SOLID Design Principles
Geecon09: SOLID Design Principles
Bruno Bossola
 
Refactoring page objects The Screenplay Pattern
Refactoring page objects The Screenplay Pattern
RiverGlide
 
DesignPrinciples-and-DesignPatterns
DesignPrinciples-and-DesignPatterns
Basavaraj Patil
 
Is your code solid
Is your code solid
Nathan Gloyn
 
Improving Software Quality Using Object Oriented Design Principles
Improving Software Quality Using Object Oriented Design Principles
Dr. Syed Hassan Amin
 
How to Master Development's Solid Principles | Tutort Academy
How to Master Development's Solid Principles | Tutort Academy
Tutort Academy
 
GoF Design patterns I: Introduction + Structural Patterns
GoF Design patterns I: Introduction + Structural Patterns
Sameh Deabes
 
SOLID principles-Present
SOLID principles-Present
Quang Nguyen
 
Is your code SOLID enough?
Is your code SOLID enough?
SARCCOM
 
Solid design principles
Solid design principles
Mahmoud Asadi
 
Software Design Principles
Software Design Principles
Ocean Dong
 
Ad

Recently uploaded (20)

Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
Mastering AI Workflows with FME by Mark Döring
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
Mastering AI Workflows with FME by Mark Döring
Mastering AI Workflows with FME by Mark Döring
Safe Software
 
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
Ad

Agile design pattern