This is to prevent their work affecting other developers. During development, you can expect many of these things to happen:
- IIS resets may need to be done frequently, which stops the SharePoint website working.
- Custom webparts can easily introduce memory leaks which can stop SharePoint working.
- You may be running development SharePoint in debugging mode which would hold the server thread.
- You may be reading event or error logs that are being polluted by other developers simultaneously.
Thus, all SharePoint customization and development must be done on a Virtual Machine. No ifs, no buts.
- It's very important to correctly setup a SharePoint environment for development. Correctly configured, this will save you a lot of trouble later on.
- From time to time, you can seriously screw/damage a SharePoint installation during development and it is best not to install SharePoint on your day-to-day machine.
- Additionally, when you start a new SharePoint project you don't want to carry all the baggage from previous customizations that could potentially affect your new project.