After trying to work for months as a normal user on my Vista Ultimate install at home, I finally got tired of the problems and decided to run as an administrator like I did in previous operating systems. I gave it a good go, but have just found that environment unsuitable for a developer. Main issues:
- UAC prompt every time you install something. Annoying, but not fatal.
- Apps that for some reason don't work with UAC and just silently fail their install. If you then run them as admin, they put junk in the admin profile instead of your local profile. This was really really annoying, almost fatal.
- Getting a UAC prompt because the system confuses a locked/in-use file with one you don't have permissions to. I'd type in the id and password and then get an "access denied". This was super annoying and happened more often than you might think.
The combination of those things was all fatal to me. Back to running as a local admin. I applaud Microsoft for making the operating system more secure for the majority of users, but again lament ignoring developers. I've always thought that Microsoft should have a few install options for the OS:
- Typical User - Keep things fairly tight by default
- Corporate User Install - Controlled by IT (IT shops already do this, so this is fine)
- Developer
Of course, there are others, but the dev install would open up the OS a bit more, install a bunch of utilities and overall just eliminate all the stuff that most developers have to beg their IT department to do. Having that option would lend some credence to what those folks ask for.
Luckily at AIS we're all local admins on our laptops and have pretty much free reign over what we do on them, but I've been in lots of places where the developers work in essentially the same configuration as end users and suffer huge productivity hits, especially when they do dumb things like make it so devs can't access blogs or google newsgroups (ran into both at one particularly tightly-controlled site)
Sure, there's something to be said for developing in the target environment, but I think there's more to be said for developing in a power user environment and doing frequent (daily build) testing in the target environment. That's much more valuable and repeatable, it makes the developers more productive, and just makes more sense.