SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
Insight Technology, Inc.
 

Mais procurados (20)

Agile and software engineering in the 21st century
Agile and software engineering in the 21st centuryAgile and software engineering in the 21st century
Agile and software engineering in the 21st century
 
こわくない!SQL Server 2017 セキュリティ関連機能について
こわくない!SQL Server 2017 セキュリティ関連機能についてこわくない!SQL Server 2017 セキュリティ関連機能について
こわくない!SQL Server 2017 セキュリティ関連機能について
 
WCAG 2.2で追加される達成基準
WCAG 2.2で追加される達成基準WCAG 2.2で追加される達成基準
WCAG 2.2で追加される達成基準
 
シン モブ・プログラミング 第三形態
シン モブ・プログラミング 第三形態シン モブ・プログラミング 第三形態
シン モブ・プログラミング 第三形態
 
ひとの想いをのせたドメインモデル.pptx
ひとの想いをのせたドメインモデル.pptxひとの想いをのせたドメインモデル.pptx
ひとの想いをのせたドメインモデル.pptx
 
TECH TALK 20210323 Qlik Sense のエンタープライズ展開 マルチノードサイトの実現方法
TECH TALK 20210323 Qlik Sense のエンタープライズ展開 マルチノードサイトの実現方法TECH TALK 20210323 Qlik Sense のエンタープライズ展開 マルチノードサイトの実現方法
TECH TALK 20210323 Qlik Sense のエンタープライズ展開 マルチノードサイトの実現方法
 
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
[A23] Oracle移行を簡単に。レプリケーションテクノロジーを使いこなす by Keishi Miyachi
 
TECHTALK 20230228 ビジネスユーザー向け機械学習入門 第3回~機械学習のモデルの評価と検証
TECHTALK 20230228 ビジネスユーザー向け機械学習入門 第3回~機械学習のモデルの評価と検証 TECHTALK 20230228 ビジネスユーザー向け機械学習入門 第3回~機械学習のモデルの評価と検証
TECHTALK 20230228 ビジネスユーザー向け機械学習入門 第3回~機械学習のモデルの評価と検証
 
Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]
Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]
Oracle Gen 2 Exadata Cloud@Customer:サービス概要のご紹介 [2021年7月版]
 
【ことはじめ】 はじめてのコンテナ活用をクラウドで
【ことはじめ】 はじめてのコンテナ活用をクラウドで【ことはじめ】 はじめてのコンテナ活用をクラウドで
【ことはじめ】 はじめてのコンテナ活用をクラウドで
 
JAZUG #26 AKS backup with Velero
JAZUG #26 AKS backup with VeleroJAZUG #26 AKS backup with Velero
JAZUG #26 AKS backup with Velero
 
Septik Şokta Vasküler Azalmış Yanıt ve Birincil Sorumlu Olarak Nitrik Oksid
Septik Şokta Vasküler Azalmış Yanıt ve Birincil Sorumlu Olarak Nitrik OksidSeptik Şokta Vasküler Azalmış Yanıt ve Birincil Sorumlu Olarak Nitrik Oksid
Septik Şokta Vasküler Azalmış Yanıt ve Birincil Sorumlu Olarak Nitrik Oksid
 
なぜ企業はWebアクセシビリティに取り組むのか?
なぜ企業はWebアクセシビリティに取り組むのか?なぜ企業はWebアクセシビリティに取り組むのか?
なぜ企業はWebアクセシビリティに取り組むのか?
 
バックアップ時の問題から学んだDBエンジニアに必要なスキルとは
バックアップ時の問題から学んだDBエンジニアに必要なスキルとはバックアップ時の問題から学んだDBエンジニアに必要なスキルとは
バックアップ時の問題から学んだDBエンジニアに必要なスキルとは
 
POZIOM GOSPODARCZY POLSKI A POZIOM ŻYCIA SPOŁECZEŃSTWA W ŚWIETLE PODSTAWOWYCH...
POZIOM GOSPODARCZY POLSKI A POZIOM ŻYCIA SPOŁECZEŃSTWA W ŚWIETLE PODSTAWOWYCH...POZIOM GOSPODARCZY POLSKI A POZIOM ŻYCIA SPOŁECZEŃSTWA W ŚWIETLE PODSTAWOWYCH...
POZIOM GOSPODARCZY POLSKI A POZIOM ŻYCIA SPOŁECZEŃSTWA W ŚWIETLE PODSTAWOWYCH...
 
