Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Kent Beck Effective Design

2,521 views

Published on

Published in: Technology, Business
  • Best dissertation help you can get, thank god a friend suggested me ⇒⇒⇒WRITE-MY-PAPER.net ⇐⇐⇐ otherwise I could have never completed my dissertation on time.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Have u ever tried external professional writing services like ⇒ www.HelpWriting.net ⇐ ? I did and I am more than satisfied.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • The last one problem with writing is the most actual) If to speak sinceresly writing is not an easy task especially if you have no certain writing skills. That's why our company ⇒ www.HelpWriting.net ⇐ helps students to write any type of scientific papers!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Kent Beck Effective Design

  1. 1. Effective Design Kent Beck Three Rivers Institute
  2. 2. Economics • Time value of money
  3. 3. Unknowns • Needs • Means • Cost • Usefulness
  4. 4. Design is Social • Experience • Distribution
  5. 5. Theory • Beneficially relating elements • Cost driver: rippling changes – Coupling – Cohesion • Scale-free – Fractal
  6. 6. Process Straightforward? yes no Add Feature Isolate Change Refactor Create
  7. 7. Create • Principle: safe steps – Going back is expensive • Leap • Parallel • Migrate Old design New design • Simplify • Place Stepping Stone
  8. 8. Leap 1. Make new design 2. Move all uses 3. Delete old design + Quick - Risk of it not working for large changes
  9. 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. 10. Migrate 1. Move a use + Quick (per migration) + Provides feedback for new design + Low risk - Costly to migrate many uses
  11. 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. 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. 13. Refactorings - Isolate changes - Extract/Inline method/object - Eliminate/introduce duplication - Eliminate/introduce abstraction/indirection - Interface - Superclass - Move method - Move field
  14. 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

×