For the 1% of devs working on system level stuff we provide VMs or separate physical servers that aren't joined to the corporate domain and don't have sensitive information on them.
But honestly, giving a developer non-admin privileges of their own (as in their work environment) computer is like giving a carpenter a rubber hammer to hammer nails. I find it insulting.
Consider the irony of that, when one of the approved pieces of software is a compiler. We can make our own programs, hello!?
Really? This question from a security engineer on Hacker News? I can tell you've never developed on Windows because (as pointed out) Visual Studio needs root level permissions to operate. The level of access a user needs to run my program has nothing to do with the level of access I need to build the program. They are completely disjoint.
I can't even imagine writing a kernel hardware driver in a corporate setup if they at subjecting development environments to strict lockdown.
I don't recall needing it for debugging though, even when attaching to a running process (was your process started as a different user?)
Thing is, why do developers create software that needs administrative access to the os? I wish that I could simply download a zip of the software, extract it and run.
And already this wouldn't work: most software is distributed only through an installer. Heck, even PortableApps website distribute their portable products using an installer!
This applies to any OS being used.
If you are an external, might additionally need to have an employee sitting with you in case you are trying to use something business critical.
Why? Tell me, if you were a system's administrator in charge of 10.000+, would you risk it? That's everything that's bad in corporate culture, but as you get big, it happens.