I've been building, installing, maintaining VoIP systems aboard vessels for over a decade. Some have dozens of extensions, paging, vessel-wide alarming so I get into the details of building good-sized VoIP systems. They are certainly a way to have tons of features and save a lot of money over a PBX style system. On a vessel, the bandwidth and latency can be horrible while at sea due to the extremely slow connections of satellite-based Internet (until Starlink showed up) - so saying DSL won't work is an oversimplification. It can work great, but depends on a lot of factors. I also use VoIP at my business, with no server, using Starlink, AAstra phones, and voip.ms as my service provider: works great for a small office and is crazy inexpensive.
You need at least 100 Kbps - both directions - and latency under 70mS to get any kind of decent connection, at a rock bottom minimum. Those won't be great calls, but will work. Latency is super important or the echo will drive you bonkers. Keep in mind too that DSL is not symmetrical: fast downloads, slow uploads. So your upload speed will be your determining factor with an asymmetrical internet connection. Many DSL connections will do that but if you are in an office using DSL, you better darn well have a prioritizing router or somebody watching youtube (guaranteed nowadays) will kill you off.
You also want to match your phone choice to the codecs supported by your VoIP provider, especially if you have a slower connection, The Codecs are substantially different in their bandwidth and latency requirements and some of the well-known phone brands have poor codec selections (require higher bandwidth or only work with very low latency).
When you have a few extensions, you want to think about how to avoid using your Internet to make calls between extensions. That's when you install a local VoIP server. I've been using the open source Asterisk server and it will do everything you can dream up for a VoIP server, but they can be pretty complicated to set up. The server routes your office calls just on your local Intranet, keeps voicemail local, allows paging, good for adding high end dedicated speakerphones, supports ring groups (multiple phones ring off one call), night ring (all calls to one extension, or straight to voicemail), makes it easy to conference a bunch of callers together...
This is predominantly about having the right router(s) to prioritize VoIP traffic, a reasonably good Internet connection with low latency, a decent VoIP phone (tons of difference, between models and constantly changing), and a reliable voip provider. If you are running anything beyond the smallest office, you should strongly think about redundancy and UPS backup too, especially on your Internet connection. If your Internet goes down AND your phone goes with it, your employees don't like that.