Erpnext development and move to production questions

I’ve been experimenting with ERPNext, and I have a few questions about development and deployment to production.

When developing a new instance, is the idea that you use Development Mode, build the modules how you need them, then switch to production mode (on the same machine)? Or is it intended that you migrate the entire ERPNext instance to a different machine?

When installing ERPNext, it seems that all of the modules get installed, whether you need them or not. If some of only a few of the modules will be used, what’s the proper course of action? Just leave them there and use permissions so that nobody can use them?