Extreme Programming - KeynesYouDigIt/Knowledge GitHub Wiki
via Software-Development#high-level-methodologies
Kent Beck @ DDD -Continued Learning: The Beauty of Maintenance
(only kinda related to XP - move me?) https://www.youtube.com/watch?v=3gib0hKYjB0
-
Change is inherent to software - people see the changes they want once they see the software
-
paraphrasing "the green book"
- good definition of "coupled" - for any element (module, service, var, funk), any change Delta,
- Element A is coupled with element B when change Delta in A must result in a change in B for the software to function.
- good definition of "coupled" - for any element (module, service, var, funk), any change Delta,
-
The cost of software is the cost to change the software (assuming, as stated above, change is constant)
-
coupled software becomes more expensive to change following a power law distribution
-
Cohesion has a surprising definition
- Some element A is cohesive such that sub-elements An ARE coupled
- A module is "cohesive" when its classes are coupled (wat?)
- Ergo, small, cohesive elements are good, and should be broken up and decoupled, but should remain cohesive for shared work.
- Making a module "cohesive" (and thus internally coupled) saves time and starts to help you identify where important decoupling can happen!
- its not guaranteed but its a place to start and help you reason about code.
- Some element A is cohesive such that sub-elements An ARE coupled
-
((Like Tim Ferris says)) What would this look like if it were simple?
-
some times you make the change easy before making the (now easy) change