Bumblebee has kind of fallen into a 'not officially supported' state as of xenial, but it will work if you are willing to spend a bit of time cajoling it by messing with drivers and blacklists and config files.
Nvidia also has an official solution now called 'nvidia-prime,' but it's awful. You have to log out and back in to change which card you're using, so you can't just spin up the discrete card for one or two taxing programs in your workflow.
But it can work the way you'd expect it to, if that's what you're asking.
I had bumblebee on my precision 5520, and it works fine. You need to meddle with it a little bit, but after that everything works fine. Actually, I loved it since I could have my X11 memory space controlled by Intel and my Cuda application development wouldn't have messed up the X11 while running. Something you expect to not happen, but happens all the time.
Bumblebee and optirun can be better, but it is usable right now.
Does it allow to connect external displays? Last time I checked bumblebee worked almost fine, but it didn't notice I connected an external display to DP hardwired to dGPU, and dGPU stayed powered-off. I got through a few workarounds for that, and even managed to get something incorrectly displayed, but nothing really worked like it should, so I gave up and I'm using this ugly nvidia-prime thing and just remember to set it in "performance mode" before using my laptop with external displays.
Bumblebee has kind of fallen into a 'not officially supported' state as of xenial, but it will work if you are willing to spend a bit of time cajoling it by messing with drivers and blacklists and config files.
Nvidia also has an official solution now called 'nvidia-prime,' but it's awful. You have to log out and back in to change which card you're using, so you can't just spin up the discrete card for one or two taxing programs in your workflow.
But it can work the way you'd expect it to, if that's what you're asking.