Development for SharePoint is very different depending upon whether you are online or using On-Premises SharePoint.
All you need is VSCode. All modern customizations are done using the SharePoint Framework (SPFx).
💡 Best practice is to isolate your code as much as possible during development/staging. Unfortunately it's not easy to come up with a full-blown dedicated Test Tenant. As a minimum, make sure you test all your custom code in a dedicated Site Collection to avoid as much side effects as possible.
See our rule on SharePoint Development.
⚠️ Note: SharePoint Server 2016 and 2019 reach end of support on July 14, 2026. Consider migrating to SharePoint Online or SharePoint Server Subscription Edition.
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 damage a SharePoint installation during development and it is best not to install SharePoint on your everyday working machine. Additionally, when you start a new SharePoint project you don't want to carry all the luggage from a previous customization that could potentially affect your new project
Virtual machines can be fired up and shut down easily
Virtual machines can be relocated on a different server and thus it doesn't waste developers' own computer resources
Virtual machines can be copied and brought to a client for demonstration
Very easy for someone to quickly create a new SharePoint server to quickly test or experiment with SharePoint
Bad - There might be more work required to activate additional servers. SharePoint Farms are a lot of work. E.g. Search Server VMs