Answers:
应该吗 这取决于公司。我个人认为只要有一些可以理解的规则就可以。
通常我会说是。如果没有管理员权限,则调试器之类的东西的需求很高,才能正常工作。开发人员通常需要安装随机软件,而通过渠道安装可能需要数天或数周的时间才能安装。在此期间,开发人员通常会停止工作,而公司只会花钱,尤其是如果开发人员是顾问。
发展中既有科学,也有艺术。这并不像“知道”我们所需要的那么简单。如果我们已经有了答案,那么一半的工作就没有意义了。寻找正确的方法通常是反复的,并且可能以不可预测的方式涉及多个工具。要求中介机构安装每一个(通常具有高延迟),却发现(大约一个小时)您的情况需要“超级工具附加程序”,这很愚蠢。
尽管VM是理想的选择,但也有很多开发工具无法在VM中运行(正确,甚至根本无法运行),因为它们本身就是VM-我并不是说JVM之类的东西;我的意思是完整的机器emus / vms,例如设备工具包。兼容性正在提高。
此外,大多数开发工具的占用空间非常大-比“常规”工具要大得多(使VM托管比您预期的要痛苦得多),而且通常由于过程调试器的性质而要求提高访问权限。更不用说它们可能是GUI密集型的;试图在VM GUI上全职运行非常痛苦。
这里的表现是巨大的;您认为用户在Word中每次按键后等待3秒以注册其密钥是否可以?我不是在开玩笑-VM 等上的开发工具可能会让人讨厌 对于大多数开发目的,您需要响应能力。中断复杂逻辑从大脑到键盘的流程可能使完成工作几乎变得不可能。我讨厌这样说,但是是的:开发时间很昂贵。
在Windows环境中,尤其是在使用Microsoft开发人员产品时,开发人员将需要在其计算机上具有管理员权限。如果您否认他们的这些权利,他们的工作能力将受到限制,甚至完全没有被阻止。
作为开发人员,我将特权级别授予基本用户以上,但低于系统管理员。
有时候,我可能需要安装一个额外的库,以使我开发的应用程序可以在生产环境中工作,也就是说,我有一个严格的开发规则:“对于任何需要第三方库的应用程序,库应在生产部署之前(在某些情况下,在应用程序开发之前)安装在沙盒环境中。”
我与之合作的sysadmin并同意这一点,在我们两个人之间,我们将积极执行该规则,并延迟所有未通过“依赖性检查”的应用程序部署。
但是,为了回答您的问题,是的,应该为开发人员提供对他们自己的计算机的完全访问权限,但是应该将这些计算机与最终将应用程序部署到的环境隔离。在这种情况下,甚至应将应用程序部署都沙盒化,直到在生产环境中认为可以安全部署为止。
免责声明:我是开发人员。
在我看来,这个问题(和答案)似乎是在通过错误的方法来解决问题-也就是说,争论的焦点是管理员想要/需要的东西与开发人员想要/需要的东西。但是您指定我们在公司环境中,所以让我们来看看。
因此,让我们想象一下,我们是在IT部门或运营总监,还是控制预算的人面前争论这个问题,并提出这些问题。
回答了这些问题后,您可以做出明智的决定,而不是做出充满激情的决定。
对于您的特定环境,有些事情需要管理员权限(请参阅用户权限和Visual Studio)-如果他们没有做这些事情,那么您可以回答问题2-4。
作为顾问,我已经看到了该策略的两个极端,虽然我一直想拥有对计算机的管理员访问权限,但在某些情况下这没有任何意义。我不确定是什么原因,什么是结果,但是毫无例外,我见过的所有进行Windows开发的地方都有开发人员可以访问管理员的地方,每个开发人员所获得的生产力也比他们被锁定的地方要高得多。
我认为您在问错问题,应该问:
一个好的开发人员会为没有在PC上授予管理员权限的雇主工作吗?
某个人的“需求”和他们的期望通常不是一回事,毕竟,您不需要让开发人员在工作时间内喝咖啡,但是如果您不…
(请确保在面试阶段明确您的政策,否则您可能会因为缺乏管理员权限而导致人们接任该工作,然后鄙视您的公司–不要指望程序员以合理的方式考虑这种事情! )
实际上,这实际上取决于您问谁,然后再问谁真正需要它。如果您问企业IT和风险管理团队,他们会到处都是恐怖的故事(如果他们要给您,他们会要求牺牲山羊以神圣的保证,即他们将不承担责任),开发人员另一方面,要求管理员权限的原因主要是工作压力很大且要求很高,而无需寻求服务台的许可即可泄漏。可悲的是,现在更多的是关于权力斗争和施加权力,然后是关于业务和生产力的需求(例如,归结为谁将使其他人陷入困境)。
恕我直言,我今天看到的最好的工作环境是两组保持分开的地方。开发人员在林中拥有自己的域(IT负责控制该域及其用户在公司其他部门中的工作),他们都是本地管理员,经验丰富的人员由MCSE担任本地域管理员,他们拥有自己的测试环境只需一项IT策略(无需盗版软件),就可以在本地LAN上完成几乎所需的一切。企业IT部门不负责任,也不对开发人员提供支持,仅执行一些高级企业规则(不允许通过防火墙访问Facebook,色情或类似内容,开发人员不得与企业LAN发生冲突),并且它们都具有基于RSA的VPN,可以在家工作将它们直接放在局域网中。整洁,不是吗?
我要说,行政权利对发展过程很重要。鉴于使用VM沙箱相对容易,因此没有理由不能将它们放入VM并保持安全性。
发生任何错误,您可以在几分钟内擦除和重建。
要看。作为开发人员,应该始终以最小特权的原则进行操作。例如,如果您以政府承包商的身份工作,则可能有合同规定您没有管理员权限。
作为Java开发人员,我几乎不需要持续对我的计算机拥有管理员权限。但是,在某些情况下,当您需要按需管理员访问权限时(即,您需要在物理上独立的域之间移动笔记本电脑,并且需要相应地更改NIC。)那是我真正需要的唯一时间对我的计算机的永久,持续的管理员访问权限。
有时您需要管理员访问权限,因为IT人手不足(或者不称职或陷入繁文tape节。)但是,如果您与有能力的IT部门合作,他们甚至可以为您远程安装这些东西(或通过提供可“运行为”,只需单击即可管理并为您安装内容。)
所以答案(再次)是-它取决于。您是否有响应迅速的IT员工可以按需(或在合理时间内)安装东西?开发人员实际上是否需要它来完成付费任务?
如果开发人员真正合法地需要它(例如“如果没有它,我将无法做任何事情”),而不是方便(例如“我想安装我想要的任何东西”),以及是否有IT支持响应不充分(无论出于何种原因),那么是的,他们应该对其计算机具有管理员访问权限。
否则,不会。记住最小特权原则,人。
对于担心安全性的公司,他们将让安全人员下达命令并尝试执行与他们的开发和系统模型相适应的策略。在Windows环境中,大多数人会告诉您,您必须在要开发的主机上具有管理权限才能执行任务。
这不一定是真的...
您可以创建自定义策略,并使所有程序和功能与系统上的开发用户一起使用。您只需要进入工作区,然后进入肮脏的环境,就可以根据需要的设计,对具有组或自定义组的程序/系统目录具有自定义权限。
大多数公司都会说,开发人员在开放网络上安装系统非常危险,因为黑客可以获得控制权并开始编译自己的工具,因此按照我的专业观点,完成任务非常值得冒险。
我必须(显然)提供反对声音,并说“不”,但说“不”。对于没有网络访问权限的沙盒虚拟机,我可以给开发人员管理员权限。Zypher几乎正确(校正以粗体显示):
“ 1.成为我的管理员是特权,而不是权利。” 这些系统是我最终负责的公司资产。当Joe Developer安装他的Microsoft Bob盗版副本(“因为我需要它”)时,不是他必须解释在审核之前是如何找到它的。开发人员通常会以某种方式认为公司规则不适用于他们。通过为他们提供沙盒虚拟机,他们可以遵循其他所有人都必须遵循的所有规则(因为现在只有IT人才可以在系统之间复制文件)。神奇的是,请求系统再次被开发人员使用,当Joe Developer破坏他的开发箱时,天空不再掉下来-他只是要求一个新的(如果要求备份则要还原)
Denny先生提到开发人员在必须等待安装应用程序时要花钱,A。您好...我的时间通常和Joe Developer一样宝贵(通常更多,因为我保持了现有的废话的运行,我真的吗?必须提到所有时间来帮助Joe开发人员调试他的上一部杰作),以及B.当开发人员预算过高时,因为他们在等待应用程序并试图将其归咎于IT,我会说:
您无需为编写软件所需的计划而缺乏规划,这不是我的责任,我们拥有一套标准的工具,如果该工具箱缺少您需要的工具,那么您应该要求加快开发更多工具的请求,而不是试图让我跳槽赶紧为您买单,因为您的截止日期是明天。
这么说了之后,如果您可以淘汰那些认为自己有权观看其Baywatch系列产品的developers脚的开发人员,并且生气地得知他们无法安装babewatch播放器来查看它们,那么请锁定开发人员的桌面。开源”),您也许可以放松一下。但是,对于每一个出色的开发人员来说,要想得到他们的“回报”,您的公司将为这个价值2亿美元的垂直应用程序再雇用10名,这就是您需要提防的人。
编辑:从种源上看,很可能我接触过的开发人员异常沉闷(仅对1种听说过stackoverflow的现有作物进行轮询,以提供一定水平的基准测试)。首先,我的出发点是“您需要做什么以公司为您支付的费用”。如果您需要管理员权限,则可以使用它们,但是您不应该随便使用它们,并且如果我能为您提供一个盒子,坦率地说,我不在乎您对它做什么,并且可以正常工作,那么我们都很好。