SlideShare ist ein Scribd-Unternehmen logo
1 von 15
YAGNI

Principle to avoid speculative
  planning & programming
About me
       •     Gjero Krsteski
       •     Software Developer
       •     QuestBack GmbH, Germany
       •     Contributor: ZF1, Zurmo, phlexible
       •     father + trainer + musician




Gjero Krsteski                 The YAGNI principle   2
What are your expectations?
       • Reasons to practise it
       • How and when to use YAGNI
       • How does it work in reality




Gjero Krsteski            The YAGNI principle   3
Abbreviation for…
       • You Ain’t Gonna Need It
       • Keep it simple, stupid! = KISS

       • Always implement things when
         you actually need them, never when you
         just foresee that you need them.



Gjero Krsteski              The YAGNI principle   4
The Ideas Behind YAGNI




           Granularity      Balance            YAGNI




Gjero Krsteski           The YAGNI principle           5
Granularity


                     Don’t use bazooka
                      to clobber a fly!




Gjero Krsteski        The YAGNI principle   6
Balance
       • can anticipate which way the project is likely
         to go in the near future?
       • might make sense to build particular things
         now to cater for this?
       • may have capacity now but will not
         necessarily have it later?



Gjero Krsteski              The YAGNI principle           7
Reasons to practise it
       • You save time
       • Your code is more testable and maintainable
       • Your code is cleaner and more robust




Gjero Krsteski             The YAGNI principle         8
Keep this principle in mind
                                                          No!
       • Implement a pattern?                             Why?

       • Use a utility library?                    What for!?

       • Let us build more automation around our
         deployment process?
                                                       Bah!!!

Gjero Krsteski               The YAGNI principle                 9
What should I do?
       •     think first before you move (Bruce Lee)
       •     What's the cost of the investment?
       •     What is your time horizon?
       •     Opportunity cost?




Gjero Krsteski                 The YAGNI principle     10
Ignorance is bliss
                                                   Who is
                 Who                               stupid?
                  do
                 that?

                                                   Who
                   Who
                                                 designed
                 manages
                                                 that box?
                    the
                  space?

Gjero Krsteski             The YAGNI principle               11
Secret twenty percent

                                  20% of the effort is the
                 20%              80% of the results!

                                   => do the „right“ 20%
                       80%




Gjero Krsteski               The YAGNI principle             12
literature




Gjero Krsteski      The YAGNI principle   13
Gjero Krsteski   The YAGNI principle   14
THANK YOU FOR YOUR ATTENTION
    Have fun finding the “right” 20%




Gjero Krsteski                    The YAGNI principle   15

Weitere ähnliche Inhalte

Was ist angesagt?

SOLID, DRY, SLAP design principles
SOLID, DRY, SLAP design principlesSOLID, DRY, SLAP design principles
SOLID, DRY, SLAP design principlesSergey Karpushin
 
DXN Business Presentation
DXN Business PresentationDXN Business Presentation
DXN Business PresentationMuhammad Tariq
 
An Introduction to Gradle for Java Developers
An Introduction to Gradle for Java DevelopersAn Introduction to Gradle for Java Developers
An Introduction to Gradle for Java DevelopersKostas Saidis
 
Consultora a diretora em 6 meses
Consultora a diretora em 6 meses Consultora a diretora em 6 meses
Consultora a diretora em 6 meses Tássia Brandão
 
Escalera de exito
Escalera de exitoEscalera de exito
Escalera de exitoGabbie14
 
Your Money And Time Eng
Your Money And Time EngYour Money And Time Eng
Your Money And Time Engprofgopi
 
Coding Best Practices
Coding Best PracticesCoding Best Practices
Coding Best Practicesmh_azad
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스Dan Kang (강동한)
 
Concept of Failure, error, fault and defect
Concept of Failure, error, fault and defectConcept of Failure, error, fault and defect
Concept of Failure, error, fault and defectchaklee191
 
Clean code and Code Smells
Clean code and Code SmellsClean code and Code Smells
Clean code and Code SmellsMario Sangiorgio
 
우아하게 준비하는 테스트와 리팩토링 - PyCon Korea 2018
우아하게 준비하는 테스트와 리팩토링 - PyCon Korea 2018우아하게 준비하는 테스트와 리팩토링 - PyCon Korea 2018
우아하게 준비하는 테스트와 리팩토링 - PyCon Korea 2018Kenneth Ceyer
 
Introducing BDD and TDD with Cucumber
Introducing BDD and TDD with CucumberIntroducing BDD and TDD with Cucumber
Introducing BDD and TDD with CucumberKnoldus Inc.
 
Functional Programming Principles & Patterns
Functional Programming Principles & PatternsFunctional Programming Principles & Patterns
Functional Programming Principles & Patternszupzup.org
 
The Art of Java Type Patterns
The Art of Java Type PatternsThe Art of Java Type Patterns
The Art of Java Type PatternsSimon Ritter
 

