SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
Effective Design

Kent Beck
Three Rivers Institute
Economics

• Time value of money
Unknowns

•   Needs
•   Means
•   Cost
•   Usefulness
Design is Social

• Experience
• Distribution
Theory

• Beneficially relating elements
• Cost driver: rippling changes
  – Coupling
  – Cohesion
• Scale-free
  – Fractal
Process

          Straightforward?
              yes no

          Add Feature

                   Isolate Change


              Refactor         Create
Create

• Principle: safe steps
    – Going back is expensive
•   Leap
•   Parallel
•   Migrate          Old design   New design


•   Simplify
•   Place Stepping Stone
Leap



1.   Make new design
2.   Move all uses
3.   Delete old design
+    Quick
-    Risk of it not working for large changes
Parallel



1.   Make new design
+    Quick
+    Safe—doesn’t disturb existing uses
+    Often used in framework evolution
-    Costly to maintain two designs
-    Need to figure out how to have them
     both run
Migrate



1.   Move a use
+    Quick (per migration)
+    Provides feedback for new design
+    Low risk
-    Costly to migrate many uses
Simplify


•   Eliminate constraints
•   Reduce needs
    –   One, not many
    –   Few, not many
    –   Special case, not general
+   Quick
+   Safe
-   What if it isn’t really progress?
-   What if you ignore the wrong constraint?
Place Stepping Stone


1. Build a language (framework) in which getting
   to the new design is easier
+ Quicker
- What if it doesn’t make the new design easier?
    -     Every extra bit is expensive for uses and
          maintainers
-       Responsibility of language designers and
        implementors is much broader than application
        developers (build, debug, analyze)
Refactorings

-   Isolate changes
-   Extract/Inline method/object
-   Eliminate/introduce duplication
-   Eliminate/introduce abstraction/indirection
    - Interface
    - Superclass
- Move method
- Move field
Conclusion

• Plan backwards from adding
  straightforward features
• Move in safe steps
• Make progress when you can’t see the
  end
• If you can’t make progress, add the
  feature anyway

Contenu connexe

Tendances

Agile in a nutshell
Agile in a nutshellAgile in a nutshell
Agile in a nutshellDoc List
 
[Pcamp19] - Desmistificando o processo de Discovery - Camila Ferreira | Cred...
[Pcamp19] - Desmistificando o processo de Discovery -  Camila Ferreira | Cred...[Pcamp19] - Desmistificando o processo de Discovery -  Camila Ferreira | Cred...
[Pcamp19] - Desmistificando o processo de Discovery - Camila Ferreira | Cred...Product Camp Brasil
 
Kanban Basics for Beginners
Kanban Basics for BeginnersKanban Basics for Beginners
Kanban Basics for BeginnersZsolt Fabok
 
99 inception-deck
99 inception-deck99 inception-deck
99 inception-deckdrewz lin
 
Being Agile with Scrum - koders.co
Being Agile with Scrum - koders.coBeing Agile with Scrum - koders.co
Being Agile with Scrum - koders.coEnder Aydin Orak
 
The 1 Week Minimum Viable Product (MVP)
The 1 Week Minimum Viable Product (MVP)The 1 Week Minimum Viable Product (MVP)
The 1 Week Minimum Viable Product (MVP)Alexis Roqué
 
Doing Agile Isnt The Same As Being Agile
Doing Agile Isnt The Same As Being AgileDoing Agile Isnt The Same As Being Agile
Doing Agile Isnt The Same As Being Agilelazygolfer
 
20190923 AgileDC 2019 Conf Kanban AntiPatterns: What you don't know *can* hur...
20190923 AgileDC 2019 Conf Kanban AntiPatterns: What you don't know *can* hur...20190923 AgileDC 2019 Conf Kanban AntiPatterns: What you don't know *can* hur...
20190923 AgileDC 2019 Conf Kanban AntiPatterns: What you don't know *can* hur...Craeg Strong
 
Product Validation With Product Discovery
Product Validation With Product Discovery Product Validation With Product Discovery
Product Validation With Product Discovery Hengki Sihombing
 
Agile and Lean Software Development
Agile and Lean Software DevelopmentAgile and Lean Software Development
Agile and Lean Software DevelopmentTathagat Varma
 
