If you're reading this, then you must find yourself in one of the following Drupal 8 module development scenarios: you've migrated your website from Drupal 7 to Drupal 8 and... surprise, surprise: one of the D7 modules needs to be developed from scratch now, you've found a contributed module that's almost a perfect match for that custom functionality that you need for your project; so, you need to tweak it a bit, you need to implement a particular functionality and... there's no core or contributed module that you could use; so, you need to create a whole new Drupal 8 module