Qlik Replicateでのテーブル設定詳細(変換・フィルターなど)
Qlik Replicateでのテーブル設定詳細(変換・フィルターなど)Qlik Replicateでのテーブル設定詳細(変換・フィルターなど)
Qlik Replicateでのテーブル設定詳細(変換・フィルターなど)
 
【SQiP2016】楽天のアジャイル開発とメトリクス事例
【SQiP2016】楽天のアジャイル開発とメトリクス事例【SQiP2016】楽天のアジャイル開発とメトリクス事例
【SQiP2016】楽天のアジャイル開発とメトリクス事例
 
Qlik Replicate - Change Tables(変更テーブル)のご説明
Qlik Replicate - Change Tables(変更テーブル)のご説明Qlik Replicate - Change Tables(変更テーブル)のご説明
Qlik Replicate - Change Tables(変更テーブル)のご説明
 
コトの品質.pptx
コトの品質.pptxコトの品質.pptx
コトの品質.pptx
 
【旧版】Oracle Database Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Database Cloud Service:サービス概要のご紹介 [2021年7月版]【旧版】Oracle Database Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Database Cloud Service:サービス概要のご紹介 [2021年7月版]
 

Destaque

Farms in Montgomery County Maryland
Farms in Montgomery County MarylandFarms in Montgomery County Maryland
Farms in Montgomery County Maryland
Shashi Bellamkonda
 
Looking after the environment
Looking after the environmentLooking after the environment
Looking after the environment
gaizfra
 
Brian Oliver Pimp My Data Grid
Brian Oliver  Pimp My Data GridBrian Oliver  Pimp My Data Grid
Brian Oliver Pimp My Data Grid
deimos
 
Generic Protege Orientation
Generic Protege OrientationGeneric Protege Orientation
Generic Protege Orientation
Shamilla 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 Serendipity
deimos
 

Destaque (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
 

Semelhante a Kent Beck Effective Design

50500113 spiral-model
50500113 spiral-model50500113 spiral-model
50500113 spiral-model
asidharath
 
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
 
Chapter1 conventional softwaremanagement (1)
Chapter1 conventional softwaremanagement (1)Chapter1 conventional softwaremanagement (1)
Chapter1 conventional softwaremanagement (1)
Jkumararaja
 
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
chapter1-convehisudhiusdiudiudsiusdiuddsdshdibsdiubdsjxkjxjntionalsoftwareman...
WrushabhShirsat3
 

Semelhante a 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
 

Mais de deimos

Randy Shoup eBays Architectural Principles
Randy Shoup eBays Architectural PrinciplesRandy Shoup eBays Architectural Principles
Randy Shoup eBays Architectural Principles
deimos
 
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
deimos
 
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
deimos
 
Joe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand DwrJoe Walker Interactivewebsites Cometand Dwr
Joe Walker Interactivewebsites Cometand Dwr
deimos
 
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
deimos
 
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In GroovyVenkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovy
deimos
 
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
deimos
 
Udi Dahan Intentions And Interfaces
Udi Dahan Intentions And InterfacesUdi Dahan Intentions And Interfaces
Udi Dahan Intentions And Interfaces
deimos
 
Tim Mackinnon Agile And Beyond
Tim Mackinnon Agile And BeyondTim Mackinnon Agile And Beyond
Tim Mackinnon Agile And Beyond
deimos
 
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
deimos
 
Stefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To RestStefan Tilkov Pragmatic Intro To Rest
Stefan Tilkov Pragmatic Intro To Rest
deimos
 
Rod Johnson Cathedral
Rod Johnson CathedralRod Johnson Cathedral
Rod Johnson Cathedral
deimos
 
Mike Stolz Dramatic Scalability
Mike Stolz Dramatic ScalabilityMike Stolz Dramatic Scalability
Mike Stolz Dramatic Scalability
deimos
 
Matt Youill Betfair
Matt Youill BetfairMatt Youill Betfair
Matt Youill Betfair
deimos
 
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
deimos
 
Paul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA RegistryPaul Fremantle Restful SOA Registry
Paul Fremantle Restful SOA Registry
deimos
 
Ola Bini Evolving The Java Platform
Ola Bini Evolving The Java PlatformOla Bini Evolving The Java Platform
Ola Bini Evolving The Java Platform
deimos
 
Neal Gafter Java Evolution
Neal Gafter Java EvolutionNeal Gafter Java Evolution
Neal Gafter Java Evolution
deimos
 
Markus Voelter Textual DSLs
Markus Voelter Textual DSLsMarkus Voelter Textual DSLs
Markus Voelter Textual DSLs
deimos
 

Mais 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
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

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?
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 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
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

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