How to Build Product Roadmaps by AppNexus VP of Product
How to Build Product Roadmaps by AppNexus VP of ProductHow to Build Product Roadmaps by AppNexus VP of Product
How to Build Product Roadmaps by AppNexus VP of ProductProduct School
 
Project To Product: How we transitioned to product-aligned value streams
Project To Product: How we transitioned to product-aligned value streamsProject To Product: How we transitioned to product-aligned value streams
Project To Product: How we transitioned to product-aligned value streamsTasktop
 
The Agile Product Owner: Beyond the Books and Classrooms
The Agile Product Owner: Beyond the Books and ClassroomsThe Agile Product Owner: Beyond the Books and Classrooms
The Agile Product Owner: Beyond the Books and ClassroomsEnterprise Knowledge
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at FlickrJohn Allspaw
 
Working Backwards from the Customer
Working Backwards from the CustomerWorking Backwards from the Customer
Working Backwards from the CustomerAmazon Web Services
 
Introduction au Value Stream Management
Introduction au Value Stream ManagementIntroduction au Value Stream Management
Introduction au Value Stream ManagementEtienne Laverdière
 
Design Jams! How to run creative sessions with the people who use your product.
Design Jams! How to run creative sessions with the people who use your product.Design Jams! How to run creative sessions with the people who use your product.
Design Jams! How to run creative sessions with the people who use your product.UXPA International
 

Tendances (20)

Agile in a nutshell
Agile in a nutshellAgile in a nutshell
Agile in a nutshell
 
[Pcamp19] - Desmistificando o processo de Discovery - Camila Ferreira | Cred...
[Pcamp19] - Desmistificando o processo de Discovery -  Camila Ferreira | Cred...[Pcamp19] - Desmistificando o processo de Discovery -  Camila Ferreira | Cred...
[Pcamp19] - Desmistificando o processo de Discovery - Camila Ferreira | Cred...
 
Kanban Basics for Beginners
Kanban Basics for BeginnersKanban Basics for Beginners
Kanban Basics for Beginners
 
99 inception-deck
99 inception-deck99 inception-deck
99 inception-deck
 
Being Agile with Scrum - koders.co
Being Agile with Scrum - koders.coBeing Agile with Scrum - koders.co
Being Agile with Scrum - koders.co
 
Design Thinking: Ideation Techniques
Design Thinking: Ideation TechniquesDesign Thinking: Ideation Techniques
Design Thinking: Ideation Techniques
 
The 1 Week Minimum Viable Product (MVP)
The 1 Week Minimum Viable Product (MVP)The 1 Week Minimum Viable Product (MVP)
The 1 Week Minimum Viable Product (MVP)
 
Mob programming
Mob programmingMob programming
Mob programming
 
Doing Agile Isnt The Same As Being Agile
Doing Agile Isnt The Same As Being AgileDoing Agile Isnt The Same As Being Agile
Doing Agile Isnt The Same As Being Agile
 
20190923 AgileDC 2019 Conf Kanban AntiPatterns: What you don't know *can* hur...
20190923 AgileDC 2019 Conf Kanban AntiPatterns: What you don't know *can* hur...20190923 AgileDC 2019 Conf Kanban AntiPatterns: What you don't know *can* hur...
20190923 AgileDC 2019 Conf Kanban AntiPatterns: What you don't know *can* hur...
 
Product Validation With Product Discovery
Product Validation With Product Discovery Product Validation With Product Discovery
Product Validation With Product Discovery
 
Agile and Lean Software Development
Agile and Lean Software DevelopmentAgile and Lean Software Development
Agile and Lean Software Development
 
How to Build Product Roadmaps by AppNexus VP of Product
How to Build Product Roadmaps by AppNexus VP of ProductHow to Build Product Roadmaps by AppNexus VP of Product
How to Build Product Roadmaps by AppNexus VP of Product
 
Project To Product: How we transitioned to product-aligned value streams
Project To Product: How we transitioned to product-aligned value streamsProject To Product: How we transitioned to product-aligned value streams
Project To Product: How we transitioned to product-aligned value streams
 
Leadership Workshop.pptx
Leadership Workshop.pptxLeadership Workshop.pptx
Leadership Workshop.pptx
 
The Agile Product Owner: Beyond the Books and Classrooms
The Agile Product Owner: Beyond the Books and ClassroomsThe Agile Product Owner: Beyond the Books and Classrooms
The Agile Product Owner: Beyond the Books and Classrooms
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
 
