Object-Oriented Programming has made a long way. Tons of materials are available since the 80's about OO design, yet communities such as Rails continue reinventing the wheel, struggling to find the best approaches to objects' architecture.
In this presentation I will talk about how the Forwarding Pattern, used by every single developer, creates a Dictatorial culture between objects in most situations and how we can leverage the use of the Delegation pattern to create decoupled designs. I will also talk about how Integrated tests are bad and how to use Contract tests to guide us in the quest of building better designed components.