Was ist angesagt? (20)

SOLID, DRY, SLAP design principles
SOLID, DRY, SLAP design principlesSOLID, DRY, SLAP design principles
SOLID, DRY, SLAP design principles
 
DXN Business Presentation
DXN Business PresentationDXN Business Presentation
DXN Business Presentation
 
Marketing plan
Marketing planMarketing plan
Marketing plan
 
An Introduction to Gradle for Java Developers
An Introduction to Gradle for Java DevelopersAn Introduction to Gradle for Java Developers
An Introduction to Gradle for Java Developers
 
Consultora a diretora em 6 meses
Consultora a diretora em 6 meses Consultora a diretora em 6 meses
Consultora a diretora em 6 meses
 
Refactoring
RefactoringRefactoring
Refactoring
 
Escalera de exito
Escalera de exitoEscalera de exito
Escalera de exito
 
Your Money And Time Eng
Your Money And Time EngYour Money And Time Eng
Your Money And Time Eng
 
Coding Best Practices
Coding Best PracticesCoding Best Practices
Coding Best Practices
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
 
Concept of Failure, error, fault and defect
Concept of Failure, error, fault and defectConcept of Failure, error, fault and defect
Concept of Failure, error, fault and defect
 
DXN Business Plan
DXN Business PlanDXN Business Plan
DXN Business Plan
 
Clean code and Code Smells
Clean code and Code SmellsClean code and Code Smells
Clean code and Code Smells
 
우아하게 준비하는 테스트와 리팩토링 - PyCon Korea 2018
우아하게 준비하는 테스트와 리팩토링 - PyCon Korea 2018우아하게 준비하는 테스트와 리팩토링 - PyCon Korea 2018
우아하게 준비하는 테스트와 리팩토링 - PyCon Korea 2018
 
Introducing BDD and TDD with Cucumber
Introducing BDD and TDD with CucumberIntroducing BDD and TDD with Cucumber
Introducing BDD and TDD with Cucumber
 
Code smell overview
Code smell overviewCode smell overview
Code smell overview
 
Functional Programming Principles & Patterns
Functional Programming Principles & PatternsFunctional Programming Principles & Patterns
Functional Programming Principles & Patterns
 
The Art of Java Type Patterns
The Art of Java Type PatternsThe Art of Java Type Patterns
The Art of Java Type Patterns
 
New DXN marketing plan
New DXN marketing planNew DXN marketing plan
New DXN marketing plan
 
Java Logging
Java LoggingJava Logging
Java Logging
 

Kürzlich hochgeladen

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
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
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
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
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Kürzlich hochgeladen (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
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?
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
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
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
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
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

The YAGNI Principle

  • 1. YAGNI Principle to avoid speculative planning & programming
  • 2. About me • Gjero Krsteski • Software Developer • QuestBack GmbH, Germany • Contributor: ZF1, Zurmo, phlexible • father + trainer + musician Gjero Krsteski The YAGNI principle 2
  • 3. What are your expectations? • Reasons to practise it • How and when to use YAGNI • How does it work in reality Gjero Krsteski The YAGNI principle 3
  • 4. Abbreviation for… • You Ain’t Gonna Need It • Keep it simple, stupid! = KISS • Always implement things when you actually need them, never when you just foresee that you need them. Gjero Krsteski The YAGNI principle 4
  • 5. The Ideas Behind YAGNI Granularity Balance YAGNI Gjero Krsteski The YAGNI principle 5
  • 6. Granularity Don’t use bazooka to clobber a fly! Gjero Krsteski The YAGNI principle 6
  • 7. Balance • can anticipate which way the project is likely to go in the near future? • might make sense to build particular things now to cater for this? • may have capacity now but will not necessarily have it later? Gjero Krsteski The YAGNI principle 7
  • 8. Reasons to practise it • You save time • Your code is more testable and maintainable • Your code is cleaner and more robust Gjero Krsteski The YAGNI principle 8
  • 9. Keep this principle in mind No! • Implement a pattern? Why? • Use a utility library? What for!? • Let us build more automation around our deployment process? Bah!!! Gjero Krsteski The YAGNI principle 9
  • 10. What should I do? • think first before you move (Bruce Lee) • What's the cost of the investment? • What is your time horizon? • Opportunity cost? Gjero Krsteski The YAGNI principle 10
  • 11. Ignorance is bliss Who is Who stupid? do that? Who Who designed manages that box? the space? Gjero Krsteski The YAGNI principle 11
  • 12. Secret twenty percent 20% of the effort is the 20% 80% of the results! => do the „right“ 20% 80% Gjero Krsteski The YAGNI principle 12
  • 13. literature Gjero Krsteski The YAGNI principle 13
  • 14. Gjero Krsteski The YAGNI principle 14
  • 15. THANK YOU FOR YOUR ATTENTION Have fun finding the “right” 20% Gjero Krsteski The YAGNI principle 15