Working Backwards from the Customer
Working Backwards from the CustomerWorking Backwards from the Customer
Working Backwards from the Customer
 
Introduction au Value Stream Management
Introduction au Value Stream ManagementIntroduction au Value Stream Management
Introduction au Value Stream Management
 
Design Jams! How to run creative sessions with the people who use your product.
Design Jams! How to run creative sessions with the people who use your product.Design Jams! How to run creative sessions with the people who use your product.
Design Jams! How to run creative sessions with the people who use your product.
 

En vedette

Farms in Montgomery County Maryland
Farms in Montgomery County MarylandFarms in Montgomery County Maryland
Farms in Montgomery County MarylandShashi Bellamkonda
 
Looking after the environment
Looking after the environmentLooking after the environment
Looking after the environmentgaizfra
 
May Ttf Lts 18 Th March 2009
May Ttf Lts 18 Th March 2009May Ttf Lts 18 Th March 2009
May Ttf Lts 18 Th March 2009Con Morris
 
Social Media To Increase Your Business At The Regional Chamber Of Commerc...
Social  Media To Increase Your Business At The  Regional  Chamber Of  Commerc...Social  Media To Increase Your Business At The  Regional  Chamber Of  Commerc...
Social Media To Increase Your Business At The Regional Chamber Of Commerc...Shashi Bellamkonda
 
Digital Marketing Trends (and Nonprofit Comm Trends in General) for BloomCon
Digital Marketing Trends (and Nonprofit Comm Trends in General) for BloomConDigital Marketing Trends (and Nonprofit Comm Trends in General) for BloomCon
Digital Marketing Trends (and Nonprofit Comm Trends in General) for BloomConKivi Leroux Miller
 
Brian Oliver Pimp My Data Grid
Brian Oliver  Pimp My Data GridBrian Oliver  Pimp My Data Grid
Brian Oliver Pimp My Data Griddeimos
 
Creating Friend Lists on Facebook
Creating Friend Lists on FacebookCreating Friend Lists on Facebook
Creating Friend Lists on Facebookmdpr
 
Online Marketing, Part II: Turning Participants into Supporters-Stepping up Y...
Online Marketing, Part II: Turning Participants into Supporters-Stepping up Y...Online Marketing, Part II: Turning Participants into Supporters-Stepping up Y...
Online Marketing, Part II: Turning Participants into Supporters-Stepping up Y...Kivi Leroux Miller
 
What Successful Nonprofits Get Right about Marketing and Fundraising
What Successful Nonprofits Get Right about Marketing and FundraisingWhat Successful Nonprofits Get Right about Marketing and Fundraising
What Successful Nonprofits Get Right about Marketing and FundraisingKivi Leroux Miller
 
Bottom Up Collaboration - Be2Camp North
Bottom Up Collaboration - Be2Camp NorthBottom Up Collaboration - Be2Camp North
Bottom Up Collaboration - Be2Camp NorthDaniel Tenner
 
SCSU Ebsco Database App
SCSU Ebsco Database AppSCSU Ebsco Database App
SCSU Ebsco Database Applibrfun
 
Generic Protege Orientation
Generic Protege OrientationGeneric Protege Orientation
Generic Protege OrientationShamilla Essop
 
Steve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And SerendipitySteve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And Serendipitydeimos
 
MangoTicks Jan08
MangoTicks Jan08MangoTicks Jan08
MangoTicks Jan08MangoTicks
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud ComputingBobbi Newman
 

En vedette (20)

Clocker and OpenStack
Clocker and OpenStackClocker and OpenStack
Clocker and OpenStack
 
Farms in Montgomery County Maryland
Farms in Montgomery County MarylandFarms in Montgomery County Maryland
Farms in Montgomery County Maryland
 
Looking after the environment
Looking after the environmentLooking after the environment
Looking after the environment
 
May Ttf Lts 18 Th March 2009
May Ttf Lts 18 Th March 2009May Ttf Lts 18 Th March 2009
May Ttf Lts 18 Th March 2009
 
урок 64
урок 64урок 64
урок 64
 
