SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
The Uncertainty Principle

       Kevlin Henney
       kevlin@curbralan.com
          @KevlinHenney
See http://programmer.97things.oreilly.com
                  (also http://tr.im/97tepsk)
                     and follow @97TEPSK
_
Δx Δp ≄ h
        2
The more precisely the position is determined,
the less precisely the momentum is known in
this instant, and vice versa.
                             Werner Heisenberg
Development and Learning
Software development is essentially
a learning process
 Moving from the unknown to the known
We know more at the end of a
development than at the beginning
 It is important not to let early decisions
 dominate subsequent development,
 i.e., the period of greatest ignorance
 should not hold the critical decisions
Graphic by Sebastian Hermida
http://sbastn.com/2009/06/typing-is-not-the-bottleneck/
Uncertainty and Risk
Uncertainty often leads to arbitrary
point decisions
  Rather than taking the uncertainty as
  an indication of something deeper
Risk is exposure to uncertainty, not
just the presence of uncertainty
  Something may be uncertain but not
  necessarily risky
Confronted with two options, most
people think that the most
important thing to do is make a
choice between them. In design
(software or otherwise) it is not.
The presence of two options is an
indicator that you need to consider
uncertainty in the design. Use the
uncertainty as a driver to determine
where you can defer commitment
to details and where you can
partition and abstract to reduce the
significance of design decisions.
                    Kevlin Henney
      "Use Uncertainty as a Driver"
Speculative Generality
Brian Foote suggested this name for a smell to which we
are very sensitive. You get it when people say, "Oh, I think
we need the ability to do this kind of thing someday" and
thus want all sorts of hooks and special cases to handle
things that aren't required. The result often is harder to
understand and maintain. If all this machinery were being
used, it would be worth it. But if it isn't, it isn't. The
machinery just gets in the way, so get rid of it.
                                     Martin Fowler, Refactoring
The best route to generality is through
understanding known, specific examples
and focusing on their essence to find an
essential common solution. Simplicity
through experience rather than generality
through guesswork. [...]
We can find generality and flexibility in
trying to deliver specific solutions, but if we
weigh anchor and forget the specifics too
soon, we end up adrift in a sea of nebulous
possibilities, a world of tricky configuration
options, long-winded interfaces, and not-
quite-right abstractions.
                                Kevlin Henney
 "Simplicity before Generality, Use before Reuse"
Five Orders of Ignorance

0.   Lack of Ignorance
1.   Lack of Knowledge
2.   Lack of Awareness
3.   Lack of Process
4.   Meta-Ignorance
                Phillip G Armour
Options Thinking
Defer commitment until there is a
concrete need
  Favour just in time over just in case
  Options thinking encourages an honest
  appraisal of the effect of uncertainty on
  development, mitigating the effect of
  making the wrong decision
But including all options is not the
same as keeping options open
The Last Responsible Moment
Deferral is neither vagueness nor
abrogation of responsibility
  Before the last responsible moment (or
  optimal exercise point) making a
  commitment offers no additional value,
  and after it can result in loss of value
  The moment(s) offering the greatest
  possible knowledge for the greatest
  possible opportunity
ambiguous, a.
1. Doubtful, questionable; indistinct, obscure, not clearly defined.
2. Of words or other significant indications: Admitting more than
   one interpretation, or explanation; of double meaning, or of
   several possible meanings; equivocal. (The commonest use.)
3. Of doubtful position or classification, as partaking of two
   characters or being on the boundary line between.
4. Of persons: Wavering or uncertain as to course or conduct;
   hesitating, doubtful. Obs.
5. Of things: Wavering or uncertain in direction or tendency; of
   doubtful or uncertain issue.
6. Hence, Insecure in its indications; not to be relied upon.
7. Of persons, oracles, etc.: Using words of doubtful or double
   meaning.

                                      Oxford English Dictionary
Partitioning for Uncertainty

           Client                         Client




                                          Feature




Option A            Option B   Option A             Option B
Information Hiding

We have tried to demonstrate by these examples that it
is almost always incorrect to begin the decomposition of
a system into modules on the basis of a flowchart. We
propose instead that one begins with a list of difficult
design decisions or design decisions which are likely to
change. Each module is then designed to hide such a
decision from the others.
                                                 David L Parnas
 "On the Criteria to Be Used in Decomposing Systems into Modules"
Stability and Certainty
Stability can be used an indication
of certainty
 Uncertainty is reflected in the rate at
 which knowledge and understanding
 change
 Changes may be with respect to
 correctness or completeness or caused
 by other sources of change
If you have a procedure with
ten parameters, you probably
missed some.
                        Alan Perlis
Shearing Layers
Thomas Ball and Stephen G Eick
"Software Visualization in the Large"
Scenario Buffering
Speculation can also be used to
envision constructively
 Alternative future scenarios offer
 feedback on likely points of change
 and instability
 However, the goal is to work out how to
 partition a system and how to evaluate
 alternatives, not what extra features
 and hooks need to be added
Dot-Voting Change

          ‱
              ‱




          ‱
       ‱ ‱ ‱‱
           ‱


Consider a number of possible   Dependency inversion allows a design's
change scenarios and mark       dependencies to be reversed, loosened
affected components.            and manipulated at will, which means
                                that dependencies can be aligned with
                                known or anticipated stability.
Interpreting Defects
                     B
A
                     ⊗
                         ⊗   C
        ⊗
                                 ⊗
                             ⊗



            D

            ⊗⊗⊗⊗             E

            ⊗ ⊗ ⊗⊗               ⊗


    F

            ⊗
The Uncertainty Principle

Weitere Àhnliche Inhalte

Andere mochten auch

The Heisenberg Uncertainty Principle[1]
The Heisenberg Uncertainty Principle[1]The Heisenberg Uncertainty Principle[1]
The Heisenberg Uncertainty Principle[1]
guestea12c43
 
The uncertainty principle
The uncertainty principleThe uncertainty principle
The uncertainty principle
farman53
 
History of the atom
History of the atomHistory of the atom
History of the atom
laburkett
 
Social cognitive perspective
Social cognitive perspectiveSocial cognitive perspective
Social cognitive perspective
sherrymariani
 

Andere mochten auch (12)

The Heisenberg Uncertainty Principle[1]
The Heisenberg Uncertainty Principle[1]The Heisenberg Uncertainty Principle[1]
The Heisenberg Uncertainty Principle[1]
 
Photo electric effect and compton
Photo electric effect and comptonPhoto electric effect and compton
Photo electric effect and compton
 
Bragg's law
Bragg's lawBragg's law
Bragg's law
 
Zeeman Effect
Zeeman EffectZeeman Effect
Zeeman Effect
 
The uncertainty principle
The uncertainty principleThe uncertainty principle
The uncertainty principle
 
5 s surgalt ambuk
5 s surgalt ambuk5 s surgalt ambuk
5 s surgalt ambuk
 
History of the atom
History of the atomHistory of the atom
History of the atom
 
Social cognitive perspective
Social cognitive perspectiveSocial cognitive perspective
Social cognitive perspective
 
Photoelectric effect ppt
Photoelectric effect pptPhotoelectric effect ppt
Photoelectric effect ppt
 
Bragg’s law
Bragg’s lawBragg’s law
Bragg’s law
 
UX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and ArchivesUX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and Archives
 
Designing Teams for Emerging Challenges
Designing Teams for Emerging ChallengesDesigning Teams for Emerging Challenges
Designing Teams for Emerging Challenges
 

Ähnlich wie The Uncertainty Principle

Designing Alternate Solutions: How to Find Solutions That Meet Your Requirements
Designing Alternate Solutions: How to Find Solutions That Meet Your RequirementsDesigning Alternate Solutions: How to Find Solutions That Meet Your Requirements
Designing Alternate Solutions: How to Find Solutions That Meet Your Requirements
BA-EXPERTS
 
My presentation erin da802
My presentation   erin da802My presentation   erin da802
My presentation erin da802
nida19
 
Making Decisions Presentation
Making Decisions PresentationMaking Decisions Presentation
Making Decisions Presentation
andyped
 
I 4 scenarioplanning
I 4 scenarioplanningI 4 scenarioplanning
I 4 scenarioplanning
Russ Coff
 
Facilitating Complexity: A Pervert's Guide to Exploration
Facilitating Complexity: A Pervert's Guide to ExplorationFacilitating Complexity: A Pervert's Guide to Exploration
Facilitating Complexity: A Pervert's Guide to Exploration
William Evans
 

Ähnlich wie The Uncertainty Principle (20)

Decision Making for the Project Leader
Decision Making for the Project LeaderDecision Making for the Project Leader
Decision Making for the Project Leader
 
Designing Alternate Solutions: How to Find Solutions That Meet Your Requirements
Designing Alternate Solutions: How to Find Solutions That Meet Your RequirementsDesigning Alternate Solutions: How to Find Solutions That Meet Your Requirements
Designing Alternate Solutions: How to Find Solutions That Meet Your Requirements
 
My presentation erin da802
My presentation   erin da802My presentation   erin da802
My presentation erin da802
 
Intersection18: From a "Simple" App Challenge for Astronauts to an Enterprise...
Intersection18: From a "Simple" App Challenge for Astronauts to an Enterprise...Intersection18: From a "Simple" App Challenge for Astronauts to an Enterprise...
Intersection18: From a "Simple" App Challenge for Astronauts to an Enterprise...
 
Making Decisions Presentation
Making Decisions PresentationMaking Decisions Presentation
Making Decisions Presentation
 
Relationship Forecasting
Relationship ForecastingRelationship Forecasting
Relationship Forecasting
 
Perception and decision making
Perception and decision makingPerception and decision making
Perception and decision making
 
I 4 scenarioplanning
I 4 scenarioplanningI 4 scenarioplanning
I 4 scenarioplanning
 
Trauma Informed Design: Learning and Applying the Trauma Heuristic
Trauma Informed Design: Learning and Applying the Trauma HeuristicTrauma Informed Design: Learning and Applying the Trauma Heuristic
Trauma Informed Design: Learning and Applying the Trauma Heuristic
 
Project Rescue Operations
Project Rescue OperationsProject Rescue Operations
Project Rescue Operations
 
Broyhill - Investing by Design, CFA Society Buffalo
Broyhill - Investing by Design, CFA Society BuffaloBroyhill - Investing by Design, CFA Society Buffalo
Broyhill - Investing by Design, CFA Society Buffalo
 
Leaving you.v3
Leaving you.v3Leaving you.v3
Leaving you.v3
 
The Babel of Strategy
The Babel of StrategyThe Babel of Strategy
The Babel of Strategy
 
Evolving Cynefin
Evolving CynefinEvolving Cynefin
Evolving Cynefin
 
The Hidden Traps in Decision Making
The Hidden Traps in Decision MakingThe Hidden Traps in Decision Making
The Hidden Traps in Decision Making
 
IDENTIFYING REASONS AND CONCLUSION JUNE 10 2022.pdf
IDENTIFYING REASONS AND CONCLUSION JUNE 10 2022.pdfIDENTIFYING REASONS AND CONCLUSION JUNE 10 2022.pdf
IDENTIFYING REASONS AND CONCLUSION JUNE 10 2022.pdf
 
Pair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick WestPair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick West
 
QA is Broken, Fix it!
QA is Broken, Fix it!QA is Broken, Fix it!
QA is Broken, Fix it!
 
Ch05
Ch05Ch05
Ch05
 
Facilitating Complexity: A Pervert's Guide to Exploration
Facilitating Complexity: A Pervert's Guide to ExplorationFacilitating Complexity: A Pervert's Guide to Exploration
Facilitating Complexity: A Pervert's Guide to Exploration
 

Mehr von Jeremy Coates

Search Lucene
Search LuceneSearch Lucene
Search Lucene
Jeremy Coates
 

Mehr von Jeremy Coates (17)

Cyber Security and GDPR
Cyber Security and GDPRCyber Security and GDPR
Cyber Security and GDPR
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
Why is PHP Awesome
Why is PHP AwesomeWhy is PHP Awesome
Why is PHP Awesome
 
Testing with Codeception
Testing with CodeceptionTesting with Codeception
Testing with Codeception
 
An introduction to Phing the PHP build system (PHPDay, May 2012)
An introduction to Phing the PHP build system (PHPDay, May 2012)An introduction to Phing the PHP build system (PHPDay, May 2012)
An introduction to Phing the PHP build system (PHPDay, May 2012)
 
An introduction to Phing the PHP build system
An introduction to Phing the PHP build systemAn introduction to Phing the PHP build system
An introduction to Phing the PHP build system
 
Insects in your mind
Insects in your mindInsects in your mind
Insects in your mind
 
Phing
PhingPhing
Phing
 
Hudson Continuous Integration for PHP
Hudson Continuous Integration for PHPHudson Continuous Integration for PHP
Hudson Continuous Integration for PHP
 
Exploiting Php With Php
Exploiting Php With PhpExploiting Php With Php
Exploiting Php With Php
 
What's new, what's hot in PHP 5.3
What's new, what's hot in PHP 5.3What's new, what's hot in PHP 5.3
What's new, what's hot in PHP 5.3
 
Kiss Phpnw08
Kiss Phpnw08Kiss Phpnw08
Kiss Phpnw08
 
Regex Basics
Regex BasicsRegex Basics
Regex Basics
 
Search Lucene
Search LuceneSearch Lucene
Search Lucene
 
Mysql Explain Explained
Mysql Explain ExplainedMysql Explain Explained
Mysql Explain Explained
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version Control
 
PHPNW Conference Update
PHPNW Conference UpdatePHPNW Conference Update
PHPNW Conference Update
 

KĂŒrzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

KĂŒrzlich hochgeladen (20)

Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
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
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

The Uncertainty Principle

  • 1. The Uncertainty Principle Kevlin Henney kevlin@curbralan.com @KevlinHenney
  • 2. See http://programmer.97things.oreilly.com (also http://tr.im/97tepsk) and follow @97TEPSK
  • 4. The more precisely the position is determined, the less precisely the momentum is known in this instant, and vice versa. Werner Heisenberg
  • 5.
  • 6. Development and Learning Software development is essentially a learning process Moving from the unknown to the known We know more at the end of a development than at the beginning It is important not to let early decisions dominate subsequent development, i.e., the period of greatest ignorance should not hold the critical decisions
  • 7. Graphic by Sebastian Hermida http://sbastn.com/2009/06/typing-is-not-the-bottleneck/
  • 8. Uncertainty and Risk Uncertainty often leads to arbitrary point decisions Rather than taking the uncertainty as an indication of something deeper Risk is exposure to uncertainty, not just the presence of uncertainty Something may be uncertain but not necessarily risky
  • 9.
  • 10. Confronted with two options, most people think that the most important thing to do is make a choice between them. In design (software or otherwise) it is not. The presence of two options is an indicator that you need to consider uncertainty in the design. Use the uncertainty as a driver to determine where you can defer commitment to details and where you can partition and abstract to reduce the significance of design decisions. Kevlin Henney "Use Uncertainty as a Driver"
  • 11. Speculative Generality Brian Foote suggested this name for a smell to which we are very sensitive. You get it when people say, "Oh, I think we need the ability to do this kind of thing someday" and thus want all sorts of hooks and special cases to handle things that aren't required. The result often is harder to understand and maintain. If all this machinery were being used, it would be worth it. But if it isn't, it isn't. The machinery just gets in the way, so get rid of it. Martin Fowler, Refactoring
  • 12. The best route to generality is through understanding known, specific examples and focusing on their essence to find an essential common solution. Simplicity through experience rather than generality through guesswork. [...] We can find generality and flexibility in trying to deliver specific solutions, but if we weigh anchor and forget the specifics too soon, we end up adrift in a sea of nebulous possibilities, a world of tricky configuration options, long-winded interfaces, and not- quite-right abstractions. Kevlin Henney "Simplicity before Generality, Use before Reuse"
  • 13.
  • 14. Five Orders of Ignorance 0. Lack of Ignorance 1. Lack of Knowledge 2. Lack of Awareness 3. Lack of Process 4. Meta-Ignorance Phillip G Armour
  • 15. Options Thinking Defer commitment until there is a concrete need Favour just in time over just in case Options thinking encourages an honest appraisal of the effect of uncertainty on development, mitigating the effect of making the wrong decision But including all options is not the same as keeping options open
  • 16. The Last Responsible Moment Deferral is neither vagueness nor abrogation of responsibility Before the last responsible moment (or optimal exercise point) making a commitment offers no additional value, and after it can result in loss of value The moment(s) offering the greatest possible knowledge for the greatest possible opportunity
  • 17. ambiguous, a. 1. Doubtful, questionable; indistinct, obscure, not clearly defined. 2. Of words or other significant indications: Admitting more than one interpretation, or explanation; of double meaning, or of several possible meanings; equivocal. (The commonest use.) 3. Of doubtful position or classification, as partaking of two characters or being on the boundary line between. 4. Of persons: Wavering or uncertain as to course or conduct; hesitating, doubtful. Obs. 5. Of things: Wavering or uncertain in direction or tendency; of doubtful or uncertain issue. 6. Hence, Insecure in its indications; not to be relied upon. 7. Of persons, oracles, etc.: Using words of doubtful or double meaning. Oxford English Dictionary
  • 18. Partitioning for Uncertainty Client Client Feature Option A Option B Option A Option B
  • 19. Information Hiding We have tried to demonstrate by these examples that it is almost always incorrect to begin the decomposition of a system into modules on the basis of a flowchart. We propose instead that one begins with a list of difficult design decisions or design decisions which are likely to change. Each module is then designed to hide such a decision from the others. David L Parnas "On the Criteria to Be Used in Decomposing Systems into Modules"
  • 20. Stability and Certainty Stability can be used an indication of certainty Uncertainty is reflected in the rate at which knowledge and understanding change Changes may be with respect to correctness or completeness or caused by other sources of change
  • 21. If you have a procedure with ten parameters, you probably missed some. Alan Perlis
  • 23. Thomas Ball and Stephen G Eick "Software Visualization in the Large"
  • 24. Scenario Buffering Speculation can also be used to envision constructively Alternative future scenarios offer feedback on likely points of change and instability However, the goal is to work out how to partition a system and how to evaluate alternatives, not what extra features and hooks need to be added
  • 25. Dot-Voting Change ‱ ‱ ‱ ‱ ‱ ‱‱ ‱ Consider a number of possible Dependency inversion allows a design's change scenarios and mark dependencies to be reversed, loosened affected components. and manipulated at will, which means that dependencies can be aligned with known or anticipated stability.
  • 26.
  • 27. Interpreting Defects B A ⊗ ⊗ C ⊗ ⊗ ⊗ D ⊗⊗⊗⊗ E ⊗ ⊗ ⊗⊗ ⊗ F ⊗