You can also place them in a directory named library/ next to your playbooks- this is usually the way I tell people to do it, so your modules can be versioned alongside your content.
The .py doc file is not required anymore (it was at one point), but strongly encouraged so that ansible-doc will work for your modules the same way as for "in the box" modules.