Social Media To Increase Your Business At The Regional Chamber Of Commerc...
Social  Media To Increase Your Business At The  Regional  Chamber Of  Commerc...Social  Media To Increase Your Business At The  Regional  Chamber Of  Commerc...
Social Media To Increase Your Business At The Regional Chamber Of Commerc...
 
Digital Marketing Trends (and Nonprofit Comm Trends in General) for BloomCon
Digital Marketing Trends (and Nonprofit Comm Trends in General) for BloomConDigital Marketing Trends (and Nonprofit Comm Trends in General) for BloomCon
Digital Marketing Trends (and Nonprofit Comm Trends in General) for BloomCon
 
Brian Oliver Pimp My Data Grid
Brian Oliver  Pimp My Data GridBrian Oliver  Pimp My Data Grid
Brian Oliver Pimp My Data Grid
 
Creating Friend Lists on Facebook
Creating Friend Lists on FacebookCreating Friend Lists on Facebook
Creating Friend Lists on Facebook
 
Online Marketing, Part II: Turning Participants into Supporters-Stepping up Y...
Online Marketing, Part II: Turning Participants into Supporters-Stepping up Y...Online Marketing, Part II: Turning Participants into Supporters-Stepping up Y...
Online Marketing, Part II: Turning Participants into Supporters-Stepping up Y...
 
What Successful Nonprofits Get Right about Marketing and Fundraising
What Successful Nonprofits Get Right about Marketing and FundraisingWhat Successful Nonprofits Get Right about Marketing and Fundraising
What Successful Nonprofits Get Right about Marketing and Fundraising
 
Bottom Up Collaboration - Be2Camp North
Bottom Up Collaboration - Be2Camp NorthBottom Up Collaboration - Be2Camp North
Bottom Up Collaboration - Be2Camp North
 
SCSU Ebsco Database App
SCSU Ebsco Database AppSCSU Ebsco Database App
SCSU Ebsco Database App
 
big bang
big bangbig bang
big bang
 
Clocker Evolution
Clocker EvolutionClocker Evolution
Clocker Evolution
 
Generic Protege Orientation
Generic Protege OrientationGeneric Protege Orientation
Generic Protege Orientation
 
Athens29112011
Athens29112011Athens29112011
Athens29112011
 
Steve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And SerendipitySteve Vinoski Rest And Reuse And Serendipity
Steve Vinoski Rest And Reuse And Serendipity
 
MangoTicks Jan08
MangoTicks Jan08MangoTicks Jan08
MangoTicks Jan08
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
 

Similaire à Kent Beck Effective Design

Agile at enterprice level
Agile at enterprice levelAgile at enterprice level
Agile at enterprice levelJan De Baere
 
STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)Mike Subelsky
 
50500113 spiral-model
50500113 spiral-model50500113 spiral-model
50500113 spiral-modelasidharath
 
Accessibility Integration in a Global Customer Website - Scotiabank.com - A S...
Accessibility Integration in a Global Customer Website - Scotiabank.com - A S...Accessibility Integration in a Global Customer Website - Scotiabank.com - A S...
Accessibility Integration in a Global Customer Website - Scotiabank.com - A S...George Zamfir
 
Kelis king - software engineering and best practices
Kelis king -  software engineering and best practicesKelis king -  software engineering and best practices
Kelis king - software engineering and best practicesKelisKing
 
the one-person project management team
the one-person project management teamthe one-person project management team
the one-person project management teamamanda etches
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cyclenayanbanik
 
egacy-to-Windows Conversion: Your Migration Jump Start
egacy-to-Windows Conversion: Your Migration Jump Startegacy-to-Windows Conversion: Your Migration Jump Start
egacy-to-Windows Conversion: Your Migration Jump StartUiPathCommunity
 
Methodology Patterns (Agile Cambridge 2014)
Methodology Patterns (Agile Cambridge 2014)Methodology Patterns (Agile Cambridge 2014)
Methodology Patterns (Agile Cambridge 2014)Giovanni Asproni
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Jean-Philippe Briend
 
Chapter1 conventional softwaremanagement (1)
Chapter1 conventional softwaremanagement (1)Chapter1 conventional softwaremanagement (1)
Chapter1 conventional softwaremanagement (1)Jkumararaja
 
A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5SSW
 
Agile paris 2022 sharing
Agile paris 2022   sharingAgile paris 2022   sharing
Agile paris 2022 sharingJas Chong
 
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...WrushabhShirsat3
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stackKris Buytaert
 

