SlideShare a Scribd company logo
1 of 42
Agile design Best practices We believe that it is possible.  Igor Moochnick Principal IgorShare Consulting [email_address]   Blog:  www.igorshare.com/blog
A/agile? L/lean? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Am I agile? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Assumptions ,[object Object],[object Object],[object Object],[object Object]
Agile design is here to address … ,[object Object],[object Object],[object Object],[object Object],[object Object]
Agile design helps you to … ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Scenario ,[object Object],[object Object],[object Object],[object Object],[object Object]
Requirements ,[object Object],[object Object],[object Object],[object Object]
Backlog management ,[object Object],[object Object],[object Object]
Transparency - Feedback Not Started In Progress Testing Customer Review Done, Done, Done         Story #1         Story #2       Story #3       Story #4       Story #5           Story #6       Story #7         Story #8       Story #9         Story #10        
Design ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Scenario ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
The Last Responsible Moment ,[object Object],[object Object]
Decide when to Decide ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Reversibility ,[object Object],[object Object]
Designing for Reversibility ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Where Reversibility breaks ,[object Object],[object Object],[object Object]
Design Feedback ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Composite Application ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Maximizing Evolutionary Design ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Development ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SOLID Development Principles  (classes)
 
 
 
 
 
Package Cohesion Principles REP The Release Reuse Equivalency Principle The granule of reuse is the granule of release. CCP The Common Closure Principle Classes that change together are packaged together. CRP The Common Reuse Principle Classes that are used together are packaged together.
Package Coupling Principles ADP The Acyclic Dependencies Principle The dependency graph of packages must have no cycles. SDP The Stable Dependencies Principle Depend in the direction of stability. SAP The Stable Abstractions Principle Abstractness increases with stability.
Refactor Relentlessly ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Development feedback? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Testing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Make your code easy to test ,[object Object],[object Object]
Tests are all about confidence
Improve the Testability of the code ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Distributed Design ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Distributed development ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Work Vertically by Feature ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Delivery ,[object Object],[object Object]
About design of APIs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Questions and Answers
Thanks for ideas ,[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

Agile presentation
Agile presentationAgile presentation
Agile presentation
infolock
 

What's hot (20)

Agile Methodology PPT
Agile Methodology PPTAgile Methodology PPT
Agile Methodology PPT
 
Introduction to Agile software testing
Introduction to Agile software testingIntroduction to Agile software testing
Introduction to Agile software testing
 
DevOps for beginners
DevOps for beginnersDevOps for beginners
DevOps for beginners
 
Fundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CDFundamentals of DevOps and CI/CD
Fundamentals of DevOps and CI/CD
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
DevOps
DevOpsDevOps
DevOps
 
eXtreme programming (XP) - An Overview
eXtreme programming (XP) - An OvervieweXtreme programming (XP) - An Overview
eXtreme programming (XP) - An Overview
 
Agile presentation
Agile presentationAgile presentation
Agile presentation
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
 
Presentation on mobile app testing
Presentation on mobile app testingPresentation on mobile app testing
Presentation on mobile app testing
 
Agile Process models
Agile Process modelsAgile Process models
Agile Process models
 
DevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation SlidesDevOps Powerpoint Presentation Slides
DevOps Powerpoint Presentation Slides
 
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
CI CD Pipeline Using Jenkins | Continuous Integration and Deployment | DevOps...
 
Agile Methodology
Agile MethodologyAgile Methodology
Agile Methodology
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 

Viewers also liked

Agile Lean Kanban in the real world
Agile Lean Kanban in the real worldAgile Lean Kanban in the real world
Agile Lean Kanban in the real world
Russell Pannone
 
Workshop Lean Startup - présentation pour l'ECE
Workshop Lean Startup - présentation pour l'ECEWorkshop Lean Startup - présentation pour l'ECE
Workshop Lean Startup - présentation pour l'ECE
Guillaume Warckol
 

Viewers also liked (8)

L'Agile et la culture d'entreprise
L'Agile et la culture d'entrepriseL'Agile et la culture d'entreprise
L'Agile et la culture d'entreprise
 
Towards an Agile Authoring methodology: Learning from Lean
Towards an Agile Authoring methodology: Learning from LeanTowards an Agile Authoring methodology: Learning from Lean
Towards an Agile Authoring methodology: Learning from Lean
 
Scrum & Kanban for Social Games
Scrum & Kanban for Social GamesScrum & Kanban for Social Games
Scrum & Kanban for Social Games
 
Agile Lean Kanban in the real world
Agile Lean Kanban in the real worldAgile Lean Kanban in the real world
Agile Lean Kanban in the real world
 
Workshop Lean Startup - présentation pour l'ECE
Workshop Lean Startup - présentation pour l'ECEWorkshop Lean Startup - présentation pour l'ECE
Workshop Lean Startup - présentation pour l'ECE
 
Introducing Scrum a Collaboration Game
Introducing Scrum a Collaboration GameIntroducing Scrum a Collaboration Game
Introducing Scrum a Collaboration Game
 
Validation board itescia 2015 16
Validation board itescia 2015 16Validation board itescia 2015 16
Validation board itescia 2015 16
 
Lean Branding: Positioning your early-stage company for success - MaRS Best P...
Lean Branding: Positioning your early-stage company for success - MaRS Best P...Lean Branding: Positioning your early-stage company for success - MaRS Best P...
Lean Branding: Positioning your early-stage company for success - MaRS Best P...
 

Similar to Best practices for agile design

Building lean products with distributed agile teams
Building lean products with distributed agile teamsBuilding lean products with distributed agile teams
Building lean products with distributed agile teams
Igor Moochnick
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
Igor Moochnick
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
Svetlin Nakov
 
Agile intro resources
Agile intro resourcesAgile intro resources
Agile intro resources
Anwar Sadat
 
Session 1 - The Agile vs Non agile divide.pptx
Session 1 - The Agile vs Non agile divide.pptxSession 1 - The Agile vs Non agile divide.pptx
Session 1 - The Agile vs Non agile divide.pptx
WatchDogs6
 
He mian agile project-inception
He mian   agile project-inceptionHe mian   agile project-inception
He mian agile project-inception
Odd-e
 

Similar to Best practices for agile design (20)

Building lean products with distributed agile teams
Building lean products with distributed agile teamsBuilding lean products with distributed agile teams
Building lean products with distributed agile teams
 
Arch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best PracticesArch factory - Agile Design: Best Practices
Arch factory - Agile Design: Best Practices
 
Building Lean Products with Distributed Agile Teams - Igor Moochnick at Produ...
Building Lean Products with Distributed Agile Teams - Igor Moochnick at Produ...Building Lean Products with Distributed Agile Teams - Igor Moochnick at Produ...
Building Lean Products with Distributed Agile Teams - Igor Moochnick at Produ...
 
Architecting Solutions and Systems – Randy’s Secrets to Success
Architecting Solutions and Systems – Randy’s Secrets to SuccessArchitecting Solutions and Systems – Randy’s Secrets to Success
Architecting Solutions and Systems – Randy’s Secrets to Success
 
Intro to Agile Practices and Values
Intro to Agile Practices and ValuesIntro to Agile Practices and Values
Intro to Agile Practices and Values
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Agile And Open Development
Agile And Open DevelopmentAgile And Open Development
Agile And Open Development
 
Agile Technical Leadership
Agile Technical LeadershipAgile Technical Leadership
Agile Technical Leadership
 
Patterns of Evolutionary Architecture - Agile and Beyond 2018
Patterns of Evolutionary Architecture - Agile and Beyond 2018Patterns of Evolutionary Architecture - Agile and Beyond 2018
Patterns of Evolutionary Architecture - Agile and Beyond 2018
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
 
Failing with agile
Failing with agileFailing with agile
Failing with agile
 
Design Thinking, Agile, DevOps - fuel the innovation delivery
Design Thinking, Agile, DevOps  - fuel the innovation deliveryDesign Thinking, Agile, DevOps  - fuel the innovation delivery
Design Thinking, Agile, DevOps - fuel the innovation delivery
 
Data Governance in an Agile SCRUM Lean MVP World
Data Governance in an Agile SCRUM Lean MVP WorldData Governance in an Agile SCRUM Lean MVP World
Data Governance in an Agile SCRUM Lean MVP World
 
Agility to manage IT Complexity
Agility to manage IT ComplexityAgility to manage IT Complexity
Agility to manage IT Complexity
 
The Divide.pptx
The Divide.pptxThe Divide.pptx
The Divide.pptx
 
Agile intro resources
Agile intro resourcesAgile intro resources
Agile intro resources
 
Session 1 - The Agile vs Non agile divide.pptx
Session 1 - The Agile vs Non agile divide.pptxSession 1 - The Agile vs Non agile divide.pptx
Session 1 - The Agile vs Non agile divide.pptx
 
He mian agile project-inception
He mian   agile project-inceptionHe mian   agile project-inception
He mian agile project-inception
 

More from Igor Moochnick

Tips for building responsive cloud applications
Tips for building responsive cloud applicationsTips for building responsive cloud applications
Tips for building responsive cloud applications
Igor Moochnick
 
Building complex single page application should be as enjoyable as visit to a...
Building complex single page application should be as enjoyable as visit to a...Building complex single page application should be as enjoyable as visit to a...
Building complex single page application should be as enjoyable as visit to a...
Igor Moochnick
 
Amazon 101 - building composite responsive apps - small
Amazon 101 - building composite responsive apps - smallAmazon 101 - building composite responsive apps - small
Amazon 101 - building composite responsive apps - small
Igor Moochnick
 
Ccr - Concurrency and Coordination Runtime
Ccr - Concurrency and Coordination RuntimeCcr - Concurrency and Coordination Runtime
Ccr - Concurrency and Coordination Runtime
Igor Moochnick
 
NO SQL: What, Why, How
NO SQL: What, Why, HowNO SQL: What, Why, How
NO SQL: What, Why, How
Igor Moochnick
 
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Igor Moochnick
 
Building Gwt Clients For Cloud Apps.Pptx
Building Gwt Clients For Cloud Apps.PptxBuilding Gwt Clients For Cloud Apps.Pptx
Building Gwt Clients For Cloud Apps.Pptx
Igor Moochnick
 
Application Patters For The Cloud
Application Patters For The CloudApplication Patters For The Cloud
Application Patters For The Cloud
Igor Moochnick
 
Ado.Net Data Services (Astoria)
Ado.Net Data Services (Astoria)Ado.Net Data Services (Astoria)
Ado.Net Data Services (Astoria)
Igor Moochnick
 

More from Igor Moochnick (20)

Continuous delivery workflow with Docker
Continuous delivery workflow with DockerContinuous delivery workflow with Docker
Continuous delivery workflow with Docker
 
Being a generalist and being great at what you do
Being a generalist and being great at what you doBeing a generalist and being great at what you do
Being a generalist and being great at what you do
 
The journey to container adoption in enterprise
The journey to container adoption in enterpriseThe journey to container adoption in enterprise
The journey to container adoption in enterprise
 
Dev ops overview (brief)
Dev ops overview (brief)Dev ops overview (brief)
Dev ops overview (brief)
 
Dev ops cd tool chains
Dev ops cd tool chainsDev ops cd tool chains
Dev ops cd tool chains
 
Orchestration musings
Orchestration musingsOrchestration musings
Orchestration musings
 
Delivery pipelines
Delivery pipelinesDelivery pipelines
Delivery pipelines
 
Tips for building responsive cloud applications
Tips for building responsive cloud applicationsTips for building responsive cloud applications
Tips for building responsive cloud applications
 
Building complex single page application should be as enjoyable as visit to a...
Building complex single page application should be as enjoyable as visit to a...Building complex single page application should be as enjoyable as visit to a...
Building complex single page application should be as enjoyable as visit to a...
 
Amazon 101 - building composite responsive apps - small
Amazon 101 - building composite responsive apps - smallAmazon 101 - building composite responsive apps - small
Amazon 101 - building composite responsive apps - small
 
Ccr - Concurrency and Coordination Runtime
Ccr - Concurrency and Coordination RuntimeCcr - Concurrency and Coordination Runtime
Ccr - Concurrency and Coordination Runtime
 
RavenDB overview
RavenDB overviewRavenDB overview
RavenDB overview
 
NO SQL: What, Why, How
NO SQL: What, Why, HowNO SQL: What, Why, How
NO SQL: What, Why, How
 
Azure ServiceBus Queues and Topics
Azure ServiceBus Queues and TopicsAzure ServiceBus Queues and Topics
Azure ServiceBus Queues and Topics
 
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
Caliburn.micro jump start composite applications for WPF, Silverlight and WP7
 
Practical alm testing
Practical alm   testingPractical alm   testing
Practical alm testing
 
Putting SOAP to REST
Putting SOAP to RESTPutting SOAP to REST
Putting SOAP to REST
 
Building Gwt Clients For Cloud Apps.Pptx
Building Gwt Clients For Cloud Apps.PptxBuilding Gwt Clients For Cloud Apps.Pptx
Building Gwt Clients For Cloud Apps.Pptx
 
Application Patters For The Cloud
Application Patters For The CloudApplication Patters For The Cloud
Application Patters For The Cloud
 
Ado.Net Data Services (Astoria)
Ado.Net Data Services (Astoria)Ado.Net Data Services (Astoria)
Ado.Net Data Services (Astoria)
 

Recently uploaded

Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
UK Journal
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Recently uploaded (20)

Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4j
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 

Best practices for agile design

  • 1. Agile design Best practices We believe that it is possible. Igor Moochnick Principal IgorShare Consulting [email_address] Blog: www.igorshare.com/blog
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Transparency - Feedback Not Started In Progress Testing Customer Review Done, Done, Done         Story #1         Story #2       Story #3       Story #4       Story #5           Story #6       Story #7         Story #8       Story #9         Story #10        
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 23.  
  • 24.  
  • 25.  
  • 26.  
  • 27.  
  • 28. Package Cohesion Principles REP The Release Reuse Equivalency Principle The granule of reuse is the granule of release. CCP The Common Closure Principle Classes that change together are packaged together. CRP The Common Reuse Principle Classes that are used together are packaged together.
  • 29. Package Coupling Principles ADP The Acyclic Dependencies Principle The dependency graph of packages must have no cycles. SDP The Stable Dependencies Principle Depend in the direction of stability. SAP The Stable Abstractions Principle Abstractness increases with stability.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. Tests are all about confidence
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 42.

Editor's Notes

  1. A class should have one, and only one, reason to change
  2. You should be able to extend a classes behavior, without modifying it "Software entities should be open for extension, but closed for modification.“ - Robert C. Martin “… the essence of the Open/Closed Principle is being able to add new functionality to an existing codebase by writing completely new code with minimal modification of existing code. ”
  3. Derived classes must be substitutable for their base classes.
  4. Make fine grained interfaces that are client specific.
  5. Depend on abstractions, not on concretions