How to maintain D7 & D8 versions of your modules concurrently

Experience level: 

You have some Drupal 7 modules on You want to port them to Drupal 8, that's where the most exciting things are happening today. But at the same time you don't want to leave your Drupal 7 users with an unmaintained module. They may be your past clients, current clients, or even future clients, as Drupal 7 will be around for a few years at least. How do you handle multiple core versions of the modules wile limiting future consumption of time & resources? The session attempts to answer this question, by utilizing some strategies: - Decouple the logic from the drupal integration. - Release library/libraries if the logic could apply to other projects. - Prefer external libraries over writing your own implementations. - Use composer for managing the dependencies.