Similaire à Kent Beck Effective Design (20)

Agile at enterprice level
Agile at enterprice levelAgile at enterprice level
Agile at enterprice level
 
Agile
AgileAgile
Agile
 
DevOps Overview
DevOps OverviewDevOps Overview
DevOps Overview
 
STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)STAQ Development Manual (Redacted)
STAQ Development Manual (Redacted)
 
50500113 spiral-model
50500113 spiral-model50500113 spiral-model
50500113 spiral-model
 
Accessibility Integration in a Global Customer Website - Scotiabank.com - A S...
Accessibility Integration in a Global Customer Website - Scotiabank.com - A S...Accessibility Integration in a Global Customer Website - Scotiabank.com - A S...
Accessibility Integration in a Global Customer Website - Scotiabank.com - A S...
 
Kelis king - software engineering and best practices
Kelis king -  software engineering and best practicesKelis king -  software engineering and best practices
Kelis king - software engineering and best practices
 
the one-person project management team
the one-person project management teamthe one-person project management team
the one-person project management team
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
egacy-to-Windows Conversion: Your Migration Jump Start
egacy-to-Windows Conversion: Your Migration Jump Startegacy-to-Windows Conversion: Your Migration Jump Start
egacy-to-Windows Conversion: Your Migration Jump Start
 
Methodology Patterns (Agile Cambridge 2014)
Methodology Patterns (Agile Cambridge 2014)Methodology Patterns (Agile Cambridge 2014)
Methodology Patterns (Agile Cambridge 2014)
 
Process models
Process modelsProcess models
Process models
 
L21 Architecture and Agile
L21 Architecture and AgileL21 Architecture and Agile
L21 Architecture and Agile
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
 
Chapter1 conventional softwaremanagement (1)
Chapter1 conventional softwaremanagement (1)Chapter1 conventional softwaremanagement (1)
Chapter1 conventional softwaremanagement (1)
 
A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5
 
Agile paris 2022 sharing
Agile paris 2022   sharingAgile paris 2022   sharing
Agile paris 2022 sharing
 
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
 
7 tools for your devops stack
7 tools for your devops stack7 tools for your devops stack
7 tools for your devops stack
 
Software process
Software processSoftware process
Software process
 

Plus de deimos

Aspect Orientated Programming in Ruby
Aspect Orientated Programming in RubyAspect Orientated Programming in Ruby
Aspect Orientated Programming in Rubydeimos
 
Randy Shoup eBays Architectural Principles
Randy Shoup eBays Architectural PrinciplesRandy Shoup eBays Architectural Principles
Randy Shoup eBays Architectural Principlesdeimos
 
Remy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQueryRemy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQuerydeimos
 
Ola Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The JvmOla Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The Jvmdeimos
 
Joe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand DwrJoe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand Dwrdeimos
 
Aslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec BddAslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec Bdddeimos
 
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In GroovyVenkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovydeimos
 
Venkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic LanguagesVenkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic Languagesdeimos
 
Udi Dahan Intentions And Interfaces
Udi Dahan Intentions And InterfacesUdi Dahan Intentions And Interfaces
Udi Dahan Intentions And Interfacesdeimos
 
Tim Mackinnon Agile And Beyond
Tim Mackinnon Agile And BeyondTim Mackinnon Agile And Beyond
Tim Mackinnon Agile And Beyonddeimos
 
Stefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The WebStefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The Webdeimos
 
Stefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To RestStefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To Restdeimos
 
Rod Johnson Cathedral
Rod Johnson CathedralRod Johnson Cathedral
Rod Johnson Cathedraldeimos
 
Mike Stolz Dramatic Scalability
Mike Stolz Dramatic ScalabilityMike Stolz Dramatic Scalability
Mike Stolz Dramatic Scalabilitydeimos
 
Matt Youill Betfair
Matt Youill BetfairMatt Youill Betfair
Matt Youill Betfairdeimos
 
Pete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two SystemsPete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two Systemsdeimos
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registrydeimos
 
Ola Bini Evolving The Java Platform
Ola Bini Evolving The Java PlatformOla Bini Evolving The Java Platform
Ola Bini Evolving The Java Platformdeimos
 
