Can Developers Work in a 'Locked-Down' Environment? 648
brad-d queries: "My company is seriously considering enforcing a SOE on all employee computers, including developers. The level of lock-down would likely include baring the Windows registry from changes (and in effect stopping the installation of new software). The goals of this SOE are to prevent users from installing unlicensed software, plus some support issues. What are others experiences with situations like this? Can a developer really work in a lock-down environment? What compromises could be made between developers and IT services? And no, Linux would be likely banned." It depends on how "locked-down" said environment is, and what the developer would be will be working on, however if the Registry is locked with no mechanism provided for the Developer to add in whatever keys are necessary, how much real developing can one do?
Registry lockdown? (Score:3, Insightful)
Re:Registry lockdown? (Score:5, Informative)
Yes, I've seen this before. In a university environment I used to work in, we tried to lock down the registry...we had to make so many exceptions for various application that required full registry access to run (scary), that by the end of the semester we gave up on locking down and went back to rebuilding the systems nightly (which introduced a whole group of other messes...)
Re:Registry lockdown? (Score:2)
Just out of curiosity, what applications need full registry access?
I'm not really a Windows developer, so I'm not familiar with programatically changing the registry. But I have manually changed the registry to allow automatic login [microsoft.com], and you may even be able to auto-login into the admin's account (BTW, the PCs I did this for were not on the network, and needed to boot straight to the desktop). Now, you need to know the desired password for the auto-login to work, but there may still be a security issue with a program that is allowed to read and write any keys in the registry.
Does Windows allow full registry access by default, or does it make some restrictions?
Re:Registry lockdown? (Score:2)
On the otherhand, I can and do get most of my work done as an 2000 "Power User", which is a partially privledged group. Developers could maybe get an secondary admin login that they could use with Run As (su) to install software or whatever.
Testing with the "User" level (which MS's idea of locked-down), caused lots of stuff to fail.
Would anyone run a Unix desktop program that required root access? NO! But that's situation normal in the NT world, where 9x is tested first and not even Microsoft does full QA as an unprivledged user (see SP6). Shipping XP Home with defaults to give everyone admin rights is a huge lost opportunity to fix the problem. Eventually Microsoft is going to have to break the eggs to get the omelet made.
Re:Registry lockdown? (Score:3, Informative)
OTOH, locking down HKEY_LOCAL_MACHINE makes perfect sense and programmers who use it for user-settings should be shot. Twice.
Developers need to write the administrative portions, so they really can't be locked down. Giving a programmer a C compiler and no registry access is like giving a soldier an Uzi, but no ammo except rubber bands. Well almost.
Re:Registry lockdown? (Score:2)
Well, we still use INI or config files to store settings in. Also, custom built dlls, live in the apps directory, not out in win\system32. Pick up our apps, move them to a new drive, run them, they work. Saves on reinstallation expenses for our clients.
Re:Registry lockdown? (Score:2, Interesting)
When I was attending Purdue in the mid '90s, all the computer lab machines would reload a disk image over the network after every reboot. It only took about 10 - 15 minutes to get a login after starting a reload, and you were guaranteed a completely fresh environment. It sucked if you only needed to print out a file from a floppy for that class that started three minutes ago. On the other hand, you never had to worry about malicious code. No viruses, trojans, password sniffers, etc. It made maintaining the machines that much easier. Each lab had its own master image and any updates could be tested on an admin workstation before the updates were published. Once the image was published, every machine was updated at the next reload.
Re:Registry lockdown? (Score:2, Interesting)
Re: What is SOE?? (Score:5, Informative)
Just so ya know... I had to look it up
antidigerati
Re:Registry lockdown? (Score:2)
Re:Registry lockdown? (Score:5, Informative)
I'm also assuming by "Lock-Down" you are saying they have no rights to use Registry editing tools (regedit, regedt32, reg, regdmp, etc.) Also, no file permissions have been changed from their default.
By default, only "Administrators" have the ability to add or change keys in "Classes_Root". All users have full control to their own user hive (ntuser.dat).
For "Local_Machine, only "Administrators" have change ability to "Hardware";and "Administrators" and Power Users" have the ability to change keys within "Software".
As a developer, all developed programs should be able to be used by a person with only local "User privileges", but the person installing the application will need to have administrative privileges, because they will need access to CLASSES_ROOT or LOCAL_MACHINE.
So, if I was a developer writing an installation program, I would need to be able to test my installation code on a machine where I had local "Administrator" rights, but I would not need to have those rights on a machine I was compiling my source code on, since that only needs file permissions.
Where I work, the developers are normal users on their development machines (Visual Studio, Team Fusion, etc.), but they test their applications on machines set aside specifically for their testing purposes (their development and test machine sit side-by-side, sharing a monitor, keyboard, and mouse through a KVM switch). The test machines get wiped out and re-imaged as much as a dozen times a day (with a bootable CD image), but their development machine is rarely touched by IT.
In the rare instances where an app or development tool must run as local admin, we use the SU tool of the Windows NT/2000 resource kit. SU (we call it the Super User tool) will allow a specific application to run with elevated privileges.
We also use a freeware tool called RegDACLS to change registry key security to allow evelated access to specific keys in the registry.
No, you can't. (Score:4, Insightful)
If whoever is thinking about making such a decision is in charge of development, then get your resume in order because if I were you I wouldn't want to work under him much longer.
Been there, done that (Score:2)
Hell no, BUT!!! (Score:2, Informative)
Re:Hell no, BUT!!! (Score:2)
I disagree. It's far more easy to maintain security if something has been developed with security in mind from the beginning. Trying to retrofit security onto an application/system/protocol/network/whatever is a slow, painful, and usually impossible process, especially if the source code isn't available and the developers have retired/died/moved on.
Re:No, you can't. (Score:5, Insightful)
I've also worked in an environment where the implementation group controlled everything (this was just when SMS came out, I still have the shakes), your computer was set up for you, they periodically came around and uninstalled screen savers and whatnot... but imagine monday morning when you come in to work and your computer gets the BSOD because some nitwit from tech support messed up your registry when ensuring your computer was "compliant" with corporate policies, or they screwed up your file links and now gcc can't find your mysql header files because you had a "non-standard" installation... Occasionally they would allow us to make the necessary changes ourselves if we were buddies with the technician -- let's face it, I feel more comfortable in my abilities to maintain my computer, I use the thing every day for crying out loud!
I can understand the IT department's headaches from users who screw up their machines, but developers are typically smarter than the average Outlook user (hopefully??) and can manage their own computers just fine. Computers as company property and subject to coroporate/IT policies is one thing... coding with my wrist chained to the chair is another.
Freedom is not for the ignorant.
Re:No, you can't. (Score:2)
You need admin rights to run a debugger that enters a secure part of the kernel. So, unless you're developing VB or Java or some other language that thinks disassemblers are dangerous, kiss productivity goodbye.
The good news is it takes about 10 minutes to root an NT box, and from there you can just grant yourself admin privileges!
John
Re:No, you can't. (Score:2)
Re:No, you can't. (Score:2)
That's what we were going to do when my company was considering this ill-advised policy. Luckily, they rethought it.
Re:No, you can't. (Score:2)
I get upset when I tell the help desk that my machine blue screened during an ftp, and he tells me that my case will go in the advanced pile because he didn't know I had an ftp application.
I get upset when I am trying to switch my company's content management over to XML, and they constantly ask me "Is there an XSL editor that is as good as the typical HTML editor?" and I can't evaluate them because I can't install them on my machine without changing the registry. From the company's perspective, of course, we don't do XML/XSL therefore there's no reason for me to install such tools...
Damn, I just fed the troll, didn't I. :-/
Trust? (Score:3, Insightful)
Re:Trust? (Score:5, Funny)
Having been in both ends of the pool, it never fails to amaze me at all the rules the corporate "golds" make up, then act surprised when development objectives get missed.
I'd suggest a copy of Yourden's "Death March Projects" be left on the culprit gold's desk for their inspection. It won't work, but it'll be worth a few good stories.
*scoove*
They can't (Score:5, Insightful)
If you get out a bible and swear to IT that you are willing to not ask for support when you screw shit up, they may be open to letting you be blessed.
Re:They can't (Score:2, Informative)
Our source control system, critical apps, intellectual property, bug-tracking system and stuff like that are kept on servers to which the average developer has no admin rights. And only IT can add new machines to the domain/change domain properties for machines.
It works quite well. There's a good mix of tools (shareware, freeware, commercial) and we can usually try things which might make our lives more useful.
The only things IT mandate are that we keep the Virus Protection up to date, and lock the screen/log off when we go home at night.
Propose this model to your IT folk -- it works, it's less trouble for most people, and you can weed out the troublesome alleged l33t developers who can't keep a system running without help!
Re:They can't (Score:2)
Re:They can't (Score:2)
Then you just demonstrate the problem from a "supported" user's machine. You can't blame them for not wanting to learn some foreign OS just to troubleshoot one problem (yours or theirs).
Re:They can't (Score:2)
They wouldn't *have* to know your OS if they would just believe you when you tell then the source of the problem.
Re:They can't (Score:2)
refuse to escalate the problem past the basic list of idiot questions, and that list insists that you be running the OS they tell you to
So do what I do - Lie. As they'd ever know.
ISTR that the policy at H-P's lab... (Score:2)
...is that IT has the One True Canonical Disk Image. IT performs backups of the network drives; if you want anything safe, you keep it on the network drives. Anything goes wrong on your machine, their first step is *WHOMP* reimage the machine.
Also IIRC they allow users to install stuff, make local changes and tweaks, etc. I think they might even have machine-local administrator rights. But if you change anything, it breaks, and you complain, *WHOMP*.
(On an ironical note, I work for a military research lab, and IT is not at all alarmed when users have local admin rights to their Lose2K boxes. It makes things far easier for everybody, including IT. (IT can still do remote admin.))
blah (Score:2)
Yes, but at a much slower rate... (Score:4, Interesting)
They're migrating to W2K shortly, but I put my foot down and they allowed me to wipe my box and install RedHat on it -- the only way I managed that was the fact that it was in a nice shrinkwrap box.
Well, all fine, but I get no support and I'm not allowed to put it on the network, so it's sneakernet for me. Access to the internet is done with floppies. =(
The point is that you may be able to persuade them to let you have a purely standalone machine, as long as you keep an SOE machine next to it for running Outlook =)
Re:Yes, but at a much slower rate... (Score:2, Troll)
Re:Yes, but at a much slower rate... (Score:2)
My point was that a lot of places will let you use non-standard software if you sacrifice support and don't let it interfere with their precious network.
My example was in terms of Linux, but it could easily apply to a non-SOE Windows system.
Re:Yes, but at a much slower rate... (Score:2)
P.S. Love your sig... cracked me up.
Re:Yes, but at a much slower rate... (Score:2)
Re:Yes, but at a much slower rate... (Score:2)
For the amount they're paying me in this economy, I'll wear anything they want and even clean toilets all day if they tell me to!
Just Ask .. (Score:2)
Development Lab (Score:3, Interesting)
Where I used to work at we had something similar called the time warp lab, that had a bunch of machines running different versions of windows with different components installed. The developers could test their code on them, and when we were done, we just ghosted a new drive image onto the drive.
What can you develop on Windows w/o Registry? (Score:2)
Since you mention locking down the Registry, you're presumably developing for Windows--but unless you're just writing ASP pages or something, you have to register whatever it is you're developing. That's the Windows model. This sounds exactly like the kind of PHB-think that turns a minor headache (license compliance on the off-chance of an audit) into a major disaster.
Fortunately, it's the kind of policy that's too stupid to stand. We had a similar thing (promulgated by memo from the CIO, rather than enforced at a technical level, though) which held for about twenty-four hours before they quietly exempted all the developers...
Locking out the registry = overkill (Score:2)
Technically, the default in Windows NT is to allow Administrators access to the registry, but deny Users. But even then, that's talking about the System registry (HKEY_CLASSES, HKEY_LOCALMACHINE etc). They can still access their own registry hive (HKEY_CURRENTUSER). Any time they change a setting like background color or window placement (provided those rights haven't been taken away by a system policy) is saved there.
You wouldn't write protect an entire drive to keep people from messing with the Windows directory. Just block off that directory.
Likewise, the registry has the same kind of access controls. Give developers read/write access to a specific key in HKEY_LOCALMACHINE\SOFTWARE. Technically, this is where they should be storing registry settings anyway.
- JoeShmoe
it depends on what the developer needs to do .. (Score:2)
I know many developers that do very little outside of what they are told to do. Thus management leads the design process and the developers follow. This leads to people who are not very aware of modern technology designing a 'supposed' to be modern app. With some developers installing new apps, testing new software and doing things like that on their own they would be constantly callin IT for this and that, especially if you have a R&D group. Personally I woudl be against that as I like to install certain of my own favorite editors, icons, tools to make some things I do easier. After that I suppose IT could lock the registry, but ask yourself what does this really gain? IT should just say we support this software and if you install stuff and screw up your machine you just have to wait. In some cases it is just a matter of knowing who can be trusted to know what they are doing in Windos. Some users can install and uninstall and do as they wish and you'll never hear from them while others will be constant problems.
If they insist (Score:2, Insightful)
Eventually they'll realize that the price they're paying in increased support calls is not worth the "security" of locking down your desktop.
I'm in just such an environment. Less than two weeks and they gave me local administrator priviledges under the table.
Re:If they insist (Score:2)
I finally got to the point of ghosting each of thier machines after they were setup for each user, and handing them a self-booting CD when they screwed up
Works for me. Of course, I prefer the reimaging cd be for my test box, because that's the only thing i ever install weird shit on
Doesn't work too well.. (Score:2)
Most places allow developers to disable the lock-down, and generally won't debug your machine if you screw it up, just rebuild it from scratch. Even the big guys do that.
How does an IT department suggest this? (Score:2)
One. The department is woefully underskilled and incompetent for the jobs they need to perform. In an effort to try and head off as many problems as possible they lock things down to a minimal set of known circumstances.
Two. The department is horribly understaffed. They feel the only way they can keep up is by making sure there is little different from point to point.
I firmly believe in having a COE on every machine. But I also believe that a user can and should have the right to software they feel would enhance their work experience. As an IT guy would you really know if MATHCRUN2002 helps that user or not? Make sure all users run the idea by you first and let them install it. As long as they have the understanding that is isn't supported and if something on your machine can't be fixed quickly you will return the machine to the COE.
BTW the two reasons I listed at the top are a result of poor management. Usually you end up with fascist IT directors when they have no concept of how to really run a computing environment.
Two possibilities (Score:2)
The moral of the story is simple: programmers want to be free.
-CT
Surprise (Score:2)
I have worked on a system that was air-gapped for security reasons. You had to jump through hoops to bring in any software, and the process was so painful that it was rarely done.
We survived, but we didn't have as many neat tools as would be nice. We were just kind of used to it and homebrewed simple things or made do with what we had.
On the other hand, going to that sort of system from a more open system would probably damage morale, a problem not encountered by a system that's been closed since its inception.
Absolutely no. (Score:2)
--G
make one of the apps "vmware"... (Score:2)
Unfortunately, vmware has gotten rather expensive, and plex86 [plex86.org] probably isn't ready yet (please, if you can help the author of plex86 find a good job, preferably working on plex86, do so). But if you are willing to pay for Win2k and Win2k software, the cost of vmware is small in comparison.
Otherwise, you may be able to work on your own laptop...
Oh, if you are doing real-world Microsoft Windows development in Visual C++, a "locked down" environment is probably too constraining. If you are just developing algorithms in C++, or if you develop in Java, it's probably doable. But forcing people to use a specific set of tools is not exactly the way to keep developers happy.
Developers should not be treated as sheep... (Score:2)
Would a company consider telling all their advertising and marketing people that they can sit at their drawing boards but not adjust the height, angle and lighting of their workspace? If you treat developers like idiots who can't manage their own workstations (i mean geez!), that will show through in the quality of their work and their morale.
Users != Developers (Score:2)
SOEs are fine for USERS, not for developers. Silly PHB. Such an endeavor is doomed to fail. I work at a place where an SOE in force. Development groups usually get special exception to obtain admin rights or else they couldn't even get off the ground.
The real problem is that management never thinks of implementing multiple tiers : More restrictions on Office worker types, less for development -- AND NONE FOR LABS! If you're on the group who's testing, say, WinXP(Chi-Rho) for deployment, you can't be fighting 'access denied' all day.
Good points and bad... (Score:2)
BUT, I can see why they'd want to do it. By far our worst offenders for installing unlicensed and non-standard software (not dev tools) are developers. And frankly, 3 out of 4 developers I meet (DEFINATELY not normal Slashdot developers) can't fix their own PC when they break it. I'm amazed at the lack of understanding on the base system...I don't mean really get in there, but just simple things a real "power user" would know.
People unclear on the concept. (Score:2)
Fire those who fail to comply.
Then you'll still be able to do your job without having to go around unlocking registries.
--Blair
"Are B-schools spending all their time on cultural diversity and takeover avoidance?"
Re:People unclear on the concept. (Score:2)
It is not. A developer that needs a quick little tool doesn't need it next week after a long bueracratic approval process. He needs it today. Now.
Although putting the policy on the questionaire right away at the beginning during the interview process would be a good idea. It would allow the good developers to know that this is a company to avoid.
Re:People unclear on the concept. (Score:2)
Fire those who fail to comply
So, you fire the competent people who get caught, drive off the talent (who chafe at such behavior) and end up with the people sneaky enough to avoid your attention and those with no real creative drive. Sounds like fun.
Your sysadmin (Score:2)
Re:Your sysadmin (Score:2)
Can be done (Score:2)
The only thing I can think of, is if you are doing some program protection that stores some encrypted values in the registry. I think IT will understand if thats what you're developing. But after you're done developing that, then it should just be a black box and you don't need to test it again.
And most likely you can get the keys for your software's settings to be left open. It's not unreasonable.
What a loss in productivity. (Score:2, Informative)
Where I currently work, no software can be installed, and much existing software breaks. Windows media player causes a GPF, and many enhanced websites cause the machine to hang. The registry is locked down, and I don't have rights to "program files".
Every time in the past I've needed a piece of software, it generally takes days to be installed, and the entire chain of command has to OK it. If we directly submit a request be it for software or support, it gets deleted.
This completely and utterly lowers productivity. If I need something and I need it now, it takes days or weeks to make it happen. Problems or requirements that could easily be taken care of by the user are not possible, resulting in delays and wasted time.
Plus, IT stops by once a week to add software, odbc connectors, or make other changes. Those are things I could very easily do myself. Doesn't IT have better things to do?
I'm surprised they let me add bookmarks. Don't even get me started on firewall rules.
Compromises (Score:2)
Instead of a registry lockdown, why not have an automated licensing check run on the companies software. You would have a program that scanned registries across the network for installed software, and check the installation against company licenses. It would quickly ferret out things like pirated copies of Photoshop and the like.
Sounds good to me (Score:2)
90% of the developers won't be able to get anything done. The 10% that can hack around it will be the only ones able to code.
I've had a similar fight everywhere I've worked except my own company. I even had one IT director running around, asking everyone who I worked for, so he could complain about me running Windows 2000 when they weren't ready to migrate everyone yet. (Someone finally told him I worked for the CTO and he gave up.) These paper f-ing MCSE's get taught how to run a Windows network full of secretaries, phone droids, and marketing weasels. None of their classes or cram sessions talk about administering a network for developers. Maybe they should have a special cert for that.
Personally, I welcome the challenge of any paper MCSE that wants to try to lock down my machine. I use a laptop running a tightened Win2000, never leave it unlocked, and don't log onto the domain. They have to force my boss to make me let them change my box. Not gonna happen. Even worse, I tunnel my web browsing over SSH2 to my OpenBSD box at home. They'd really hate that if they noticed.
My solution for Small Business (Score:2)
Good idea (Score:2)
Now, for developers it presents a HUGE problem. However, the way around this is to make sure that the developer's machines include virtual machine software like VMWare and a set number of "development virtual machines" that the developers are free to do whatever they want with!
This does a number of very positive things. One, it keeps the developers from accidentally doing something that messes with company network, since the "development" machines are now all on their own virtual network inside a computer. It keeps IT in a state to be able to maintain the local network and systems and INCLUDE the developers. And it allows for everything to be standardized. Everyone goes home happy.
Now, where it won't work is if the developers won't be given a powerfull enough system to run multiple virtual machines, or the IT people refuse to entertain the idea of allowing a virtual machine product.
When either of those things happen, the results are either bad or worse.
The important thing is to raise these issues early in the process so that the business decission makers can be made to see the sense and reason behind giving the developers their own play environment in the form of a virtual machine.
I'd probablly flip out... (Score:2)
Assuming the SOE includes everything... (Score:2)
Of course, if the people are developers, they are presumably going to develop something that's not part of the environment. If they can install their project, they can probably install other stuff.
It's very hard, especially with new technologies (Score:2)
To sum up my opinion: developers should have "power user" rights. They should be able to do whatever they want to with their machines with the understanding that if they mess it up, IT will send it a fresh new image that will wipe the computer clean and start from scratch. They should not be given administrative rights because then they would potentially mess up the network. Having your developers work on desktops with restricted access is like having them work on dumb terminals and results in loss of efficiency.
Maybe I'm confused, but this is simple... (Score:2)
Companies is putting in a standard. Can't modify registry. What am I to do?
Being a consultant, I run into this all the time.
First question: What do you do that REQUIRES you to change the registry? Does your programming? If so, talk to your boss and get yourself cleared of the policy.
Second question: Is there someone higher in the company than you (higher in rank, not drugs)? If so, talk to them about how to handle the situation. If not, you got to go to System Support and talk to them directly.
Regardless of how you answered, you need to either talk with your boss or Sys Support, not slashdot (which may be why this SOE is being implemented in the first place).
This really isn't a question for ask/., its just a developer griping about his job. Personally, I think this shows a lack of trust (pirating software, slacking off, etc...) or the lack of developer computer competence (need a standard for easier fixes).
Either way, it doesn't sound like the company likes their employees, and I'd take off. But for contractors, you just grin and bear it.
Re:Maybe I'm confused, but this is simple... (Score:2)
What do you do that REQUIRES you to change the registry?
Don't forget to test it (Score:2)
This is what happened for us. (Score:2, Interesting)
After we received a request for an email tool we bitched and bitched about getting the rights to load it on a networked PC as well as SOME info on how our Mail servers worked. They said no so we delivered the product as is. Surprise of Surprises it didn't work right.
We the programmers then got all the rights back that we had before. All it should take is some truly crappy releases from your developers before they give you back at least some of your user rights.
Just make sure that you document all of your hassles before you release it:)
Lockdowns blow... (Score:2)
Why? (Score:2)
Although IT can be faced with lots of problems from people who screw up their systems by trying to use programs that aren't supported, there are other more political issues.
1) Productivity. I'm sure my company would love to stop people from VNCing, ICQing, MP3ing,
2) Legality. Your company doesn't want you using pirated software, or software that the company may have some licenses for, but not enough for everyone and there mom to have Photoshop installed.
The desktop environment my company uses doesn't lock the registry down or anything, but periodically polls a server to see if all the installed software that is recognized, is accounted for. It apparently has the ability to uninstall software that isn't recognized, but they have (thankfully) not turned this "feature" on.
I have been there many times (Score:2)
The problem is, IT is solving a real problem. It is impossible for any company to mantain a support force that can handle any and all configurations and prevent unauthorized software installations by people who don't know what they are doing (like in "Hey, my friend just send me this great Back Orifice game, let me install it").
But developers are beasts of a different kind. In the long run, the underpaid IT tech guy will lose. Always. All my NT machines, and I had some during the past years, were mine in every sense. Administrator passwords were cracked, domains were abandoned. New, local domains were created. Linux machines were installed to handle development projects. IT never had a chance, because we were always adding value, they were always a burden.
And we never did it out of despise for them. But because the work had to be done and when work has to be done you can't wait for that same underpaid IT guy to come around to upgrade Acrobat Reader or install Visual Studio beta X.
And for the reasons above, the development boss would always prevail over the IT boss when a complain was send up about those pesky developers that wouldn't stand in line. And I was, at different times, the pesky developer and the boss that had to tell the CEO that "No, we can't play by IT rules unless you want version n.m to be x months late". Can you guess the answer?
Linux banned? (Score:2)
Bottom line: they're worried about the BSA telling them that they are going to have to pay thousands (or millions) of dollars because of licensing problems. You're booting a CDROM that the distributor tells you to go ahead an make coppies of, if you like. Think about your boss explaining that to some IT manager with a huge grin on his (her?) face
It depends on what kind of work you are doing (Score:2)
Not Enough Information (Score:5, Insightful)
Surprisingly enough, nobody implements such a policy because they are evil incarnate - you may not believe this, but it is true. The reason that policies are setup like this is purely to save money. And the money is saved because a huge proportion of support time is spent fixing PCs that users have wreaked because they've installed that cute new application.
This leads directly to the BOFH approach to policy - nail it down, and nail it down hard. Don't even let them log on without a letter from the Pope. This is a stage one policy. Support calls drop dramatically, user productivity is zero.
Now, a bit of reality is introduced. People have to use their machines, so against our better judgement we let them log on. And print. And even save things to the hard disk. This is stage two: most people can do what they have to do, support calls rise a little.
Then you deal with the exceptions. Depending on the type of user the general restrictions are lifted. There may be strings attached (such as the screw up and we'll only reimage) or maybe IT will arrange proper support for the application etc.
The point to remember (and so many people forget, especially people in IT) is IT support is not the business. If you are in the business of making widgets, or writing code, then IT support do not do this - they exist to help you do this. They exist solely to allow the business to function more effectively. They are "facilitators" (to use a horrible word). They provide a service.
If that service prevents the business doing things that are required for the business the the service is substandard and needs to be replaced. In this case that service is a policy, and it need to be replaced. I have designed a policy for devolopers, and the policy is
1. You get a standard PC with the standard loadset, and admin rights on the local box.
2. If you screwup we will only reimage.
3. If you repeated screwup we will still reimage, but we will start charging you.
4. All software to be purchased (if costware) and registered (registerware) via {specific person}.
Lockdown policies are loved bu IT departments, but if it stops you (or anyone) doing legitimate work then it is broken and needs fixing.
And the complementary question is.... (Score:2, Insightful)
Can a production environment really work if developers are given complete freedom?
Where is the line drawn between freedom for developers and ensuring a stable, consistent and cost controlled environment? Granted freedom is needed to evaluate new tools and techniques, but shouldn't this be within the bounds of a defined framework? (If the answer is no, then I guess all the NASA source code discussed in a prior article today must be considered the product of luck.)
Simple workaround. (Score:2)
Run a crack program NOW on your machine to get the administrator password. Then add your domain login on your machine into the local-machine's administrator group.
voila, thay can put whatever restriction they want on he domain logins, your administrator group rights override the domain rights.
Works great and lets you actually do your job instead of letting the morons in power screw with you for the reason of satisfying their power trips.
(Sorry, front line IS/IT need administrator rights to fix things quickly... How the hell is the help desk going to log me into that machine as administrator remotely when the T-1 line is down? or if it has network problems..)
Oh and their answer is usually "sent that machine to us and we'll fix it in a couple of weeks.." No thanks, my boss wants it fixed now.
Re:Simple workaround. (Score:2)
Run a crack program NOW on your machine to get the administrator password
And if they find out (like noticing that you're a local admin), they fire you if you're lucky. If you're not lucky, you face criminal prosecution.
Not for development, no way jose. (Score:2)
1) Developers need to learn and try new tools and technologies. If not, they'll be obsolete and eventually worthless to the company.
2) Every project has different needs for technologies. The overall development management may offer coding standards, and chose some tools over others, but that will never cover everything.
3) The receptionist may be OK with letting the IT group have full control on his computer. Programmers, who often run circles around IT support staff will fight, whine, and gripe if subjected to a heavy handed IT department.
4) IT support staff does not have the skill to perform installation and configuration of necessary developer infrastructure. A short list:
-integrated development environments
-compilers, patches to compilers
-web servers, exotic features of same
-Databases, oracle, sybase, postgres,mysql, access
-middleware
-specialized hardware and drivers
5) Then you have the occasional oddball document in some format that can not be handled by whatever is preinstalled on your system. That problem can be solved in many ways, but a locked down environment will waste a lot of time:
-developer finds and installs a conversion utility of viewer, takes 15 minutes at most
-developer must ask IT support to install such tool. Support staff asks IT manager for permission, developer must argue his case. It manager says no.
-developer hands document off to tech writer or someone else with the peoper software.
6) Then there is trust. If you can't trust your developers to manage their workstation, you shouldn't trust them to write code either.
Testing
-------
The only place a locked down environment is a big help, is for testing. However, an IT support group is not the proper organisation to deal with that. Testing and code release must be responsible for the test configuration and environments. And the locking down here means locking down configurations and changes into source code control, so that the proper environment can be recreated. An MIS nazi with
a bunch of desktop monkeys would not be the right way to solve that problem. By using source code control, test environments would also be available to developers.
I've seen too often that some piece of software only could work on the developers machine and nowhere else, because of the combination of middleware, compilers, configuration and runtime environment was different from the statdard build environment and the official test environment. But locking down the systems does nothing to help with that. Rather the opposite.
Usually a good litmus test for any policy is to ask: "What problem are you trying to solve?"
If the it group comes up with a non-problem, or they can not address the consequential problems, you're in trouble.
VMWare as a solution (Score:2)
The only software we place on the host are licensed productivity type apps and VMWare. Now, granted, we license all our software appropriately, but not having to worry about reconfiguration of a machine sure is nice.
The "Undoable" partitions are nice when you are mucking around with the registry (or other OS level stuff) as if you screw up, you don't commit the changes. Works great.
We zip up the sessions and archive then backup them up. Restoring an environment takes about 1/2 hour...the time needed to transfer and unzip the VMWare session from server to workstation.
We can change available resources and OS's in a snap.
IMHO, VMWare is one of the best tools out there.
So yeah, one can develop in a locked down environment.
Let me answer from the opposing view... (Score:3, Interesting)
Unfortunately many companies don't house full-time developers and instead prefer to outsource on a per-project basis. Because of this many of them are concerned only with making their app run, at the expense of others. ie - Develop an app that's dependent on IE 5.0 despite the fact many company sites only work under IE 4.0. Bad code all around, eh?
This leads many companies to implement lock-down and I have to sympathize. In a perfect world all your tools would be installed by your Desktop folk and even your development PC would be locked down. In a more realistic world you would have a more open development platform but all testing would be performed on a locked-down PC. A nice compromise since it affords you the freedom to install the tools you need (I think historically no Desktop support technician has ever installed Visual Basic 100% the way a developer wants it!) while still ensuring you are developing an app that doesn't stomp all over settings and files that other apps rely on.
Also, keep in mind that there is (essentially) no user context in Windows that "locks down" the entire registry. What it does is grant full access to user areas and no access to system areas. The only big difference here between "secure" *nix and "insecure" Windows is that in Windows full control is the default. There's no reason why lock-down has to be a bad thing for a developer. In fact it's often a good thing as it prevents the next developer in line from writing an app that will kill yours.
Forget creating any ActiveX controls or using .NET (Score:2)
Creating components using these technologies requires registry access because you have to register the components. If you cannot register them you cannot even run a simple OLE server from the Visual Basic IDE. Forget compiling. Forget C#. Forget C++ for most things. Ain't gonna happen.
So exactly what languages/component sets are you expected to use? Raw ASP? What do you do if a third party component fails to work as expected (as they *always* do) and you have to upgrade? This policy is so braindead I guarantee it will go away, at least for developers, sometime soon. In the meantime I would get my resume out were I you...
Jack
With reasonable management you can... (Score:2)
When developers need to install/upgrade/whatever something they need to clear it with his or her suprivisor. This is usually as simple as: "Hey Bob, I need to install Blah v5.1" And Bob says "Sure thing".
Perhaps this could bring about inefficiencies if it is inconvienient to speak with your department head, or gain permission. But if this is the case you are probably already working in a horribly inefficient environment, so what is a few more hours?
Outsource your IT! (Score:2)
I'm making some assumptions here:
1. You're in a relatively small company ( 500 employees). Large companies probably need full in-house support.
2. You're not an in-house IT person. This question was from a developer, and we're already operating under the assumption that there are draconian IT policies in place that need to change.
A good model is having a small support staff on-site, supplemented by the services of an IT consulting firm. Of course you don't want to call the firm every time someone forgot their password, but likewise you don't want in-house IT setting up your new active directory.
The advantage of outsourcing is simple: your company wants to pay as little as possible, so your in-house contact will educate users about not polluting their PC with Webshots instead of implementing some total lockdown policy. Hopefully your consultant will understand the balance between controlling a system and user freedom. But because your company wants to pay as little as possible for support, they will actively work to prevent problems from happening.
Suggestion (Score:2)
If the policy requires your development machine be locked down, let it be locked down. Everytime your job requires you to do something you're not allowed to do (change a registry key, install the new compile of your program, etc), follow whatever procedure they have in place to modify your machine.
Document the time you spend filling out the paperwork, sending it to the systems administratiors, talking on the phone regarding the request, waiting for a response from systems administration, getting them back when they didn't install your program properly, and so on. Then, when they complain that your project is behind schedule, you can show them that 80% of your time is spent complying with their policy rather than doing the work you were hired for. That will go a long way towards getting control of your machine back.
It depends on the type of development to be done. (Score:2, Insightful)
On the other hand, if you're doing bleeding-edge work, or writing hardware drivers, or developing system software that needs to perform privileged operations, then you really can't do this. Or, even if your development work doesn't _strictly_ require root/administrator access but you nevertheless want to maintain a creatively charged group - i.e. if you want to write a killer app that will change the world, and you need people who are as much visionaries as they are programmers - then you absolutely must work hard to remove all barriers to accomplishment from their environment. (You must also remove any sharp objects or dangerous items; for example, scissors, staplers or any access to production servers.)
In practice, the majority of development shops need more of the former, less of the latter. But in the cases where you do need visionaries, you really need them. And they are very hard to find, very hard to keep, and very very hard to keep focused on a task. The last thing you need with these people is another headache, so just let them do whatever with their own machines and hope to hell nobody ever audits their licensing compliance. Try to remember that if you can't get a straight answer out of them, an external auditor will most likely be totally baffled. You can hope, anyway.
If you make your money in something other than software, and your programmers act like prima donnas, get different programmers. Internal-use software development never requires this kind of visionary status. Whatever your current staff may be telling you, you can build a decent development team using nine-to-five, do what they're told staffers. And you can do it with locked down boxes.
-Graham
Hey, no problem... (Score:3, Interesting)
In fact, when I first got here my system was locked down like a prisoner by accident (they thought I was an intern...god I hate being young) and I didn't notice for four months, and then only because I installed JDK 1.3.1 (which wanted to change my JavaPath).
Yes, Java CAN interface with the registry, but it's a heck of a lot easier to use object dumps and ini files (in xml of course). And since things don't need to be "registered" (more trouble than it's worth) due to the namespace and classpath, you end up with a very nice sandbox development environment.
I wish this effing COM object I've been trying to teach how to use the network all morning were written in java...
SOE? (Score:2)
Been there... (Score:2)
Development environments aren't static (Score:2)
Most software engineers can trouble shoot software problems much better than an IT department, or if they can't, a co-worker can. We only ever expected hardware support from the IT dept. If I needed to reinstall the OS, they would take the machine away for 4 days, and then I would have reinstall all my apps once I got it back... or, I could reinstall everything and get back to work in one afternoon. Both departments benefit in the latter situation - all they have to do is re-add the machine to NT domain.
Generally, software developers need to be much more flexible. They need to try out new technology earlier on. Their software needs to be tested on these platforms before they become standard. There's a continuous need to install and uninstall software. A registry lock-down is stupid: how can you develop a piece of software that uses the registry (a very standard thing to do with Win32)?
It will fail on its own (Score:2)
the described scenario is the exact one i work in (Score:3, Interesting)
1. tiny apps. just like the recent post. [slashdot.org] since single executeables do not need to muck with the registry to run, you are able to utilize small powerful ftp clients, html editors, etc.
2. build your own box. i put my case to my manager's manager, and they made an exception for me. i had (until the sept 11 wtc disaster, in which my workstations were turned into crispy critters) 4 computers at my desk. two were standard company-wide locked-down builds, and the other 2 computers they let me install nt server from scratch. nt security just made sure they had admin rights on them in case the box did something not quite right. then of course, software support washed their hands of these boxes. i had to install my os and software, i had to maintain it. if i screwed something up on the box, it was all for me clean up. which was fine for me, i'm a developer, i can support my own box. i want to support my own box!
3. write stateless software. change your paradigm. become one with the great zen of concise programming for the wrong reason: not because you should, but because you have to.
other tip: depend on nothing. my profile with it's personal settings blows up from time to time and is reset to the generic sucky settings and i have to personalize all of my standard apps all over again. after awhile, i made sure not to put too much faith in leaving my desktop and depending upon it to look the same the next day. batch job important standard settings to rejigger everything (drive mappings, odbc connections, etc.) in cases of nt alzheimer's.
finally, there's no getting around it, a locked down SOE sucks for developers. developer= power user. developer= someone who HAS to muck around with things regular users don't. so bring this up with management. you guys are special, obviously, the most thick-headed manager can see that. maybe, before they SOE everyone, you can convince them to firewall all you dangerous developers in your own domain and let you hack your installs to your hearts content, unsupported, insecure, untrusted, but necessary to build apps.
Locking down makes for useless development (Score:3, Insightful)
Clearly, the process of developing suggests an errorenous progression; changes are made gradually. With the inability to make changes, one loses the ability to develop.
Most companies have a locked down test system, which serves as a scientific control, but having a locked down system for which to work and develop would yeild an environment where very litte work could get done. You need to be able to change a system to make something, its as simple as that. Imagine being requested to build a new house, or better the foundation of said house if the ground couldn't be touched.
Re:SOE? (Score:3, Insightful)
Standard Operating Environment or
Standard Office Environment
My troll sensor is going off (Score:2, Informative)
Directors can screw. (-1, Flamebait) (Score:2)
Shouldn't YOU be scanning attachments for known viruses on the way in to your network? Why is AIM and RealPlayer "crapware"? Because it might lead to (gasp) fun at work?
Of course, since they had no idea how to properly set it up to behave on the network, they caused the whole NT domain to get utterly screwed up.
Unless they installed it with a bad NIC, broadcasting bad packets, Linux can't "scew up" a whole domain. Correct me if I'm wrong, Linux people. The only way a domain can get hosed is if the PDC gets taken down. How did little ol' Linux do that?
I'm sorry to say it, but if you want to get any work out of a business network, you need to protect users from themselves, no matter how savvy they think they are.
As a person working at the director level, you claim to know more about computers than your technical employees? You are management, friend. It was people like your employees that wrote Windows, and the tools you use to lock down their dev environments. What you need to do is call a meeting, set down some action items, and request some deliverables or something that managers do. I had a manager like you once. He thought that setting up a web server took Exchange down. This was in 1995, and he doesn't work there anymore. Learn from his mistake, and let your people free.
Re:Locking down is necessary (Score:2)
Besides, shouldn't *development* be done on a consistent environment that's seperate from the buisiness-access mahcines? If people are writing code that needs to mess with teh registry, they should have a mahcine that can do that, but that machine should not really even be on the main network - it should be on a *development* network, and the developer's primary machine should be a locked-down corporate workstation, perhaps even a thin client or whatever. Either way, the corporate workstation should be locked down to protect the users from themselves, regardless of how much those users think that they should be the admin.
Re:My employer can do whatever they want (Score:2)
The man who cuts the checks makes the rules. Funny how subjects like this do not come up when applying for a job. It is in the employers best interest to make your workplace efficient, if a new solution does not work they will change it.
And it's in every employee's to push back to policies that are stupid (such as a SOE for developers. Such a notion is absolutely absurd). Loyalty is doing your part to trying to stop ridiculous endeavers in the first place, and your posting (portraying yourself as a model employee that views management as blameless) is the model of the type of an employee that leads companies to failure: The prototypical yes man that'll sit back and be ready with a "I knew it wouldn't work!" after the fact.
Re:one word (Score:2)
how do you propose to install VMware in a locked down environment
I dunno, make it part of the standard dev software?