The value of a software comes from implementing particular business requirements. Business is interested neither in correct abstractions nor in code reuse. But business is interested in changes and cost of these changes.
The key to writing easy to evolve, extensible and customizable software is strictly defined component dependencies and boundaries.
This presentation will consider several best practices that help to write high-quality maintainable Magento 2 modules as well as increase a value of contributed bug fixes and core improvements delivered by Magento Community with minimal code overhead.