Neal Gafter Java Evolution
Neal Gafter Java EvolutionNeal Gafter Java Evolution
Neal Gafter Java Evolutiondeimos
 
Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLsdeimos
 

Plus de deimos (20)

Aspect Orientated Programming in Ruby
Aspect Orientated Programming in RubyAspect Orientated Programming in Ruby
Aspect Orientated Programming in Ruby
 
Randy Shoup eBays Architectural Principles
Randy Shoup eBays Architectural PrinciplesRandy Shoup eBays Architectural Principles
Randy Shoup eBays Architectural Principles
 
Remy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQueryRemy Sharp The DOM scripting toolkit jQuery
Remy Sharp The DOM scripting toolkit jQuery
 
Ola Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The JvmOla Bini J Ruby Power On The Jvm
Ola Bini J Ruby Power On The Jvm
 
Joe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand DwrJoe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand Dwr
 
Aslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec BddAslak Hellesoy Executable User Stories R Spec Bdd
Aslak Hellesoy Executable User Stories R Spec Bdd
 
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In GroovyVenkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovy
 
Venkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic LanguagesVenkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic Languages
 
Udi Dahan Intentions And Interfaces
Udi Dahan Intentions And InterfacesUdi Dahan Intentions And Interfaces
Udi Dahan Intentions And Interfaces
 
Tim Mackinnon Agile And Beyond
Tim Mackinnon Agile And BeyondTim Mackinnon Agile And Beyond
Tim Mackinnon Agile And Beyond
 
Stefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The WebStefan Tilkov Soa Rest And The Web
Stefan Tilkov Soa Rest And The Web
 
Stefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To RestStefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To Rest
 
Rod Johnson Cathedral
Rod Johnson CathedralRod Johnson Cathedral
Rod Johnson Cathedral
 
Mike Stolz Dramatic Scalability
Mike Stolz Dramatic ScalabilityMike Stolz Dramatic Scalability
Mike Stolz Dramatic Scalability
 
Matt Youill Betfair
Matt Youill BetfairMatt Youill Betfair
Matt Youill Betfair
 
Pete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two SystemsPete Goodliffe A Tale Of Two Systems
Pete Goodliffe A Tale Of Two Systems
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registry
 
Ola Bini Evolving The Java Platform
Ola Bini Evolving The Java PlatformOla Bini Evolving The Java Platform
Ola Bini Evolving The Java Platform
 
Neal Gafter Java Evolution
Neal Gafter Java EvolutionNeal Gafter Java Evolution
Neal Gafter Java Evolution
 
Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLs
 

Dernier

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Dernier (20)

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

Kent Beck Effective Design

  • 3. Unknowns • Needs • Means • Cost • Usefulness
  • 4. Design is Social • Experience • Distribution
  • 5. Theory • Beneficially relating elements • Cost driver: rippling changes – Coupling – Cohesion • Scale-free – Fractal
  • 6. Process Straightforward? yes no Add Feature Isolate Change Refactor Create
  • 7. Create • Principle: safe steps – Going back is expensive • Leap • Parallel • Migrate Old design New design • Simplify • Place Stepping Stone
  • 8. Leap 1. Make new design 2. Move all uses 3. Delete old design + Quick - Risk of it not working for large changes
  • 9. Parallel 1. Make new design + Quick + Safe—doesn’t disturb existing uses + Often used in framework evolution - Costly to maintain two designs - Need to figure out how to have them both run
  • 10. Migrate 1. Move a use + Quick (per migration) + Provides feedback for new design + Low risk - Costly to migrate many uses
  • 11. Simplify • Eliminate constraints • Reduce needs – One, not many – Few, not many – Special case, not general + Quick + Safe - What if it isn’t really progress? - What if you ignore the wrong constraint?
  • 12. Place Stepping Stone 1. Build a language (framework) in which getting to the new design is easier + Quicker - What if it doesn’t make the new design easier? - Every extra bit is expensive for uses and maintainers - Responsibility of language designers and implementors is much broader than application developers (build, debug, analyze)
  • 13. Refactorings - Isolate changes - Extract/Inline method/object - Eliminate/introduce duplication - Eliminate/introduce abstraction/indirection - Interface - Superclass - Move method - Move field
  • 14. Conclusion • Plan backwards from adding straightforward features • Move in safe steps • Make progress when you can’t see the end • If you can’t make progress, add the feature anyway